Skip to content

Commit 8a65129

Browse files
author
Anders Carlsson
committed
Handle QualifiedNameType and SubstTemplateTypeParmType types in CGDebugInfo::CreateTypeNode.
llvm-svn: 86274
1 parent ac5eba9 commit 8a65129

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

clang/lib/CodeGen/CGDebugInfo.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -879,6 +879,17 @@ llvm::DIType CGDebugInfo::CreateTypeNode(QualType Ty,
879879
return getOrCreateType(cast<TypeOfType>(Ty)->getUnderlyingType(), Unit);
880880
case Type::Decltype:
881881
return getOrCreateType(cast<DecltypeType>(Ty)->getUnderlyingType(), Unit);
882+
883+
case Type::QualifiedName: {
884+
const QualifiedNameType *T = cast<QualifiedNameType>(Ty);
885+
return CreateTypeNode(T->getNamedType(), Unit);
886+
}
887+
888+
case Type::SubstTemplateTypeParm: {
889+
const SubstTemplateTypeParmType *T = cast<SubstTemplateTypeParmType>(Ty);
890+
return CreateTypeNode(T->getReplacementType(), Unit);
891+
}
892+
882893
}
883894
}
884895

clang/test/CodeGenCXX/debug-info.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
// RUN: clang-cc -emit-llvm-only -g
2+
template<typename T> struct Identity {
3+
typedef T Type;
4+
};
5+
6+
void f(Identity<int>::Type a) {}

0 commit comments

Comments
 (0)