summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2010-02-23 21:34:38 +0000
committerFariborz Jahanian <fjahanian@apple.com>2010-02-23 21:34:38 +0000
commitc1b7acbaebeae197eb3d260d7b0fc83a7dbe9915 (patch)
tree0b4107241171426bf29549836ba770f4c08e8620
parentb4331a990859f0ca3995f1736eb3d05a85b7a60e (diff)
downloadbcm5719-llvm-c1b7acbaebeae197eb3d260d7b0fc83a7dbe9915.tar.gz
bcm5719-llvm-c1b7acbaebeae197eb3d260d7b0fc83a7dbe9915.zip
Fixes a rewriting of qualified-id type which exposed a bigger
rewriting problem. Fixes radar 7680953. llvm-svn: 96987
-rw-r--r--clang/lib/Frontend/RewriteObjC.cpp5
-rw-r--r--clang/test/Rewriter/rewrite-qualified-id.mm21
2 files changed, 21 insertions, 5 deletions
diff --git a/clang/lib/Frontend/RewriteObjC.cpp b/clang/lib/Frontend/RewriteObjC.cpp
index cd5963d9f44..0156d1da91d 100644
--- a/clang/lib/Frontend/RewriteObjC.cpp
+++ b/clang/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<RecordType>()->getDecl();
- if (RD->isDefinition())
- RewriteRecordBody(RD);
- }
return;
}
if (RecordDecl *RD = dyn_cast<RecordDecl>(D)) {
diff --git a/clang/test/Rewriter/rewrite-qualified-id.mm b/clang/test/Rewriter/rewrite-qualified-id.mm
new file mode 100644
index 00000000000..fe3607d41d0
--- /dev/null
+++ b/clang/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 <foo> changeSource;
+ CL <foo>* changeSource1;
+}
+@end
+
+typedef struct x
+{
+ id <foo> changeSource;
+} x;
+
OpenPOWER on IntegriCloud