diff options
author | Joseph Myers <joseph@codesourcery.com> | 2018-10-18 00:58:54 +0100 |
---|---|---|
committer | Joseph Myers <jsm28@gcc.gnu.org> | 2018-10-18 00:58:54 +0100 |
commit | 9f936c861383dc69e0053e34315d5d0262a19e8f (patch) | |
tree | f23e8dc38949667312676b0c8bf7e5b1dfaacb6e /gcc/config/rl78 | |
parent | 7a8a92c448bf7d9ceeef1879f741901cf337d921 (diff) | |
download | gcc-9f936c861383dc69e0053e34315d5d0262a19e8f.zip gcc-9f936c861383dc69e0053e34315d5d0262a19e8f.tar.gz gcc-9f936c861383dc69e0053e34315d5d0262a19e8f.tar.bz2 |
Add -std=c2x, -std=gnu2x, -Wc11-c2x-compat, C2X _Static_assert support.
Now new features are starting to be added to a C2X draft (in the C2x
branch of the C standard git repository, no public WG14 document yet),
it's time to add -std=c2x and associated options to GCC for use in
enabling C2X features.
This patch adds the expected set of options: -std=c2x, -std=gnu2x,
-Wc11-c2x-compat. A first C2X feature is added (the only one so far
in the repository that's obviously relevant to GCC): support (as in
C++) for the string constant to be omitted in _Static_assert. This
feature is duly also supported as an extension in earlier standard
modes (diagnosed with -pedantic, unless -Wno-c11-c2x-compat is given,
or with -Wc11-c2x-compat even in C2X mode).
Bootstrapped with no regressions on x86_64-pc-linux-gnu.
gcc/
* doc/cpp.texi (__STDC_VERSION__): Document C2X handling.
* doc/invoke.texi (-std=c2x, -std=gnu2x): Document new options.
* doc/standards.texi (C Language): Document C2X.
* dwarf2out.c (highest_c_language), config/rl78/rl78.c
(rl78_option_override): Handle "GNU C2X" language name.
gcc/c/
* c-errors.c (pedwarn_c11): New function.
* c-parser.c (disable_extension_diagnostics): Save
warn_c11_c2x_compat and set it to 0.
(restore_extension_diagnostics): Restore warn_c11_c2x_compat.
(c_parser_static_assert_declaration_no_semi): Handle
_Static_assert without string constant.
* c-tree.h (pedwarn_c11): New prototype.
gcc/c-family/
* c-common.c (flag_isoc2x): New variable.
* c-common.h (clk_c): Update comment to reference C2X.
(flag_isoc99, flag_isoc11): Update comments to reference future
standard versions in general.
(flag_isoc2x): Declare.
* c-opts.c (set_std_c2x): New function.
(c_common_handle_option): Handle -std=c2x and -std=gnu2x.
(set_std_c89, set_std_c99, set_std_c11, set_std_c17): Set
flag_isoc2x to 0.
* c.opt (Wc11-c2x-compat, std=c2x, std=gnu2x): New options.
gcc/testsuite/
* gcc.dg/c11-static-assert-7.c, gcc.dg/c11-static-assert-8.c,
gcc.dg/c11-static-assert-9.c, gcc.dg/c2x-static-assert-1.c,
gcc.dg/c2x-static-assert-2.c, gcc.dg/c99-static-assert-2.c,
gcc.dg/gnu2x-static-assert-1.c: New tests.
* gcc.dg/missing-symbol-3.c: Update expected fix-it text.
libcpp/
* include/cpplib.h (enum c_lang): Add CLK_GNUC2X and CLK_STDC2X.
* init.c (lang_defaults): Add GNUC2X and STDC2X entries.
(cpp_init_builtins): Define __STDC_VERSION__ to 202000L for C2X.
From-SVN: r265251
Diffstat (limited to 'gcc/config/rl78')
-rw-r--r-- | gcc/config/rl78/rl78.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/config/rl78/rl78.c b/gcc/config/rl78/rl78.c index 03c78fc..6663e35 100644 --- a/gcc/config/rl78/rl78.c +++ b/gcc/config/rl78/rl78.c @@ -366,6 +366,7 @@ rl78_option_override (void) && strcmp (lang_hooks.name, "GNU C") && strcmp (lang_hooks.name, "GNU C11") && strcmp (lang_hooks.name, "GNU C17") + && strcmp (lang_hooks.name, "GNU C2X") && strcmp (lang_hooks.name, "GNU C89") && strcmp (lang_hooks.name, "GNU C99") /* Compiling with -flto results in a language of GNU GIMPLE being used... */ |