r149474 went a bit too far when combined with type caching. If we want

a full type go ahead and emit it if we currently only have a forward
declaration.

Fixes gdb bots for gdb1090.exp and call-ar-st.exp.

llvm-svn: 149560
This commit is contained in:
Eric Christopher 2012-02-01 23:39:00 +00:00
parent 6d65d7b63d
commit c9e6924fb2
1 changed files with 5 additions and 2 deletions

View File

@ -1637,9 +1637,12 @@ llvm::DIType CGDebugInfo::getOrCreateType(QualType Ty, llvm::DIFile Unit) {
// Unwrap the type as needed for debug information.
Ty = UnwrapTypeForDebugInfo(Ty);
// Check if we already have the type. If we've gotten here and
// have a forward declaration of the type we may want the full type.
// Go ahead and create it if that's the case.
llvm::DIType T = getTypeOrNull(Ty);
if (T.Verify()) return T;
if (T.Verify() && !T.isForwardDecl()) return T;
// Otherwise create the type.
llvm::DIType Res = CreateTypeNode(Ty, Unit);