[cfe-commits] r96987 - in /cfe/trunk: lib/Frontend/RewriteObjC.cpp test/Rewriter/rewrite-qualified-id.mm

Fariborz Jahanian fjahanian at apple.com
Tue Feb 23 13:34:38 PST 2010


Author: fjahanian
Date: Tue Feb 23 15:34:38 2010
New Revision: 96987

URL: http://llvm.org/viewvc/llvm-project?rev=96987&view=rev
Log:
Fixes a rewriting of qualified-id type which exposed a bigger
rewriting problem. Fixes radar 7680953.


Added:
    cfe/trunk/test/Rewriter/rewrite-qualified-id.mm
Modified:
    cfe/trunk/lib/Frontend/RewriteObjC.cpp

Modified: cfe/trunk/lib/Frontend/RewriteObjC.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/RewriteObjC.cpp?rev=96987&r1=96986&r2=96987&view=diff
==============================================================================
--- cfe/trunk/lib/Frontend/RewriteObjC.cpp (original)
+++ cfe/trunk/lib/Frontend/RewriteObjC.cpp Tue Feb 23 15:34:38 2010
@@ -5358,11 +5358,6 @@
       RewriteBlockPointerDecl(TD);
     else if (TD->getUnderlyingType()->isFunctionPointerType())
       CheckFunctionPointerDecl(TD->getUnderlyingType(), TD);
-    else if (TD->getUnderlyingType()->isRecordType()) {
-      RecordDecl *RD = TD->getUnderlyingType()->getAs<RecordType>()->getDecl();
-      if (RD->isDefinition())
-        RewriteRecordBody(RD);
-    }
     return;
   }
   if (RecordDecl *RD = dyn_cast<RecordDecl>(D)) {

Added: cfe/trunk/test/Rewriter/rewrite-qualified-id.mm
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Rewriter/rewrite-qualified-id.mm?rev=96987&view=auto
==============================================================================
--- cfe/trunk/test/Rewriter/rewrite-qualified-id.mm (added)
+++ cfe/trunk/test/Rewriter/rewrite-qualified-id.mm Tue Feb 23 15:34:38 2010
@@ -0,0 +1,21 @@
+// RUN: %clang_cc1 -x objective-c++ -Wno-return-type -fblocks -fms-extensions -rewrite-objc %s -o %t-rw.cpp
+// RUN: %clang_cc1 -fsyntax-only -Wno-address-of-temporary -D"SEL=void*" -D"__declspec(X)=" %t-rw.cpp
+// radar 7680953
+
+typedef void * id;
+
+ at protocol foo
+ at end
+
+ at interface CL
+{
+  id <foo> changeSource;
+  CL <foo>* changeSource1;
+}
+ at end
+
+typedef struct x
+{
+   id <foo> changeSource;
+} x;
+





More information about the cfe-commits mailing list