@@ -464,7 +464,7 @@ class CXXNameMangler {
464
464
void mangleSeqID (unsigned SeqID);
465
465
void mangleName (GlobalDecl GD);
466
466
void mangleType (QualType T);
467
- void mangleNameOrStandardSubstitution (const NamedDecl *ND );
467
+ void mangleCXXRecordDecl (const CXXRecordDecl *Record );
468
468
void mangleLambdaSig (const CXXRecordDecl *Lambda);
469
469
void mangleModuleNamePrefix (StringRef Name, bool IsPartition = false );
470
470
void mangleVendorQualifier (StringRef Name);
@@ -3029,9 +3029,11 @@ void CXXNameMangler::mangleType(QualType T) {
3029
3029
addSubstitution (T);
3030
3030
}
3031
3031
3032
- void CXXNameMangler::mangleNameOrStandardSubstitution (const NamedDecl *ND) {
3033
- if (!mangleStandardSubstitution (ND))
3034
- mangleName (ND);
3032
+ void CXXNameMangler::mangleCXXRecordDecl (const CXXRecordDecl *Record) {
3033
+ if (mangleSubstitution (Record))
3034
+ return ;
3035
+ mangleName (Record);
3036
+ addSubstitution (Record);
3035
3037
}
3036
3038
3037
3039
void CXXNameMangler::mangleType (const BuiltinType *T) {
@@ -7309,15 +7311,15 @@ void ItaniumMangleContextImpl::mangleCXXVTable(const CXXRecordDecl *RD,
7309
7311
// <special-name> ::= TV <type> # virtual table
7310
7312
CXXNameMangler Mangler (*this , Out);
7311
7313
Mangler.getStream () << " _ZTV" ;
7312
- Mangler.mangleNameOrStandardSubstitution (RD);
7314
+ Mangler.mangleCXXRecordDecl (RD);
7313
7315
}
7314
7316
7315
7317
void ItaniumMangleContextImpl::mangleCXXVTT (const CXXRecordDecl *RD,
7316
7318
raw_ostream &Out) {
7317
7319
// <special-name> ::= TT <type> # VTT structure
7318
7320
CXXNameMangler Mangler (*this , Out);
7319
7321
Mangler.getStream () << " _ZTT" ;
7320
- Mangler.mangleNameOrStandardSubstitution (RD);
7322
+ Mangler.mangleCXXRecordDecl (RD);
7321
7323
}
7322
7324
7323
7325
void ItaniumMangleContextImpl::mangleCXXCtorVTable (const CXXRecordDecl *RD,
@@ -7327,10 +7329,10 @@ void ItaniumMangleContextImpl::mangleCXXCtorVTable(const CXXRecordDecl *RD,
7327
7329
// <special-name> ::= TC <type> <offset number> _ <base type>
7328
7330
CXXNameMangler Mangler (*this , Out);
7329
7331
Mangler.getStream () << " _ZTC" ;
7330
- Mangler.mangleNameOrStandardSubstitution (RD);
7332
+ Mangler.mangleCXXRecordDecl (RD);
7331
7333
Mangler.getStream () << Offset;
7332
7334
Mangler.getStream () << ' _' ;
7333
- Mangler.mangleNameOrStandardSubstitution (Type);
7335
+ Mangler.mangleCXXRecordDecl (Type);
7334
7336
}
7335
7337
7336
7338
void ItaniumMangleContextImpl::mangleCXXRTTI (QualType Ty, raw_ostream &Out) {
0 commit comments