summaryrefslogtreecommitdiffstats
path: root/llvm/lib/MC/MCParser/AsmParser.cpp
diff options
context:
space:
mode:
authorEli Bendersky <eliben@google.com>2013-01-14 18:08:41 +0000
committerEli Bendersky <eliben@google.com>2013-01-14 18:08:41 +0000
commitc2f6f920b9f358c8b8a22633c5ce1526a7b86b89 (patch)
tree3f32e3e0413136783f1e01c0a595b7e7199012c4 /llvm/lib/MC/MCParser/AsmParser.cpp
parent11dfe6fe3d0736d46c9cfc9de79bef60c671c097 (diff)
downloadbcm5719-llvm-c2f6f920b9f358c8b8a22633c5ce1526a7b86b89.tar.gz
bcm5719-llvm-c2f6f920b9f358c8b8a22633c5ce1526a7b86b89.zip
Encapsulate the MacroEnabled flag in AsmParser behind accessor methods.
The methods are also exposed via the MCAsmParser interface, which allows more than one client to control them. Previously, GenericAsmParser was playing with a member var in AsmParser directly (by virtue of being its friend). llvm-svn: 172440
Diffstat (limited to 'llvm/lib/MC/MCParser/AsmParser.cpp')
-rw-r--r--llvm/lib/MC/MCParser/AsmParser.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/llvm/lib/MC/MCParser/AsmParser.cpp b/llvm/lib/MC/MCParser/AsmParser.cpp
index 50579a64a2f..3621982259c 100644
--- a/llvm/lib/MC/MCParser/AsmParser.cpp
+++ b/llvm/lib/MC/MCParser/AsmParser.cpp
@@ -151,7 +151,7 @@ private:
std::vector<MacroInstantiation*> ActiveMacros;
/// Boolean tracking whether macro substitution is enabled.
- unsigned MacrosEnabled : 1;
+ unsigned MacrosEnabledFlag : 1;
/// Flag tracking whether any errors have been encountered.
unsigned HadError : 1;
@@ -231,6 +231,9 @@ public:
virtual bool ParseIdentifier(StringRef &Res);
virtual void EatToEndOfStatement();
+ virtual bool MacrosEnabled() {return MacrosEnabledFlag;}
+ virtual void SetMacrosEnabled(bool flag) {MacrosEnabledFlag = flag;}
+
/// }
private:
@@ -503,7 +506,7 @@ AsmParser::AsmParser(SourceMgr &_SM, MCContext &_Ctx,
MCStreamer &_Out, const MCAsmInfo &_MAI)
: Lexer(_MAI), Ctx(_Ctx), Out(_Out), MAI(_MAI), SrcMgr(_SM),
GenericParser(new GenericAsmParser), PlatformParser(0),
- CurBuffer(0), MacrosEnabled(true), CppHashLineNumber(0),
+ CurBuffer(0), MacrosEnabledFlag(true), CppHashLineNumber(0),
AssemblerDialect(~0U), IsDarwin(false), ParsingInlineAsm(false) {
// Save the old handler.
SavedDiagHandler = SrcMgr.getDiagHandler();
@@ -1278,7 +1281,7 @@ bool AsmParser::ParseStatement(ParseStatementInfo &Info) {
}
// If macros are enabled, check to see if this is a macro instantiation.
- if (MacrosEnabled)
+ if (MacrosEnabled())
if (const Macro *M = MacroMap.lookup(IDVal))
return HandleMacroEntry(IDVal, IDLoc, M);
@@ -3489,7 +3492,7 @@ bool GenericAsmParser::ParseDirectiveMacrosOnOff(StringRef Directive,
return Error(getLexer().getLoc(),
"unexpected token in '" + Directive + "' directive");
- getParser().MacrosEnabled = Directive == ".macros_on";
+ getParser().SetMacrosEnabled(Directive == ".macros_on");
return false;
}
OpenPOWER on IntegriCloud