diff options
author | Fariborz Jahanian <fjahanian@apple.com> | 2013-04-03 19:11:21 +0000 |
---|---|---|
committer | Fariborz Jahanian <fjahanian@apple.com> | 2013-04-03 19:11:21 +0000 |
commit | 3a65ce3a5687aaa4468cc69fd3a3869675ceb6a3 (patch) | |
tree | 7e160f59bbf995ef28d09663c26bb519eed1fb0d /clang/lib | |
parent | 9cad53cfeceed2ef75aa17f0553edd27afd2e950 (diff) | |
download | bcm5719-llvm-3a65ce3a5687aaa4468cc69fd3a3869675ceb6a3.tar.gz bcm5719-llvm-3a65ce3a5687aaa4468cc69fd3a3869675ceb6a3.zip |
Objective-C modern rewriter. Fixes a bug
rewriting typedef for a qualified object type
and also when two declarations happen to be on the
same line. // rdar://13562505
llvm-svn: 178680
Diffstat (limited to 'clang/lib')
-rw-r--r-- | clang/lib/Rewrite/Frontend/RewriteModernObjC.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/clang/lib/Rewrite/Frontend/RewriteModernObjC.cpp b/clang/lib/Rewrite/Frontend/RewriteModernObjC.cpp index ffadfd3c1a0..0e59b113c96 100644 --- a/clang/lib/Rewrite/Frontend/RewriteModernObjC.cpp +++ b/clang/lib/Rewrite/Frontend/RewriteModernObjC.cpp @@ -1149,7 +1149,7 @@ void RewriteModernObjC::RewriteCategoryDecl(ObjCCategoryDecl *CatDecl) { // Lastly, comment out the @end. ReplaceText(CatDecl->getAtEndRange().getBegin(), - strlen("@end"), "/* @end */"); + strlen("@end"), "/* @end */\n"); } void RewriteModernObjC::RewriteProtocolDecl(ObjCProtocolDecl *PDecl) { @@ -1174,7 +1174,7 @@ void RewriteModernObjC::RewriteProtocolDecl(ObjCProtocolDecl *PDecl) { // Lastly, comment out the @end. SourceLocation LocEnd = PDecl->getAtEndRange().getBegin(); - ReplaceText(LocEnd, strlen("@end"), "/* @end */"); + ReplaceText(LocEnd, strlen("@end"), "/* @end */\n"); // Must comment out @optional/@required const char *startBuf = SM->getCharacterData(LocStart); @@ -1442,7 +1442,7 @@ void RewriteModernObjC::RewriteInterfaceDecl(ObjCInterfaceDecl *ClassDecl) { // Lastly, comment out the @end. ReplaceText(ClassDecl->getAtEndRange().getBegin(), strlen("@end"), - "/* @end */"); + "/* @end */\n"); } } @@ -2259,6 +2259,10 @@ void RewriteModernObjC::RewriteObjCQualifiedInterfaceTypes(Decl *Dcl) { Loc = FD->getLocation(); Type = FD->getType(); } + else if (TypedefNameDecl *TD = dyn_cast<TypedefNameDecl>(Dcl)) { + Loc = TD->getLocation(); + Type = TD->getUnderlyingType(); + } else return; @@ -5996,6 +6000,8 @@ void RewriteModernObjC::HandleDeclInMainFile(Decl *D) { RewriteBlockPointerDecl(TD); else if (TD->getUnderlyingType()->isFunctionPointerType()) CheckFunctionPointerDecl(TD->getUnderlyingType(), TD); + else + RewriteObjCQualifiedInterfaceTypes(TD); } break; } |