@@ -1429,20 +1429,6 @@ bool MasmParser::parsePrimaryExpr(const MCExpr *&Res, SMLoc &EndLoc,
14291429 Res = MCSymbolRefExpr::create (Sym, getContext ());
14301430 return false ;
14311431 }
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- }
14461432
14471433 EndLoc = SMLoc::getFromPointer (Identifier.end ());
14481434
@@ -1451,24 +1437,9 @@ bool MasmParser::parsePrimaryExpr(const MCExpr *&Res, SMLoc &EndLoc,
14511437 if (SymbolName.empty ())
14521438 return Error (getLexer ().getLoc (), " expected a symbol reference" );
14531439
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-
14691440 // Find the field offset if used.
14701441 AsmFieldInfo Info;
1471- Split = SymbolName.split (' .' );
1442+ auto Split = SymbolName.split (' .' );
14721443 if (Split.second .empty ()) {
14731444 } else {
14741445 SymbolName = Split.first ;
@@ -1510,20 +1481,18 @@ bool MasmParser::parsePrimaryExpr(const MCExpr *&Res, SMLoc &EndLoc,
15101481 // semantics in the face of reassignment.
15111482 if (Sym->isVariable ()) {
15121483 auto V = Sym->getVariableValue (/* SetUsed=*/ false );
1513- bool DoInline = isa<MCConstantExpr>(V) && !Variant ;
1484+ bool DoInline = isa<MCConstantExpr>(V);
15141485 if (auto TV = dyn_cast<MCTargetExpr>(V))
15151486 DoInline = TV->inlineAssignedExpr ();
15161487 if (DoInline) {
1517- if (Variant)
1518- return Error (EndLoc, " unexpected modifier on variable reference" );
15191488 Res = Sym->getVariableValue (/* SetUsed=*/ false );
15201489 return false ;
15211490 }
15221491 }
15231492
15241493 // 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);
15271496 if (Info.Offset ) {
15281497 Res = MCBinaryExpr::create (
15291498 MCBinaryExpr::Add, SymRef,
0 commit comments