[Debug Info] remove DITrivialType and use null to represent unspecified param.

Per feedback on r214111, we are going to use null to represent unspecified
parameter. If the type array is {null}, it means a function that returns void;
If the type array is {null, null}, it means a variadic function that returns
void. In summary if we have more than one element in the type array and the last
element is null, it is a variadic function.

rdar://17628609


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@214189 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Manman Ren
2014-07-29 18:20:39 +00:00
parent 52f23be080
commit 23ab342d96
7 changed files with 22 additions and 71 deletions

View File

@ -875,11 +875,8 @@ void DIBuilder::retainType(DIType T) {
/// createUnspecifiedParameter - Create unspeicified type descriptor
/// for the subroutine type.
DITrivialType DIBuilder::createUnspecifiedParameter() {
Value *Elts[] = {
GetTagConstant(VMContext, dwarf::DW_TAG_unspecified_parameters)
};
return DITrivialType(MDNode::get(VMContext, Elts));
DIBasicType DIBuilder::createUnspecifiedParameter() {
return DIBasicType(nullptr);
}
/// createForwardDecl - Create a temporary forward-declared type that