File tree Expand file tree Collapse file tree 2 files changed +24
-30
lines changed
llvm/include/llvm/Demangle Expand file tree Collapse file tree 2 files changed +24
-30
lines changed Original file line number Diff line number Diff line change @@ -5448,37 +5448,34 @@ Node *AbstractManglingParser<Derived, Alloc>::parseSubstitution() {
5448
5448
return nullptr ;
5449
5449
5450
5450
if (look () >= ' a' && look () <= ' z' ) {
5451
- Node *SpecialSub ;
5451
+ SpecialSubKind Kind ;
5452
5452
switch (look ()) {
5453
5453
case ' a' :
5454
- ++First;
5455
- SpecialSub = make<SpecialSubstitution>(SpecialSubKind::allocator);
5454
+ Kind = SpecialSubKind::allocator;
5456
5455
break ;
5457
5456
case ' b' :
5458
- ++First;
5459
- SpecialSub = make<SpecialSubstitution>(SpecialSubKind::basic_string);
5457
+ Kind = SpecialSubKind::basic_string;
5460
5458
break ;
5461
- case ' s' :
5462
- ++First;
5463
- SpecialSub = make<SpecialSubstitution>(SpecialSubKind::string);
5459
+ case ' d' :
5460
+ Kind = SpecialSubKind::iostream;
5464
5461
break ;
5465
5462
case ' i' :
5466
- ++First;
5467
- SpecialSub = make<SpecialSubstitution>(SpecialSubKind::istream);
5463
+ Kind = SpecialSubKind::istream;
5468
5464
break ;
5469
5465
case ' o' :
5470
- ++First;
5471
- SpecialSub = make<SpecialSubstitution>(SpecialSubKind::ostream);
5466
+ Kind = SpecialSubKind::ostream;
5472
5467
break ;
5473
- case ' d' :
5474
- ++First;
5475
- SpecialSub = make<SpecialSubstitution>(SpecialSubKind::iostream);
5468
+ case ' s' :
5469
+ Kind = SpecialSubKind::string;
5476
5470
break ;
5477
5471
default :
5478
5472
return nullptr ;
5479
5473
}
5474
+ ++First;
5475
+ auto *SpecialSub = make<SpecialSubstitution>(Kind);
5480
5476
if (!SpecialSub)
5481
5477
return nullptr ;
5478
+
5482
5479
// Itanium C++ ABI 5.1.2: If a name that would use a built-in <substitution>
5483
5480
// has ABI tags, the tags are appended to the substitution; the result is a
5484
5481
// substitutable component.
Original file line number Diff line number Diff line change @@ -5450,37 +5450,34 @@ Node *AbstractManglingParser<Derived, Alloc>::parseSubstitution() {
5450
5450
return nullptr ;
5451
5451
5452
5452
if (look () >= ' a' && look () <= ' z' ) {
5453
- Node *SpecialSub ;
5453
+ SpecialSubKind Kind ;
5454
5454
switch (look ()) {
5455
5455
case ' a' :
5456
- ++First;
5457
- SpecialSub = make<SpecialSubstitution>(SpecialSubKind::allocator);
5456
+ Kind = SpecialSubKind::allocator;
5458
5457
break ;
5459
5458
case ' b' :
5460
- ++First;
5461
- SpecialSub = make<SpecialSubstitution>(SpecialSubKind::basic_string);
5459
+ Kind = SpecialSubKind::basic_string;
5462
5460
break ;
5463
- case ' s' :
5464
- ++First;
5465
- SpecialSub = make<SpecialSubstitution>(SpecialSubKind::string);
5461
+ case ' d' :
5462
+ Kind = SpecialSubKind::iostream;
5466
5463
break ;
5467
5464
case ' i' :
5468
- ++First;
5469
- SpecialSub = make<SpecialSubstitution>(SpecialSubKind::istream);
5465
+ Kind = SpecialSubKind::istream;
5470
5466
break ;
5471
5467
case ' o' :
5472
- ++First;
5473
- SpecialSub = make<SpecialSubstitution>(SpecialSubKind::ostream);
5468
+ Kind = SpecialSubKind::ostream;
5474
5469
break ;
5475
- case ' d' :
5476
- ++First;
5477
- SpecialSub = make<SpecialSubstitution>(SpecialSubKind::iostream);
5470
+ case ' s' :
5471
+ Kind = SpecialSubKind::string;
5478
5472
break ;
5479
5473
default :
5480
5474
return nullptr ;
5481
5475
}
5476
+ ++First;
5477
+ auto *SpecialSub = make<SpecialSubstitution>(Kind);
5482
5478
if (!SpecialSub)
5483
5479
return nullptr ;
5480
+
5484
5481
// Itanium C++ ABI 5.1.2: If a name that would use a built-in <substitution>
5485
5482
// has ABI tags, the tags are appended to the substitution; the result is a
5486
5483
// substitutable component.
You can’t perform that action at this time.
0 commit comments