diff options
| author | John McCall <rjmccall@apple.com> | 2012-06-20 06:18:46 +0000 |
|---|---|---|
| committer | John McCall <rjmccall@apple.com> | 2012-06-20 06:18:46 +0000 |
| commit | 5fb5df9c8385c3c86fe3d31fbac5766217168a9b (patch) | |
| tree | d0aa1ee58ae92997f1aa7af1556fb7cda32f3173 /clang/test/Driver | |
| parent | b9e8e189497ef4a690c913b09ce6a8ff03281c60 (diff) | |
| download | bcm5719-llvm-5fb5df9c8385c3c86fe3d31fbac5766217168a9b.tar.gz bcm5719-llvm-5fb5df9c8385c3c86fe3d31fbac5766217168a9b.zip | |
Restructure how the driver communicates information about the
target Objective-C runtime down to the frontend: break this
down into a single target runtime kind and version, and compute
all the relevant information from that. This makes it
relatively painless to add support for new runtimes to the
compiler. Make the new -cc1 flag, -fobjc-runtime=blah-x.y.z,
available at the driver level as a better and more general
alternative to -fgnu-runtime and -fnext-runtime. This new
concept of an Objective-C runtime also encompasses what we
were previously separating out as the "Objective-C ABI", so
fragile vs. non-fragile runtimes are now really modelled as
different kinds of runtime, paving the way for better overall
differentiation.
As a sort of special case, continue to accept the -cc1 flag
-fobjc-runtime-has-weak, as a sop to PLCompatibilityWeak.
I won't go so far as to say "no functionality change", even
ignoring the new driver flag, but subtle changes in driver
semantics are almost certainly not intended.
llvm-svn: 158793
Diffstat (limited to 'clang/test/Driver')
| -rw-r--r-- | clang/test/Driver/darwin-objc-defaults.m | 18 | ||||
| -rw-r--r-- | clang/test/Driver/darwin-objc-options.m | 15 | ||||
| -rw-r--r-- | clang/test/Driver/gnu-runtime.m | 5 | ||||
| -rw-r--r-- | clang/test/Driver/ios-simulator-arcruntime.c | 4 | ||||
| -rw-r--r-- | clang/test/Driver/rewrite-legacy-objc.m | 2 | ||||
| -rw-r--r-- | clang/test/Driver/rewrite-objc.m | 2 |
6 files changed, 28 insertions, 18 deletions
diff --git a/clang/test/Driver/darwin-objc-defaults.m b/clang/test/Driver/darwin-objc-defaults.m index 49fe8f9b9f7..6265cfb41f1 100644 --- a/clang/test/Driver/darwin-objc-defaults.m +++ b/clang/test/Driver/darwin-objc-defaults.m @@ -7,7 +7,7 @@ // RUN: FileCheck --check-prefix CHECK-I386_OSX10_5 < %t %s // CHECK-CHECK-I386_OSX10_5: "-cc1" -// CHECK-CHECK-I386_OSX10_5: -fobjc-fragile-abi +// CHECK-CHECK-I386_OSX10_5: -fobjc-runtime=macosx-fragile-10.5 // CHECK-CHECK-I386_OSX10_5-NOT: -fobjc-dispatch-method // CHECK-CHECK-I386_OSX10_5: darwin-objc-defaults @@ -16,7 +16,7 @@ // RUN: FileCheck --check-prefix CHECK-I386_OSX10_6 < %t %s // CHECK-CHECK-I386_OSX10_6: "-cc1" -// CHECK-CHECK-I386_OSX10_6: -fobjc-fragile-abi +// CHECK-CHECK-I386_OSX10_6: -fobjc-runtime=macosx-fragile-10.6 // CHECK-CHECK-I386_OSX10_6-NOT: -fobjc-dispatch-method // CHECK-CHECK-I386_OSX10_6: darwin-objc-defaults @@ -25,7 +25,7 @@ // RUN: FileCheck --check-prefix CHECK-I386_IPHONE3_0 < %t %s // CHECK-CHECK-I386_IPHONE3_0: "-cc1" -// CHECK-CHECK-I386_IPHONE3_0: -fobjc-fragile-abi +// CHECK-CHECK-I386_IPHONE3_0: -fobjc-runtime=ios-3.0 // CHECK-CHECK-I386_IPHONE3_0-NOT: -fobjc-dispatch-method // CHECK-CHECK-I386_IPHONE3_0: darwin-objc-defaults @@ -36,7 +36,7 @@ // RUN: FileCheck --check-prefix CHECK-X86_64_OSX10_5 < %t %s // CHECK-CHECK-X86_64_OSX10_5: "-cc1" -// CHECK-CHECK-X86_64_OSX10_5-NOT: -fobjc-fragile-abi +// CHECK-CHECK-X86_64_OSX10_5: -fobjc-runtime=macosx-10.5 // CHECK-CHECK-X86_64_OSX10_5: -fobjc-dispatch-method=non-legacy // CHECK-CHECK-X86_64_OSX10_5: darwin-objc-defaults @@ -45,7 +45,7 @@ // RUN: FileCheck --check-prefix CHECK-X86_64_OSX10_6 < %t %s // CHECK-CHECK-X86_64_OSX10_6: "-cc1" -// CHECK-CHECK-X86_64_OSX10_6-NOT: -fobjc-fragile-abi +// CHECK-CHECK-X86_64_OSX10_6: -fobjc-runtime=macosx-10.6 // CHECK-CHECK-X86_64_OSX10_6: -fobjc-dispatch-method=mixed // CHECK-CHECK-X86_64_OSX10_6: darwin-objc-defaults @@ -54,7 +54,7 @@ // RUN: FileCheck --check-prefix CHECK-X86_64_IPHONE3_0 < %t %s // CHECK-CHECK-X86_64_IPHONE3_0: "-cc1" -// CHECK-CHECK-X86_64_IPHONE3_0-NOT: -fobjc-fragile-abi +// CHECK-CHECK-X86_64_IPHONE3_0: -fobjc-runtime=ios-3.0 // CHECK-CHECK-X86_64_IPHONE3_0: -fobjc-dispatch-method=mixed // CHECK-CHECK-X86_64_IPHONE3_0: darwin-objc-defaults @@ -65,7 +65,7 @@ // RUN: FileCheck --check-prefix CHECK-ARMV7_OSX10_5 < %t %s // CHECK-CHECK-ARMV7_OSX10_5: "-cc1" -// CHECK-CHECK-ARMV7_OSX10_5-NOT: -fobjc-fragile-abi +// CHECK-CHECK-ARMV7_OSX10_5: -fobjc-runtime=macosx-10.5 // CHECK-CHECK-ARMV7_OSX10_5-NOT: -fobjc-dispatch-method // CHECK-CHECK-ARMV7_OSX10_5: darwin-objc-defaults @@ -74,7 +74,7 @@ // RUN: FileCheck --check-prefix CHECK-ARMV7_OSX10_6 < %t %s // CHECK-CHECK-ARMV7_OSX10_6: "-cc1" -// CHECK-CHECK-ARMV7_OSX10_6-NOT: -fobjc-fragile-abi +// CHECK-CHECK-ARMV7_OSX10_6: -fobjc-runtime=macosx-10.6 // CHECK-CHECK-ARMV7_OSX10_6-NOT: -fobjc-dispatch-method // CHECK-CHECK-ARMV7_OSX10_6: darwin-objc-defaults @@ -83,6 +83,6 @@ // RUN: FileCheck --check-prefix CHECK-ARMV7_IPHONE3_0 < %t %s // CHECK-CHECK-ARMV7_IPHONE3_0: "-cc1" -// CHECK-CHECK-ARMV7_IPHONE3_0-NOT: -fobjc-fragile-abi +// CHECK-CHECK-ARMV7_IPHONE3_0: -fobjc-runtime=ios-3.0 // CHECK-CHECK-ARMV7_IPHONE3_0-NOT: -fobjc-dispatch-method // CHECK-CHECK-ARMV7_IPHONE3_0: darwin-objc-defaults diff --git a/clang/test/Driver/darwin-objc-options.m b/clang/test/Driver/darwin-objc-options.m index 5b421d891ff..77501ab1b91 100644 --- a/clang/test/Driver/darwin-objc-options.m +++ b/clang/test/Driver/darwin-objc-options.m @@ -5,7 +5,7 @@ // RUN: FileCheck --check-prefix CHECK-X86_64_ABI1 < %t %s // CHECK-CHECK-X86_64_ABI1: "-cc1" -// CHECK-CHECK-X86_64_ABI1: -fobjc-fragile-abi +// CHECK-CHECK-X86_64_ABI1: -fobjc-runtime=macosx-fragile-10.6.0 // CHECK-CHECK-X86_64_ABI1-NOT: -fobjc-dispatch-method // CHECK-CHECK-X86_64_ABI1: darwin-objc-options @@ -14,8 +14,19 @@ // RUN: FileCheck --check-prefix CHECK-I386_ABI2 < %t %s // CHECK-CHECK-I386_ABI2: "-cc1" -// CHECK-CHECK-I386_ABI2-NOT: -fobjc-fragile-abi +// CHECK-CHECK-I386_ABI2: -fobjc-runtime=macosx-10.6.0 // CHECK-CHECK-I386_ABI2: -fobjc-exceptions // CHECK-CHECK-I386_ABI2: -fexceptions // CHECK-CHECK-I386_ABI2-NOT: -fobjc-dispatch-method // CHECK-CHECK-I386_ABI2: darwin-objc-options + +// RUN: %clang -target x86_64-apple-darwin10 -S -### %s \ +// RUN: -arch i386 -fobjc-runtime=ios-5.0 2> %t +// RUN: FileCheck --check-prefix CHECK-I386_IOS < %t %s + +// CHECK-CHECK-I386_IOS: "-cc1" +// CHECK-CHECK-I386_IOS: -fobjc-runtime=ios-5.0 +// CHECK-CHECK-I386_IOS: -fobjc-exceptions +// CHECK-CHECK-I386_IOS: -fexceptions +// CHECK-CHECK-I386_IOS-NOT: -fobjc-dispatch-method +// CHECK-CHECK-I386_IOS: darwin-objc-options diff --git a/clang/test/Driver/gnu-runtime.m b/clang/test/Driver/gnu-runtime.m index 12426d95057..7685cc6f67f 100644 --- a/clang/test/Driver/gnu-runtime.m +++ b/clang/test/Driver/gnu-runtime.m @@ -1,5 +1,4 @@ // RUN: %clang -target i386-apple-darwin10 -### -fsyntax-only -fgnu-runtime %s 2>&1 | FileCheck %s // RUN: %clang -target i386-apple-darwin10 -### -x objective-c++ -fsyntax-only -fgnu-runtime %s 2>&1 | FileCheck %s -// CHECK: -fgnu-runtime -// CHECK: -fobjc-runtime-has-arc -// CHECK: -fobjc-runtime-has-weak +// CHECK: -fobjc-runtime=gnu +// CHECK-NOT: fragile diff --git a/clang/test/Driver/ios-simulator-arcruntime.c b/clang/test/Driver/ios-simulator-arcruntime.c index 9bf2091fed5..ffe3a9d3e76 100644 --- a/clang/test/Driver/ios-simulator-arcruntime.c +++ b/clang/test/Driver/ios-simulator-arcruntime.c @@ -2,5 +2,5 @@ // RUN: %clang -### -x objective-c -target i386-apple-darwin10 -arch i386 -mmacosx-version-min=10.6 -D__IPHONE_OS_VERSION_MIN_REQUIRED=50000 -fobjc-arc -fsyntax-only %s 2>&1 | FileCheck -check-prefix=CHECK-OPTIONS2 %s // -// CHECK-OPTIONS1-NOT: -fobjc-runtime-has-weak -// CHECK-OPTIONS2: -fobjc-runtime-has-weak +// CHECK-OPTIONS1: -fobjc-runtime=ios-4.2.1 +// CHECK-OPTIONS2: -fobjc-runtime=ios-5.0.0 diff --git a/clang/test/Driver/rewrite-legacy-objc.m b/clang/test/Driver/rewrite-legacy-objc.m index af59ff67272..d243c7a15b3 100644 --- a/clang/test/Driver/rewrite-legacy-objc.m +++ b/clang/test/Driver/rewrite-legacy-objc.m @@ -3,7 +3,7 @@ // TEST0: clang{{.*}}" "-cc1" // TEST0: "-rewrite-objc" // FIXME: CHECK-NOT is broken somehow, it doesn't work here. Check adjacency instead. -// TEST0: "-fmessage-length" "0" "-stack-protector" "1" "-mstackrealign" "-fblocks" "-fobjc-runtime-has-arc" "-fobjc-runtime-has-weak" "-fobjc-fragile-abi" "-fobjc-default-synthesize-properties" "-fno-objc-infer-related-result-type" "-fobjc-exceptions" "-fexceptions" "-fdiagnostics-show-option" +// TEST0: "-fmessage-length" "0" "-stack-protector" "1" "-mstackrealign" "-fblocks" "-fobjc-runtime=macosx-fragile" "-fobjc-default-synthesize-properties" "-fno-objc-infer-related-result-type" "-fobjc-exceptions" "-fexceptions" "-fdiagnostics-show-option" // TEST0: rewrite-legacy-objc.m" // RUN: not %clang -ccc-no-clang -target unknown -rewrite-legacy-objc %s -o - -### 2>&1 | \ diff --git a/clang/test/Driver/rewrite-objc.m b/clang/test/Driver/rewrite-objc.m index 7b080fc35e8..66967977220 100644 --- a/clang/test/Driver/rewrite-objc.m +++ b/clang/test/Driver/rewrite-objc.m @@ -3,7 +3,7 @@ // TEST0: clang{{.*}}" "-cc1" // TEST0: "-rewrite-objc" // FIXME: CHECK-NOT is broken somehow, it doesn't work here. Check adjacency instead. -// TEST0: "-fmessage-length" "0" "-stack-protector" "1" "-mstackrealign" "-fblocks" "-fobjc-runtime-has-arc" "-fobjc-runtime-has-weak" "-fobjc-dispatch-method=mixed" "-fobjc-default-synthesize-properties" "-fno-objc-infer-related-result-type" "-fobjc-exceptions" "-fexceptions" "-fdiagnostics-show-option" +// TEST0: "-fmessage-length" "0" "-stack-protector" "1" "-mstackrealign" "-fblocks" "-fobjc-runtime=macosx" "-fobjc-dispatch-method=mixed" "-fobjc-default-synthesize-properties" "-fno-objc-infer-related-result-type" "-fobjc-exceptions" "-fexceptions" "-fdiagnostics-show-option" // TEST0: rewrite-objc.m" // RUN: not %clang -ccc-no-clang -target unknown -rewrite-objc %s -o - -### 2>&1 | \ |

