summaryrefslogtreecommitdiffstats
path: root/clang/test
diff options
context:
space:
mode:
authorAlex Denisov <1101.debian@gmail.com>2015-02-16 16:17:05 +0000
committerAlex Denisov <1101.debian@gmail.com>2015-02-16 16:17:05 +0000
commite36748a8eb65b7ee2b82b873d5e80f9c4e4093eb (patch)
tree17fe01811d7a0e51d541665a2ef06bd40b9c9168 /clang/test
parent235d1f99aa5c407ee59b9eb8c6ea936354342b59 (diff)
downloadbcm5719-llvm-e36748a8eb65b7ee2b82b873d5e80f9c4e4093eb.tar.gz
bcm5719-llvm-e36748a8eb65b7ee2b82b873d5e80f9c4e4093eb.zip
Fix crash when clang tries to build NSNumber literal after forward declaration
Bug report: http://llvm.org/bugs/show_bug.cgi?id=22561 Clang tries to create ObjCBoxedExpression of type 'NSNumber' when 'NSNumber' has only forward declaration, this cause a crash later, when 'Sema' refers to a nil QualType of the whole expression. Please, refer to the bug report for the better explanation. llvm-svn: 229402
Diffstat (limited to 'clang/test')
-rw-r--r--clang/test/SemaObjC/objc-literal-nsnumber.m18
1 files changed, 18 insertions, 0 deletions
diff --git a/clang/test/SemaObjC/objc-literal-nsnumber.m b/clang/test/SemaObjC/objc-literal-nsnumber.m
index a2d37282b71..57bc07b139e 100644
--- a/clang/test/SemaObjC/objc-literal-nsnumber.m
+++ b/clang/test/SemaObjC/objc-literal-nsnumber.m
@@ -9,6 +9,24 @@ typedef unsigned int NSUInteger;
typedef int NSInteger;
#endif
+void checkNSNumberUnavailableDiagnostic() {
+ id num = @1000; // expected-error {{NSNumber must be available to use Objective-C literals}}
+
+ int x = 1000;
+ id num1 = @(x); // expected-error {{NSNumber must be available to use Objective-C literals}}\
+ // expected-error {{illegal type 'int' used in a boxed expression}}
+}
+
+@class NSNumber;
+
+void checkNSNumberFDDiagnostic() {
+ id num = @1000; // expected-error {{NSNumber must be available to use Objective-C literals}}
+
+ int x = 1000;
+ id num1 = @(x); // expected-error {{declaration of 'numberWithInt:' is missing in NSNumber class}}\
+ // expected-error {{illegal type 'int' used in a boxed expression}}
+}
+
@interface NSObject
+ (NSObject*)nsobject;
@end
OpenPOWER on IntegriCloud