diff options
author | Jason Merrill <jason@redhat.com> | 2016-03-15 08:08:31 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2016-03-15 08:08:31 -0400 |
commit | 2aaeea194be58f1ac62c5a3ef6528ed2ae8e92ec (patch) | |
tree | 5ca057b6eafdc0abc79daff46e0295d6744dbbfd /gcc | |
parent | 08da25814139d7eb1264acb66b60cbb17a123deb (diff) | |
download | gcc-2aaeea194be58f1ac62c5a3ef6528ed2ae8e92ec.zip gcc-2aaeea194be58f1ac62c5a3ef6528ed2ae8e92ec.tar.gz gcc-2aaeea194be58f1ac62c5a3ef6528ed2ae8e92ec.tar.bz2 |
expr.c (cpp_classify_number): Hex floats are new in C++1z.
* libcpp/expr.c (cpp_classify_number): Hex floats are new in C++1z.
* libcpp/init.c (lang_defaults): Likewise.
* gcc/c-family/c-cppbuiltin.c (c_cpp_builtins): Set __cpp_hex_float.
From-SVN: r234213
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/c-family/ChangeLog | 2 | ||||
-rw-r--r-- | gcc/c-family/c-cppbuiltin.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp/pr23827_cxx98_neg.C | 2 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp1z/feat-cxx1z.C | 6 |
4 files changed, 13 insertions, 1 deletions
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog index 620c806..d00d9d9 100644 --- a/gcc/c-family/ChangeLog +++ b/gcc/c-family/ChangeLog @@ -1,5 +1,7 @@ 2016-03-14 Jason Merrill <jason@redhat.com> + * c-cppbuiltin.c (c_cpp_builtins): Set __cpp_hex_float. + * c-cppbuiltin.c (c_cpp_builtins): Bump __cpp_range_based_for. 2016-03-09 Richard Biener <rguenther@suse.de> diff --git a/gcc/c-family/c-cppbuiltin.c b/gcc/c-family/c-cppbuiltin.c index dc1f426..ee953ca 100644 --- a/gcc/c-family/c-cppbuiltin.c +++ b/gcc/c-family/c-cppbuiltin.c @@ -818,6 +818,10 @@ c_cpp_builtins (cpp_reader *pfile) if (!pedantic || cxx_dialect > cxx11) cpp_define (pfile, "__cpp_binary_literals=201304"); + /* Similarly for hexadecimal floating point literals and C++17. */ + if (!pedantic || cpp_get_options (parse_in)->extended_numbers) + cpp_define (pfile, "__cpp_hex_float=201603"); + /* Arrays of runtime bound were removed from C++14, but we still support GNU VLAs. Let's define this macro to a low number (corresponding to the initial test release of GNU C++) if we won't diff --git a/gcc/testsuite/g++.dg/cpp/pr23827_cxx98_neg.C b/gcc/testsuite/g++.dg/cpp/pr23827_cxx98_neg.C index 39d9fe4..a0e468c 100644 --- a/gcc/testsuite/g++.dg/cpp/pr23827_cxx98_neg.C +++ b/gcc/testsuite/g++.dg/cpp/pr23827_cxx98_neg.C @@ -1,4 +1,4 @@ // { dg-do compile { target c++98_only } } /* { dg-options "-ansi -pedantic-errors" } */ -double x = 0x3.1415babep0; // { dg-error "use of C..11 hexadecimal floating constant" } +double x = 0x3.1415babep0; // { dg-error "use of C..1z hexadecimal floating constant" } diff --git a/gcc/testsuite/g++.dg/cpp1z/feat-cxx1z.C b/gcc/testsuite/g++.dg/cpp1z/feat-cxx1z.C index c25db24..3dc358f 100644 --- a/gcc/testsuite/g++.dg/cpp1z/feat-cxx1z.C +++ b/gcc/testsuite/g++.dg/cpp1z/feat-cxx1z.C @@ -337,3 +337,9 @@ #elif __cpp_nontype_template_args != 201411 # error "__cpp_nontype_template_args != 201411" #endif + +#ifndef __cpp_hex_float +# error "__cpp_hex_float" +#elif __cpp_hex_float != 201603 +# error "__cpp_hex_float != 201603" +#endif |