forked from OSchip/llvm-project
Fix PR30440: Initialize FunctionTypeDepth in CXXNameMangler
This commit fixes PR 30440 by initializing CXXNameMangler's FunctionTypeDepth in the two constructors added in r274222 (The commit that caused this regression). rdar://28455269 Differential Revision: https://reviews.llvm.org/D24932 llvm-svn: 283428
This commit is contained in:
parent
d3f5af0fe4
commit
7ba609a220
|
@ -405,14 +405,14 @@ public:
|
||||||
CXXNameMangler(CXXNameMangler &Outer, raw_ostream &Out_)
|
CXXNameMangler(CXXNameMangler &Outer, raw_ostream &Out_)
|
||||||
: Context(Outer.Context), Out(Out_), NullOut(false),
|
: Context(Outer.Context), Out(Out_), NullOut(false),
|
||||||
Structor(Outer.Structor), StructorType(Outer.StructorType),
|
Structor(Outer.Structor), StructorType(Outer.StructorType),
|
||||||
SeqID(Outer.SeqID), AbiTagsRoot(AbiTags),
|
SeqID(Outer.SeqID), FunctionTypeDepth(Outer.FunctionTypeDepth),
|
||||||
Substitutions(Outer.Substitutions) {}
|
AbiTagsRoot(AbiTags), Substitutions(Outer.Substitutions) {}
|
||||||
|
|
||||||
CXXNameMangler(CXXNameMangler &Outer, llvm::raw_null_ostream &Out_)
|
CXXNameMangler(CXXNameMangler &Outer, llvm::raw_null_ostream &Out_)
|
||||||
: Context(Outer.Context), Out(Out_), NullOut(true),
|
: Context(Outer.Context), Out(Out_), NullOut(true),
|
||||||
Structor(Outer.Structor), StructorType(Outer.StructorType),
|
Structor(Outer.Structor), StructorType(Outer.StructorType),
|
||||||
SeqID(Outer.SeqID), AbiTagsRoot(AbiTags),
|
SeqID(Outer.SeqID), FunctionTypeDepth(Outer.FunctionTypeDepth),
|
||||||
Substitutions(Outer.Substitutions) {}
|
AbiTagsRoot(AbiTags), Substitutions(Outer.Substitutions) {}
|
||||||
|
|
||||||
#if MANGLE_CHECKER
|
#if MANGLE_CHECKER
|
||||||
~CXXNameMangler() {
|
~CXXNameMangler() {
|
||||||
|
|
|
@ -219,3 +219,16 @@ void f19_test(N19::C<N19::A, &N19::foo>, N19::F, N19::D) {
|
||||||
}
|
}
|
||||||
// f19_test(N19::C<N19::A, &N19::foo[abi:B]>, N19::F, N19::D)
|
// f19_test(N19::C<N19::A, &N19::foo[abi:B]>, N19::F, N19::D)
|
||||||
// CHECK-DAG: define void @_Z8f19_testN3N191CINS_1AEXadL_ZNS_3fooB1BES1_NS_1DEEEEENS_1FES2_(
|
// CHECK-DAG: define void @_Z8f19_testN3N191CINS_1AEXadL_ZNS_3fooB1BES1_NS_1DEEEEENS_1FES2_(
|
||||||
|
|
||||||
|
namespace pr30440 {
|
||||||
|
|
||||||
|
template<class F> void g(F);
|
||||||
|
template<class ...A> auto h(A ...a)->decltype (g (0, g < a > (a) ...)) {
|
||||||
|
}
|
||||||
|
// CHECK-DAG: define {{.*}} @_ZN7pr304401hIJEEEDTcl1gLi0Espcl1gIL_ZZNS_1hEDpT_E1aEEfp_EEES2_(
|
||||||
|
|
||||||
|
void pr30440_test () {
|
||||||
|
h();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue