summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/Decl.cpp
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2008-12-20 23:29:59 +0000
committerFariborz Jahanian <fjahanian@apple.com>2008-12-20 23:29:59 +0000
commita0befc0a6f064c3cff0d2c5386eabb763e991bf0 (patch)
tree89a56c4c979ef49e15032a93bb98dc367f6d8113 /clang/lib/AST/Decl.cpp
parent5ad3c91b273cf6fe57bf31a06eb31d6317d06aae (diff)
downloadbcm5719-llvm-a0befc0a6f064c3cff0d2c5386eabb763e991bf0.tar.gz
bcm5719-llvm-a0befc0a6f064c3cff0d2c5386eabb763e991bf0.zip
Finish up saving original parameter type and
using it in ObjC's method parameter encoding. llvm-svn: 61293
Diffstat (limited to 'clang/lib/AST/Decl.cpp')
-rw-r--r--clang/lib/AST/Decl.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/clang/lib/AST/Decl.cpp b/clang/lib/AST/Decl.cpp
index 021becc85a2..3edf8a02efb 100644
--- a/clang/lib/AST/Decl.cpp
+++ b/clang/lib/AST/Decl.cpp
@@ -54,7 +54,14 @@ ParmVarDecl *ParmVarDecl::Create(ASTContext &C, DeclContext *DC,
QualType T, StorageClass S,
Expr *DefArg, ScopedDecl *PrevDecl) {
void *Mem = C.getAllocator().Allocate<ParmVarDecl>();
- return new (Mem) ParmVarDecl(DC, L, Id, T, S, DefArg, PrevDecl);
+ return new (Mem) ParmVarDecl(ParmVar, DC, L, Id, T, S, DefArg, PrevDecl);
+}
+
+QualType ParmVarDecl::getOriginalType() const {
+ if (const ParmVarWithOriginalTypeDecl *PVD =
+ dyn_cast<ParmVarWithOriginalTypeDecl>(this))
+ return PVD->OriginalType;
+ return getType();
}
ParmVarWithOriginalTypeDecl *ParmVarWithOriginalTypeDecl::Create(
OpenPOWER on IntegriCloud