From: Fariborz Jahanian Date: Tue, 23 Feb 2010 21:34:38 +0000 (+0000) Subject: Fixes a rewriting of qualified-id type which exposed a bigger X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5f1c45f7c8422bd80bdc76b743fd7516f2126d83;p=clang Fixes a rewriting of qualified-id type which exposed a bigger rewriting problem. Fixes radar 7680953. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96987 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Frontend/RewriteObjC.cpp b/lib/Frontend/RewriteObjC.cpp index cd5963d9f4..0156d1da91 100644 --- a/lib/Frontend/RewriteObjC.cpp +++ b/lib/Frontend/RewriteObjC.cpp @@ -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()->getDecl(); - if (RD->isDefinition()) - RewriteRecordBody(RD); - } return; } if (RecordDecl *RD = dyn_cast(D)) { diff --git a/test/Rewriter/rewrite-qualified-id.mm b/test/Rewriter/rewrite-qualified-id.mm new file mode 100644 index 0000000000..fe3607d41d --- /dev/null +++ b/test/Rewriter/rewrite-qualified-id.mm @@ -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 changeSource; + CL * changeSource1; +} +@end + +typedef struct x +{ + id changeSource; +} x; +