diff options
author | Fariborz Jahanian <fjahanian@apple.com> | 2010-01-11 22:48:40 +0000 |
---|---|---|
committer | Fariborz Jahanian <fjahanian@apple.com> | 2010-01-11 22:48:40 +0000 |
commit | 1c2cb6df9ef500613988a6e691a0fbf998c635e4 (patch) | |
tree | a5723f6de6e789b125bcf07b2e9baef2edc75dab /clang/lib/Frontend/RewriteObjC.cpp | |
parent | a6b1356cf98bddc2484d5f0ca8d6bc83af3ab12e (diff) | |
download | bcm5719-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/Frontend/RewriteObjC.cpp')
-rw-r--r-- | clang/lib/Frontend/RewriteObjC.cpp | 14 |
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(); |