The type of the self and cmd variables should be artificial. (Note

that the types aren't artificial the args are, but this is currently
represented by an artificial type.)

Found by inspection.

llvm-svn: 163585
This commit is contained in:
Eric Christopher 2012-09-11 01:36:54 +00:00
parent a699b6a44c
commit 5296db0805
1 changed files with 4 additions and 2 deletions

View File

@ -1998,9 +1998,11 @@ llvm::DIType CGDebugInfo::getOrCreateFunctionType(const Decl * D,
// First element is always return type. For 'void' functions it is NULL.
Elts.push_back(getOrCreateType(OMethod->getResultType(), F));
// "self" pointer is always first argument.
Elts.push_back(getOrCreateType(OMethod->getSelfDecl()->getType(), F));
llvm::DIType SelfTy = getOrCreateType(OMethod->getSelfDecl()->getType(), F);
Elts.push_back(DBuilder.createArtificialType(SelfTy));
// "cmd" pointer is always second argument.
Elts.push_back(getOrCreateType(OMethod->getCmdDecl()->getType(), F));
llvm::DIType CmdTy = getOrCreateType(OMethod->getCmdDecl()->getType(), F);
Elts.push_back(DBuilder.createArtificialType(CmdTy));
// Get rest of the arguments.
for (ObjCMethodDecl::param_const_iterator PI = OMethod->param_begin(),
PE = OMethod->param_end(); PI != PE; ++PI)