From: Oliver Stannard Date: Tue, 6 Mar 2018 15:32:34 +0000 (+0000) Subject: [ARM][Asm] Fix layering violation introduced by r326795 X-Git-Tag: llvmorg-7.0.0-rc1~11315 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c3e7c6d2916e8fe7ca7b32a468e67e7a9498c6b4;p=platform%2Fupstream%2Fllvm.git [ARM][Asm] Fix layering violation introduced by r326795 The MCAsmMacro::dump function is in the MCParser library, so can't be called from the MC library. llvm-svn: 326804 --- diff --git a/llvm/include/llvm/MC/MCContext.h b/llvm/include/llvm/MC/MCContext.h index 3f45301..c4abef1 100644 --- a/llvm/include/llvm/MC/MCContext.h +++ b/llvm/include/llvm/MC/MCContext.h @@ -634,17 +634,10 @@ namespace llvm { } void defineMacro(StringRef Name, MCAsmMacro Macro) { - DEBUG_WITH_TYPE("asm-macros", dbgs() << "Defining new macro:\n"; - Macro.dump()); MacroMap.insert(std::make_pair(Name, std::move(Macro))); } - void undefineMacro(StringRef Name) { - if (MacroMap.erase(Name)) { - DEBUG_WITH_TYPE("asm-macros", - dbgs() << "Un-defining macro: " << Name << "\n"); - } - } + void undefineMacro(StringRef Name) { MacroMap.erase(Name); } }; } // end namespace llvm diff --git a/llvm/lib/MC/MCParser/AsmParser.cpp b/llvm/lib/MC/MCParser/AsmParser.cpp index 76eef5e..54a7673 100644 --- a/llvm/lib/MC/MCParser/AsmParser.cpp +++ b/llvm/lib/MC/MCParser/AsmParser.cpp @@ -4257,7 +4257,10 @@ bool AsmParser::parseDirectiveMacro(SMLoc DirectiveLoc) { const char *BodyEnd = EndToken.getLoc().getPointer(); StringRef Body = StringRef(BodyStart, BodyEnd - BodyStart); checkForBadMacro(DirectiveLoc, Name, Body, Parameters); - getContext().defineMacro(Name, MCAsmMacro(Name, Body, std::move(Parameters))); + MCAsmMacro Macro(Name, Body, std::move(Parameters)); + DEBUG_WITH_TYPE("asm-macros", dbgs() << "Defining new macro:\n"; + Macro.dump()); + getContext().defineMacro(Name, std::move(Macro)); return false; } @@ -4420,6 +4423,8 @@ bool AsmParser::parseDirectivePurgeMacro(SMLoc DirectiveLoc) { return Error(DirectiveLoc, "macro '" + Name + "' is not defined"); getContext().undefineMacro(Name); + DEBUG_WITH_TYPE("asm-macros", dbgs() + << "Un-defining macro: " << Name << "\n"); return false; }