]> granicus.if.org Git - clang/commitdiff
Minor tweak to last patch along with a test case.
authorFariborz Jahanian <fjahanian@apple.com>
Tue, 16 Oct 2012 17:08:11 +0000 (17:08 +0000)
committerFariborz Jahanian <fjahanian@apple.com>
Tue, 16 Oct 2012 17:08:11 +0000 (17:08 +0000)
// rdar://12491143

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166030 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Sema/SemaExpr.cpp
test/SemaObjC/crash-on-objc-bool-literal.m [new file with mode: 0644]

index 02eac1190ba84debc5d03196b203aa1e7543fd25..86091d50a39c542af5e579c096f25c45caebb4ae 100644 (file)
@@ -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/test/SemaObjC/crash-on-objc-bool-literal.m b/test/SemaObjC/crash-on-objc-bool-literal.m
new file mode 100644 (file)
index 0000000..2c003a5
--- /dev/null
@@ -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}}
+}