mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-05 08:00:26 +08:00
cpplib.h (enum c_lang): Add CLK_GNUCXX1Y and CLK_CXX1Y.
/libcpp 2013-04-24 Paolo Carlini <paolo.carlini@oracle.com> * include/cpplib.h (enum c_lang): Add CLK_GNUCXX1Y and CLK_CXX1Y. * init.c (lang_defaults): Add defaults for the latter. (cpp_init_builtins): Define __cplusplus as 201300L for the latter. * lex.c (_cpp_lex_direct): Update. /gcc/c-family 2013-04-24 Paolo Carlini <paolo.carlini@oracle.com> * c-opts.c (set_std_cxx11): Use CLK_CXX1Y and CLK_GNUCXX1Y. /gcc/testsuite 2013-04-24 Paolo Carlini <paolo.carlini@oracle.com> * g++.dg/cpp1y/cplusplus.C: New. From-SVN: r198261
This commit is contained in:
parent
5576178bbd
commit
61949153f4
@ -1,3 +1,7 @@
|
||||
2013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
|
||||
|
||||
* c-opts.c (set_std_cxx11): Use CLK_CXX1Y and CLK_GNUCXX1Y.
|
||||
|
||||
2013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
|
||||
|
||||
* c-cppbuiltin.c (c_cpp_builtins): Do not define
|
||||
|
@ -1471,7 +1471,7 @@ set_std_cxx11 (int iso)
|
||||
static void
|
||||
set_std_cxx1y (int iso)
|
||||
{
|
||||
cpp_set_lang (parse_in, iso ? CLK_CXX11: CLK_GNUCXX11);
|
||||
cpp_set_lang (parse_in, iso ? CLK_CXX1Y: CLK_GNUCXX1Y);
|
||||
flag_no_gnu_keywords = iso;
|
||||
flag_no_nonansi_builtin = iso;
|
||||
flag_iso = iso;
|
||||
|
@ -1,3 +1,7 @@
|
||||
2013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
|
||||
|
||||
* g++.dg/cpp1y/cplusplus.C: New.
|
||||
|
||||
2013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
|
||||
|
||||
* g++.dg/cpp1y/cxx1y_macro.C: Remove.
|
||||
|
5
gcc/testsuite/g++.dg/cpp1y/cplusplus.C
Normal file
5
gcc/testsuite/g++.dg/cpp1y/cplusplus.C
Normal file
@ -0,0 +1,5 @@
|
||||
// { dg-options "-std=c++1y" }
|
||||
|
||||
#if __cplusplus <= 201103L
|
||||
#error
|
||||
#endif
|
@ -1,3 +1,10 @@
|
||||
2013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
|
||||
|
||||
* include/cpplib.h (enum c_lang): Add CLK_GNUCXX1Y and CLK_CXX1Y.
|
||||
* init.c (lang_defaults): Add defaults for the latter.
|
||||
(cpp_init_builtins): Define __cplusplus as 201300L for the latter.
|
||||
* lex.c (_cpp_lex_direct): Update.
|
||||
|
||||
2013-04-03 Sebastian Huber <sebastian.huber@embedded-brains.de>
|
||||
|
||||
PR target/56771
|
||||
@ -46,7 +53,7 @@
|
||||
2013-02-13 Ed Smith-Rowland <3dw4rd@verizon.net>
|
||||
|
||||
PR c++/55582
|
||||
* libcpp/lex.c (lex_raw_string): Allow string literal with suffix
|
||||
* lex.c (lex_raw_string): Allow string literal with suffix
|
||||
beginning with 's' to be parsed as a C++11 user-defined literal.
|
||||
|
||||
2013-01-14 Richard Sandiford <rdsandiford@googlemail.com>
|
||||
|
@ -165,7 +165,8 @@ enum cpp_ttype
|
||||
/* C language kind, used when calling cpp_create_reader. */
|
||||
enum c_lang {CLK_GNUC89 = 0, CLK_GNUC99, CLK_GNUC11,
|
||||
CLK_STDC89, CLK_STDC94, CLK_STDC99, CLK_STDC11,
|
||||
CLK_GNUCXX, CLK_CXX98, CLK_GNUCXX11, CLK_CXX11, CLK_ASM};
|
||||
CLK_GNUCXX, CLK_CXX98, CLK_GNUCXX11, CLK_CXX11,
|
||||
CLK_GNUCXX1Y, CLK_CXX1Y, CLK_ASM};
|
||||
|
||||
/* Payload of a NUMBER, STRING, CHAR or COMMENT token. */
|
||||
struct GTY(()) cpp_string {
|
||||
|
@ -98,11 +98,13 @@ static const struct lang_flags lang_defaults[] =
|
||||
/* CXX98 */ { 0, 1, 1, 0, 1, 1, 1, 0, 0, 0 },
|
||||
/* GNUCXX11 */ { 1, 1, 1, 0, 0, 1, 1, 1, 1, 1 },
|
||||
/* CXX11 */ { 1, 1, 1, 0, 1, 1, 1, 1, 1, 1 },
|
||||
/* GNUCXX1Y */ { 1, 1, 1, 0, 0, 1, 1, 1, 1, 1 },
|
||||
/* CXX1Y */ { 1, 1, 1, 0, 1, 1, 1, 1, 1, 1 },
|
||||
/* ASM */ { 0, 0, 1, 0, 0, 1, 0, 0, 0, 0 }
|
||||
/* xid should be 1 for GNUC99, STDC99, GNUCXX, CXX98, GNUCXX11, and
|
||||
CXX11 when no longer experimental (when all uses of identifiers
|
||||
in the compiler have been audited for correct handling of
|
||||
extended identifiers). */
|
||||
/* xid should be 1 for GNUC99, STDC99, GNUCXX, CXX98, GNUCXX11, CXX11,
|
||||
GNUCXX1Y, and CXX1Y when no longer experimental (when all uses of
|
||||
identifiers in the compiler have been audited for correct handling
|
||||
of extended identifiers). */
|
||||
};
|
||||
|
||||
/* Sets internal flags correctly for a given language. */
|
||||
@ -476,8 +478,11 @@ cpp_init_builtins (cpp_reader *pfile, int hosted)
|
||||
|
||||
if (CPP_OPTION (pfile, cplusplus))
|
||||
{
|
||||
if (CPP_OPTION (pfile, lang) == CLK_CXX11
|
||||
|| CPP_OPTION (pfile, lang) == CLK_GNUCXX11)
|
||||
if (CPP_OPTION (pfile, lang) == CLK_CXX1Y
|
||||
|| CPP_OPTION (pfile, lang) == CLK_GNUCXX1Y)
|
||||
_cpp_define_builtin (pfile, "__cplusplus 201300L");
|
||||
else if (CPP_OPTION (pfile, lang) == CLK_CXX11
|
||||
|| CPP_OPTION (pfile, lang) == CLK_GNUCXX11)
|
||||
_cpp_define_builtin (pfile, "__cplusplus 201103L");
|
||||
else
|
||||
_cpp_define_builtin (pfile, "__cplusplus 199711L");
|
||||
|
@ -2298,8 +2298,8 @@ _cpp_lex_direct (cpp_reader *pfile)
|
||||
is neither : nor >, the < is treated as a preprocessor
|
||||
token by itself". */
|
||||
if (CPP_OPTION (pfile, cplusplus)
|
||||
&& (CPP_OPTION (pfile, lang) == CLK_CXX11
|
||||
|| CPP_OPTION (pfile, lang) == CLK_GNUCXX11)
|
||||
&& CPP_OPTION (pfile, lang) != CLK_CXX98
|
||||
&& CPP_OPTION (pfile, lang) != CLK_GNUCXX
|
||||
&& buffer->cur[1] == ':'
|
||||
&& buffer->cur[2] != ':' && buffer->cur[2] != '>')
|
||||
break;
|
||||
|
Loading…
x
Reference in New Issue
Block a user