From: Richard Smith Date: Thu, 22 Oct 2015 04:27:47 +0000 (+0000) Subject: [coroutines] Add feature-test macro for coroutines, defined to 1 to indicate X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1400754414245608c38cfddf5869041682ff641a;p=clang [coroutines] Add feature-test macro for coroutines, defined to 1 to indicate the implementation is incomplete. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@250982 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Frontend/InitPreprocessor.cpp b/lib/Frontend/InitPreprocessor.cpp index 0b445e8b65..dc075793ac 100644 --- a/lib/Frontend/InitPreprocessor.cpp +++ b/lib/Frontend/InitPreprocessor.cpp @@ -456,6 +456,8 @@ static void InitializeCPlusPlusFeatureTestMacros(const LangOptions &LangOpts, Builder.defineMacro("__cpp_sized_deallocation", "201309"); if (LangOpts.ConceptsTS) Builder.defineMacro("__cpp_experimental_concepts", "1"); + if (LangOpts.Coroutines) + Builder.defineMacro("__cpp_coroutines", "1"); } static void InitializePredefinedMacros(const TargetInfo &TI, diff --git a/test/Lexer/cxx-features.cpp b/test/Lexer/cxx-features.cpp index 4ec4d55ac0..6c4a092b1c 100644 --- a/test/Lexer/cxx-features.cpp +++ b/test/Lexer/cxx-features.cpp @@ -2,6 +2,7 @@ // RUN: %clang_cc1 -std=c++11 -verify %s // RUN: %clang_cc1 -std=c++1y -fsized-deallocation -verify %s // RUN: %clang_cc1 -std=c++1y -fsized-deallocation -fconcepts-ts -DCONCEPTS_TS=1 -verify %s +// RUN: %clang_cc1 -fcoroutines -DCOROUTINES -verify %s // expected-no-diagnostics @@ -128,3 +129,7 @@ #if check(experimental_concepts, 0, 0, CONCEPTS_TS) #error "wrong value for __cpp_experimental_concepts" #endif + +#if (COROUTINES && !__cpp_coroutines) || (!COROUTINES && __cpp_coroutines) +#error "wrong value for __cpp_coroutines" +#endif