summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2012-10-16 17:08:11 +0000
committerFariborz Jahanian <fjahanian@apple.com>2012-10-16 17:08:11 +0000
commiteab1730fe8a4a587f8cdcecd297b0a8e6bd7150a (patch)
tree0e1da03999f0519c40c14384985c40b13bc477fc /clang
parente3e80d607f18f79d4e9f0db82af8ab3150fe2289 (diff)
downloadbcm5719-llvm-eab1730fe8a4a587f8cdcecd297b0a8e6bd7150a.tar.gz
bcm5719-llvm-eab1730fe8a4a587f8cdcecd297b0a8e6bd7150a.zip
Minor tweak to last patch along with a test case.
// rdar://12491143 llvm-svn: 166030
Diffstat (limited to 'clang')
-rw-r--r--clang/lib/Sema/SemaExpr.cpp2
-rw-r--r--clang/test/SemaObjC/crash-on-objc-bool-literal.m12
2 files changed, 13 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaExpr.cpp b/clang/lib/Sema/SemaExpr.cpp
index 02eac1190ba..86091d50a39 100644
--- a/clang/lib/Sema/SemaExpr.cpp
+++ b/clang/lib/Sema/SemaExpr.cpp
@@ -11915,7 +11915,7 @@ Sema::ActOnObjCBoolLiteral(SourceLocation OpLoc, tok::TokenKind Kind) {
"Unknown Objective-C Boolean value!");
QualType BoolT = Context.ObjCBuiltinBoolTy;
if (!Context.getBOOLDecl()) {
- LookupResult Result(*this, &Context.Idents.get("BOOL"), SourceLocation(),
+ LookupResult Result(*this, &Context.Idents.get("BOOL"), OpLoc,
Sema::LookupOrdinaryName);
if (LookupName(Result, getCurScope()) && Result.isSingleResult()) {
NamedDecl *ND = Result.getFoundDecl();
diff --git a/clang/test/SemaObjC/crash-on-objc-bool-literal.m b/clang/test/SemaObjC/crash-on-objc-bool-literal.m
new file mode 100644
index 00000000000..2c003a534b5
--- /dev/null
+++ b/clang/test/SemaObjC/crash-on-objc-bool-literal.m
@@ -0,0 +1,12 @@
+// RUN: %clang_cc1 -fsyntax-only -verify %s
+// RUN: %clang_cc1 -x objective-c++ -fsyntax-only -verify %s
+// rdar://12456743
+
+typedef signed char BOOL; // expected-note 2 {{candidate found by name lookup is 'BOOL'}}
+
+EXPORT BOOL FUNC(BOOL enabled); // expected-error {{unknown type name 'EXPORT'}} // expected-error {{expected ';' after top level declarator}} \
+ // expected-note 2 {{candidate found by name lookup is 'BOOL'}}
+
+static inline BOOL MFIsPrivateVersion(void) { // expected-error {{reference to 'BOOL' is ambiguous}}
+ return __objc_yes; // expected-error {{reference to 'BOOL' is ambiguous}}
+}
OpenPOWER on IntegriCloud