From: Chris Lattner Date: Mon, 6 Oct 2008 07:43:09 +0000 (+0000) Subject: __CONSTANT_CFSTRINGS__ should be defined even in C mode, otherwise the CFSTR X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=eb52b44caf9afbf4bfaf0e3e6f9426d90492b85b;p=clang __CONSTANT_CFSTRINGS__ should be defined even in C mode, otherwise the CFSTR won't expand to the builtin. This fixes rdar://6248329 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57164 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Lex/Preprocessor.cpp b/lib/Lex/Preprocessor.cpp index 6c5daae13b..ed69e6f933 100644 --- a/lib/Lex/Preprocessor.cpp +++ b/lib/Lex/Preprocessor.cpp @@ -488,12 +488,12 @@ static void InitializePredefinedMacros(Preprocessor &PP, if (PP.getLangOptions().NeXTRuntime) DefineBuiltinMacro(Buf, "__NEXT_RUNTIME__=1"); - - // darwin_constant_cfstrings controls this. This is also dependent - // on other things like the runtime I believe. - DefineBuiltinMacro(Buf, "__CONSTANT_CFSTRINGS__=1"); } + // darwin_constant_cfstrings controls this. This is also dependent + // on other things like the runtime I believe. This is set even for C code. + DefineBuiltinMacro(Buf, "__CONSTANT_CFSTRINGS__=1"); + if (PP.getLangOptions().ObjC2) DefineBuiltinMacro(Buf, "OBJC_NEW_PROPERTIES"); diff --git a/test/CodeGen/cfstring2.c b/test/CodeGen/cfstring2.c new file mode 100644 index 0000000000..605b9d5d41 --- /dev/null +++ b/test/CodeGen/cfstring2.c @@ -0,0 +1,13 @@ +// RUN: clang -emit-llvm %s -o %t + +#ifdef __APPLE__ +#include + +void f() { + CFSTR("Hello, World!"); +} + +// rdar://6248329 +void *G = CFSTR("yo joe"); + +#endif