forked from OSchip/llvm-project
PR42205: DebugInfio: Do not attempt to emit debug info metadata for static member variable template partial specializations
Would cause a crash in an attempt to create the type for the still unresolved 'auto' in the partial specialization (& even without the use of 'auto', the expression would be value dependent & crash/assertion-fail there). llvm-svn: 363606
This commit is contained in:
parent
15722626e3
commit
4f3b7364a4
|
@ -1410,6 +1410,9 @@ void CGDebugInfo::CollectRecordFields(
|
|||
isa<VarTemplateSpecializationDecl>(V))
|
||||
continue;
|
||||
|
||||
if (isa<VarTemplatePartialSpecializationDecl>(V))
|
||||
continue;
|
||||
|
||||
// Reuse the existing static member declaration if one exists
|
||||
auto MI = StaticDataMemberCache.find(V->getCanonicalDecl());
|
||||
if (MI != StaticDataMemberCache.end()) {
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
// RUN: %clang_cc1 %s -std=c++14 -debug-info-kind=limited -emit-llvm -o - | FileCheck %s
|
||||
|
||||
// CHECK: ![[empty:[0-9]+]] = !{}
|
||||
|
||||
// CHECK: distinct !DICompositeType(tag: DW_TAG_structure_type, name: "B",
|
||||
// CHECK-SAME: elements: ![[empty]]
|
||||
|
||||
struct B {
|
||||
template <typename... e>
|
||||
static const int d = 0;
|
||||
template <typename e>
|
||||
static const auto d<e> = d<e, e>;
|
||||
} c;
|
Loading…
Reference in New Issue