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.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143245 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Douglas Gregor 2011-10-28 23:02:54 +00:00
Родитель dfca64ddfb
Коммит 5aa6dea4ef
2 изменённых файлов: 15 добавлений и 1 удалений

Просмотреть файл

@ -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");

Просмотреть файл

@ -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