diff options
author | Douglas Gregor <dgregor@apple.com> | 2011-10-28 23:02:54 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2011-10-28 23:02:54 +0000 |
commit | 2c4542d3ec48fbb449b6633eef837bf0d3c901db (patch) | |
tree | 0d604d3a5677c0aaa44422133f611194ef7976d2 /clang | |
parent | 490fbbe27076cb8ab6a0b5b253cabf1fd1a52de1 (diff) | |
download | bcm5719-llvm-2c4542d3ec48fbb449b6633eef837bf0d3c901db.tar.gz bcm5719-llvm-2c4542d3ec48fbb449b6633eef837bf0d3c901db.zip |
Give __STDC_VERSION__ the value 201001L when we're in C1x mode. The
committee hasn't set a value for __STDC_VERSION__ yet, so this is a
placeholder. But at least it's > 199901L.
llvm-svn: 143245
Diffstat (limited to 'clang')
-rw-r--r-- | clang/lib/Frontend/InitPreprocessor.cpp | 7 | ||||
-rw-r--r-- | clang/test/Lexer/has_feature_c1x.c | 9 |
2 files changed, 15 insertions, 1 deletions
diff --git a/clang/lib/Frontend/InitPreprocessor.cpp b/clang/lib/Frontend/InitPreprocessor.cpp index 1f2f4256d3b..d0a87bd888e 100644 --- a/clang/lib/Frontend/InitPreprocessor.cpp +++ b/clang/lib/Frontend/InitPreprocessor.cpp @@ -286,7 +286,12 @@ static void InitializeStandardPredefinedMacros(const TargetInfo &TI, Builder.defineMacro("__STDC_HOSTED__"); if (!LangOpts.CPlusPlus) { - if (LangOpts.C99) + // FIXME: C1x doesn't have a defined version number yet, so pick something + // that is the minimum possible according to their placeholder scheme + // 201ymmL. + if (LangOpts.C1X) + Builder.defineMacro("__STDC_VERSION__", "201001L"); + else if (LangOpts.C99) Builder.defineMacro("__STDC_VERSION__", "199901L"); else if (!LangOpts.GNUMode && LangOpts.Digraphs) Builder.defineMacro("__STDC_VERSION__", "199409L"); diff --git a/clang/test/Lexer/has_feature_c1x.c b/clang/test/Lexer/has_feature_c1x.c index ca4e9b95ad0..a502f16ce3f 100644 --- a/clang/test/Lexer/has_feature_c1x.c +++ b/clang/test/Lexer/has_feature_c1x.c @@ -27,3 +27,12 @@ int no_alignas(); // CHECK-1X: has_alignas // CHECK-NO-1X: no_alignas + +#if __STDC_VERSION__ > 199901L +int is_c1x(); +#else +int is_not_c1x(); +#endif + +// CHECK-1X: is_c1x +// CHECK-NO-1X: is_not_c1x |