[cfe-commits] r124258 - in /cfe/trunk: lib/Sema/SemaExpr.cpp test/SemaObjC/synth-provisional-ivars-1.m

Fariborz Jahanian fjahanian at apple.com
Tue Jan 25 16:57:01 PST 2011


Author: fjahanian
Date: Tue Jan 25 18:57:01 2011
New Revision: 124258

URL: http://llvm.org/viewvc/llvm-project?rev=124258&view=rev
Log:
Tweak the rule for deciding if a provisional ivar is needed
in default ivar synthesis.  Fixes // rdar://8913053.

Added:
    cfe/trunk/test/SemaObjC/synth-provisional-ivars-1.m
Modified:
    cfe/trunk/lib/Sema/SemaExpr.cpp

Modified: cfe/trunk/lib/Sema/SemaExpr.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaExpr.cpp?rev=124258&r1=124257&r2=124258&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/SemaExpr.cpp (original)
+++ cfe/trunk/lib/Sema/SemaExpr.cpp Tue Jan 25 18:57:01 2011
@@ -1354,7 +1354,8 @@
     LookForIvars = false;
   else
     LookForIvars = (Lookup.isSingleResult() &&
-                    Lookup.getFoundDecl()->isDefinedOutsideFunctionOrMethod());
+                    Lookup.getFoundDecl()->isDefinedOutsideFunctionOrMethod() &&
+                    (Lookup.getAsSingle<VarDecl>() != 0));
   if (!LookForIvars)
     return 0;
   

Added: cfe/trunk/test/SemaObjC/synth-provisional-ivars-1.m
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjC/synth-provisional-ivars-1.m?rev=124258&view=auto
==============================================================================
--- cfe/trunk/test/SemaObjC/synth-provisional-ivars-1.m (added)
+++ cfe/trunk/test/SemaObjC/synth-provisional-ivars-1.m Tue Jan 25 18:57:01 2011
@@ -0,0 +1,28 @@
+// RUN: %clang_cc1 -fsyntax-only -fobjc-nonfragile-abi -fobjc-default-synthesize-properties -verify %s
+// rdar://8913053
+
+typedef unsigned char BOOL;
+
+ at interface MailApp
+{
+  BOOL _isAppleInternal;
+}
+ at property(assign) BOOL isAppleInternal;
+ at end
+
+static BOOL isAppleInternal() {return 0; }
+
+ at implementation MailApp
+
+- (BOOL)isAppleInternal {
+    return _isAppleInternal;
+}
+
+- (void)setIsAppleInternal:(BOOL)flag {
+    _isAppleInternal= !!flag;
+}
+
+- (void) Meth {
+    self.isAppleInternal = isAppleInternal();
+}
+ at end





More information about the cfe-commits mailing list