Index: llvm/trunk/include/llvm/MC/MCParser/MCAsmParser.h =================================================================== --- llvm/trunk/include/llvm/MC/MCParser/MCAsmParser.h +++ llvm/trunk/include/llvm/MC/MCParser/MCAsmParser.h @@ -35,7 +35,6 @@ void *OpDecl; bool IsVarDecl; unsigned Length, Size, Type; - StringRef InternalName; void clear() { OpDecl = nullptr; @@ -43,7 +42,6 @@ Length = 1; Size = 0; Type = 0; - InternalName = ""; } }; Index: llvm/trunk/include/llvm/MC/MCTargetAsmParser.h =================================================================== --- llvm/trunk/include/llvm/MC/MCTargetAsmParser.h +++ llvm/trunk/include/llvm/MC/MCTargetAsmParser.h @@ -44,16 +44,16 @@ const char AsmRewritePrecedence [] = { 0, // AOK_Delete - 1, // AOK_Align - 1, // AOK_DotOperator - 1, // AOK_Emit - 3, // AOK_Imm - 3, // AOK_ImmPrefix - 2, // AOK_Input - 2, // AOK_Output - 4, // AOK_SizeDirective + 2, // AOK_Align + 2, // AOK_DotOperator + 2, // AOK_Emit + 4, // AOK_Imm + 4, // AOK_ImmPrefix + 3, // AOK_Input + 3, // AOK_Output + 5, // AOK_SizeDirective 1, // AOK_Label - 1 // AOK_Skip + 2 // AOK_Skip }; struct AsmRewrite { Index: llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp =================================================================== --- llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp +++ llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp @@ -1047,12 +1047,6 @@ InstInfo->AsmRewrites->push_back(AsmRewrite(AOK_SizeDirective, Start, /*Len=*/0, Size)); } - if (!Info.InternalName.empty()) { - // Push a rewrite for replacing the identifier name with the internal name. - InstInfo->AsmRewrites->push_back(AsmRewrite(AOK_Label, Start, - End.getPointer() - Start.getPointer(), - Info.InternalName)); - } } // When parsing inline assembly we set the base register to a non-zero value @@ -1347,9 +1341,14 @@ // If the identifier lookup was unsuccessful, assume that we are dealing with // a label. if (!Result) { - Identifier = SemaCallback->LookupInlineAsmLabel(Identifier, getSourceManager(), Loc, false); - assert(Identifier.size() && "We should have an internal name here."); - Info.InternalName = Identifier; + StringRef InternalName = + SemaCallback->LookupInlineAsmLabel(Identifier, getSourceManager(), + Loc, false); + assert(InternalName.size() && "We should have an internal name here."); + // Push a rewrite for replacing the identifier name with the internal name. + InstInfo->AsmRewrites->push_back(AsmRewrite(AOK_Label, Loc, + Identifier.size(), + InternalName)); } // Create the symbol reference.