summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2010-01-11 22:48:40 +0000
committerFariborz Jahanian <fjahanian@apple.com>2010-01-11 22:48:40 +0000
commit1c2cb6df9ef500613988a6e691a0fbf998c635e4 (patch)
treea5723f6de6e789b125bcf07b2e9baef2edc75dab /clang/lib
parenta6b1356cf98bddc2484d5f0ca8d6bc83af3ab12e (diff)
downloadbcm5719-llvm-1c2cb6df9ef500613988a6e691a0fbf998c635e4.tar.gz
bcm5719-llvm-1c2cb6df9ef500613988a6e691a0fbf998c635e4.zip
Fix rewriting for forward class declaration.
(fixes radar 6969189). llvm-svn: 93201
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/Frontend/RewriteObjC.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/clang/lib/Frontend/RewriteObjC.cpp b/clang/lib/Frontend/RewriteObjC.cpp
index 28f79aa10ad..e8bb18665b5 100644
--- a/clang/lib/Frontend/RewriteObjC.cpp
+++ b/clang/lib/Frontend/RewriteObjC.cpp
@@ -787,9 +787,17 @@ void RewriteObjC::RewriteForwardClassDecl(ObjCClassDecl *ClassDecl) {
// as the class. As a convenience, we include the original declaration
// as a comment.
std::string typedefString;
- typedefString += "// ";
- typedefString.append(startBuf, semiPtr-startBuf+1);
- typedefString += "\n";
+ typedefString += "// @class ";
+ for (ObjCClassDecl::iterator I = ClassDecl->begin(), E = ClassDecl->end();
+ I != E; ++I) {
+ ObjCInterfaceDecl *ForwardDecl = I->getInterface();
+ typedefString += ForwardDecl->getNameAsString();
+ if (I+1 != E)
+ typedefString += ", ";
+ else
+ typedefString += ";\n";
+ }
+
for (ObjCClassDecl::iterator I = ClassDecl->begin(), E = ClassDecl->end();
I != E; ++I) {
ObjCInterfaceDecl *ForwardDecl = I->getInterface();
OpenPOWER on IntegriCloud