]> granicus.if.org Git - clang/commitdiff
Fixes a rewriting of qualified-id type which exposed a bigger
authorFariborz Jahanian <fjahanian@apple.com>
Tue, 23 Feb 2010 21:34:38 +0000 (21:34 +0000)
committerFariborz Jahanian <fjahanian@apple.com>
Tue, 23 Feb 2010 21:34:38 +0000 (21:34 +0000)
rewriting problem. Fixes radar 7680953.

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

lib/Frontend/RewriteObjC.cpp
test/Rewriter/rewrite-qualified-id.mm [new file with mode: 0644]

index cd5963d9f4462c42378bb0c1329fdd961dc386d9..0156d1da91d061e96987abbebfcf516fa4d6141d 100644 (file)
@@ -5358,11 +5358,6 @@ void RewriteObjC::HandleDeclInMainFile(Decl *D) {
       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)) {
diff --git a/test/Rewriter/rewrite-qualified-id.mm b/test/Rewriter/rewrite-qualified-id.mm
new file mode 100644 (file)
index 0000000..fe3607d
--- /dev/null
@@ -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;
+
+@protocol foo
+@end
+
+@interface CL
+{
+  id <foo> changeSource;
+  CL <foo>* changeSource1;
+}
+@end
+
+typedef struct x
+{
+   id <foo> changeSource;
+} x;
+