[cfe-commits] r90874 - in /cfe/trunk: lib/Sema/SemaExprCXX.cpp test/SemaObjCXX/composite-objc-pointertype.mm

Fariborz Jahanian fjahanian at apple.com
Tue Dec 8 12:04:24 PST 2009


Author: fjahanian
Date: Tue Dec  8 14:04:24 2009
New Revision: 90874

URL: http://llvm.org/viewvc/llvm-project?rev=90874&view=rev
Log:
Patch to allow matching 0 with an objective-c pointer type
in objective-c++ mode. Fixes radar 7443165


Added:
    cfe/trunk/test/SemaObjCXX/composite-objc-pointertype.mm
Modified:
    cfe/trunk/lib/Sema/SemaExprCXX.cpp

Modified: cfe/trunk/lib/Sema/SemaExprCXX.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaExprCXX.cpp?rev=90874&r1=90873&r2=90874&view=diff

==============================================================================
--- cfe/trunk/lib/Sema/SemaExprCXX.cpp (original)
+++ cfe/trunk/lib/Sema/SemaExprCXX.cpp Tue Dec  8 14:04:24 2009
@@ -1881,8 +1881,8 @@
   assert(getLangOptions().CPlusPlus && "This function assumes C++");
   QualType T1 = E1->getType(), T2 = E2->getType();
 
-  if (!T1->isPointerType() && !T1->isMemberPointerType() &&
-      !T2->isPointerType() && !T2->isMemberPointerType())
+  if (!T1->isAnyPointerType() && !T1->isMemberPointerType() &&
+      !T2->isAnyPointerType() && !T2->isMemberPointerType())
    return QualType();
 
   // C++0x 5.9p2

Added: cfe/trunk/test/SemaObjCXX/composite-objc-pointertype.mm
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjCXX/composite-objc-pointertype.mm?rev=90874&view=auto

==============================================================================
--- cfe/trunk/test/SemaObjCXX/composite-objc-pointertype.mm (added)
+++ cfe/trunk/test/SemaObjCXX/composite-objc-pointertype.mm Tue Dec  8 14:04:24 2009
@@ -0,0 +1,18 @@
+// RUN: clang-cc -fsyntax-only -verify %s
+
+ at interface Foo
+ at end
+
+ at implementation Foo
+- (id)test {
+        id bar;
+    Class cl;
+    Foo *f;
+
+    (void)((bar!= 0) ? bar : 0);
+    (void)((cl != 0) ? cl : 0);
+    (void)((f != 0) ? 0 : f);
+    return (0 == 1) ? 0 : bar;
+}
+ at end
+





More information about the cfe-commits mailing list