mirror of https://github.com/microsoft/clang.git
PR19623: Support typedefs (and alias templates) of void.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@207781 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
b9351d0cbc
commit
387e171138
|
@ -722,7 +722,6 @@ llvm::DIType CGDebugInfo::CreateType(const BlockPointerType *Ty,
|
|||
llvm::DIType CGDebugInfo::CreateType(const TemplateSpecializationType *Ty, llvm::DIFile Unit) {
|
||||
assert(Ty->isTypeAlias());
|
||||
llvm::DIType Src = getOrCreateType(Ty->getAliasedType(), Unit);
|
||||
assert(Src);
|
||||
|
||||
SmallString<128> NS;
|
||||
llvm::raw_svector_ostream OS(NS);
|
||||
|
@ -749,8 +748,6 @@ llvm::DIType CGDebugInfo::CreateType(const TypedefType *Ty, llvm::DIFile Unit) {
|
|||
// Typedefs are derived from some other type. If we have a typedef of a
|
||||
// typedef, make sure to emit the whole chain.
|
||||
llvm::DIType Src = getOrCreateType(Ty->getDecl()->getUnderlyingType(), Unit);
|
||||
if (!Src)
|
||||
return llvm::DIType();
|
||||
// We don't set size information, but do specify where the typedef was
|
||||
// declared.
|
||||
SourceLocation Loc = Ty->getDecl()->getLocation();
|
||||
|
|
|
@ -27,3 +27,11 @@ narf // CHECK: [[NARF]] = {{.*}} ; [ DW_TAG_typedef ] [narf] [line 142
|
|||
= int;
|
||||
narf n;
|
||||
|
||||
template <typename T>
|
||||
using tv = void;
|
||||
// CHECK: null} ; [ DW_TAG_typedef ] [tv<int>] {{.*}} [from ]
|
||||
tv<int> *tvp;
|
||||
|
||||
using v = void;
|
||||
// CHECK: null} ; [ DW_TAG_typedef ] [v] {{.*}} [from ]
|
||||
v *vp;
|
||||
|
|
Loading…
Reference in New Issue