@@ -1429,20 +1429,6 @@ bool MasmParser::parsePrimaryExpr(const MCExpr *&Res, SMLoc &EndLoc,
1429
1429
Res = MCSymbolRefExpr::create (Sym, getContext ());
1430
1430
return false ;
1431
1431
}
1432
- // Parse symbol variant.
1433
- std::pair<StringRef, StringRef> Split;
1434
- if (!MAI.useParensForSymbolVariant ()) {
1435
- Split = Identifier.split (' @' );
1436
- } else if (Lexer.is (AsmToken::LParen)) {
1437
- Lex (); // eat '('.
1438
- StringRef VName;
1439
- parseIdentifier (VName);
1440
- // eat ')'.
1441
- if (parseToken (AsmToken::RParen,
1442
- " unexpected token in variant, expected ')'" ))
1443
- return true ;
1444
- Split = std::make_pair (Identifier, VName);
1445
- }
1446
1432
1447
1433
EndLoc = SMLoc::getFromPointer (Identifier.end ());
1448
1434
@@ -1451,24 +1437,9 @@ bool MasmParser::parsePrimaryExpr(const MCExpr *&Res, SMLoc &EndLoc,
1451
1437
if (SymbolName.empty ())
1452
1438
return Error (getLexer ().getLoc (), " expected a symbol reference" );
1453
1439
1454
- MCSymbolRefExpr::VariantKind Variant = MCSymbolRefExpr::VK_None;
1455
-
1456
- // Look up the symbol variant if used.
1457
- if (!Split.second .empty ()) {
1458
- Variant = MCSymbolRefExpr::getVariantKindForName (Split.second );
1459
- if (Variant != MCSymbolRefExpr::VK_Invalid) {
1460
- SymbolName = Split.first ;
1461
- } else if (MAI.doesAllowAtInName () && !MAI.useParensForSymbolVariant ()) {
1462
- Variant = MCSymbolRefExpr::VK_None;
1463
- } else {
1464
- return Error (SMLoc::getFromPointer (Split.second .begin ()),
1465
- " invalid variant '" + Split.second + " '" );
1466
- }
1467
- }
1468
-
1469
1440
// Find the field offset if used.
1470
1441
AsmFieldInfo Info;
1471
- Split = SymbolName.split (' .' );
1442
+ auto Split = SymbolName.split (' .' );
1472
1443
if (Split.second .empty ()) {
1473
1444
} else {
1474
1445
SymbolName = Split.first ;
@@ -1510,20 +1481,18 @@ bool MasmParser::parsePrimaryExpr(const MCExpr *&Res, SMLoc &EndLoc,
1510
1481
// semantics in the face of reassignment.
1511
1482
if (Sym->isVariable ()) {
1512
1483
auto V = Sym->getVariableValue (/* SetUsed=*/ false );
1513
- bool DoInline = isa<MCConstantExpr>(V) && !Variant ;
1484
+ bool DoInline = isa<MCConstantExpr>(V);
1514
1485
if (auto TV = dyn_cast<MCTargetExpr>(V))
1515
1486
DoInline = TV->inlineAssignedExpr ();
1516
1487
if (DoInline) {
1517
- if (Variant)
1518
- return Error (EndLoc, " unexpected modifier on variable reference" );
1519
1488
Res = Sym->getVariableValue (/* SetUsed=*/ false );
1520
1489
return false ;
1521
1490
}
1522
1491
}
1523
1492
1524
1493
// Otherwise create a symbol ref.
1525
- const MCExpr *SymRef =
1526
- MCSymbolRefExpr::create ( Sym, Variant , getContext (), FirstTokenLoc);
1494
+ const MCExpr *SymRef = MCSymbolRefExpr::create (
1495
+ Sym, MCSymbolRefExpr::VK_None , getContext (), FirstTokenLoc);
1527
1496
if (Info.Offset ) {
1528
1497
Res = MCBinaryExpr::create (
1529
1498
MCBinaryExpr::Add, SymRef,
0 commit comments