summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Naroff <snaroff@apple.com>2008-04-18 21:13:19 +0000
committerSteve Naroff <snaroff@apple.com>2008-04-18 21:13:19 +0000
commitdcdcdcdfef3044ead7710c3a636ded2f406c7ecc (patch)
tree467d08fe8168bc8a7518e6348870e4944954abc0
parent85a9f1911ebbc95abea0278df47f06b231956b8f (diff)
downloadbcm5719-llvm-dcdcdcdfef3044ead7710c3a636ded2f406c7ecc.tar.gz
bcm5719-llvm-dcdcdcdfef3044ead7710c3a636ded2f406c7ecc.zip
Fix <rdar://problem/5874697> Rewriter: method arguments with complex types not being rewritten properly.
llvm-svn: 49925
-rw-r--r--clang/Driver/RewriteObjC.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/clang/Driver/RewriteObjC.cpp b/clang/Driver/RewriteObjC.cpp
index ebab81fb734..f66658864b3 100644
--- a/clang/Driver/RewriteObjC.cpp
+++ b/clang/Driver/RewriteObjC.cpp
@@ -720,12 +720,14 @@ void RewriteObjC::RewriteObjCMethodDecl(ObjCMethodDecl *OMD,
for (unsigned i = 0; i < OMD->getNumParams(); i++) {
ParmVarDecl *PDecl = OMD->getParamDecl(i);
ResultStr += ", ";
- if (PDecl->getType()->isObjCQualifiedIdType())
- ResultStr += "id";
- else
- ResultStr += PDecl->getType().getAsString();
- ResultStr += " ";
- ResultStr += PDecl->getName();
+ if (PDecl->getType()->isObjCQualifiedIdType()) {
+ ResultStr += "id ";
+ ResultStr += PDecl->getName();
+ } else {
+ std::string Name = PDecl->getName();
+ PDecl->getType().getAsStringInternal(Name);
+ ResultStr += Name;
+ }
}
if (OMD->isVariadic())
ResultStr += ", ...";
OpenPOWER on IntegriCloud