зеркало из https://github.com/microsoft/clang-1.git
make the rewriter add a #ifndef around the #define of __attribute__.
Without it, there is no reason for a compiler that supports it to emit the dead static globals that the rewriter labels attribute(used). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101149 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
abe183dd2f
Коммит
553e583e1d
|
@ -640,7 +640,9 @@ void RewriteObjC::Initialize(ASTContext &context) {
|
||||||
if (LangOpts.Microsoft) {
|
if (LangOpts.Microsoft) {
|
||||||
Preamble += "#undef __OBJC_RW_DLLIMPORT\n";
|
Preamble += "#undef __OBJC_RW_DLLIMPORT\n";
|
||||||
Preamble += "#undef __OBJC_RW_STATICIMPORT\n";
|
Preamble += "#undef __OBJC_RW_STATICIMPORT\n";
|
||||||
|
Preamble += "#ifndef KEEP_ATTRIBUTES\n"; // We use this for clang tests.
|
||||||
Preamble += "#define __attribute__(X)\n";
|
Preamble += "#define __attribute__(X)\n";
|
||||||
|
Preamble += "#endif\n";
|
||||||
Preamble += "#define __weak\n";
|
Preamble += "#define __weak\n";
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// RUN: %clang_cc1 -x objective-c++ -Wno-return-type -fblocks -fms-extensions -rewrite-objc %s -o %t-rw.cpp
|
// RUN: %clang_cc1 -x objective-c++ -Wno-return-type -fblocks -fms-extensions -rewrite-objc %s -o %t-rw.cpp
|
||||||
// RUN: %clang_cc1 -fsyntax-only -Wno-address-of-temporary -D"id=struct objc_object *" -D"Class=struct objc_class *" -D"SEL=void*" -D"__declspec(X)=" -emit-llvm -o - %t-rw.cpp | FileCheck %t-rw.cpp
|
// RUN: %clang_cc1 -fsyntax-only -Wno-address-of-temporary -DKEEP_ATTRIBUTES -D"id=struct objc_object *" -D"Class=struct objc_class *" -D"SEL=void*" -D"__declspec(X)=" -emit-llvm -o - %t-rw.cpp | FileCheck %t-rw.cpp
|
||||||
// radar 7738453
|
// radar 7738453
|
||||||
|
|
||||||
void *sel_registerName(const char *);
|
void *sel_registerName(const char *);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче