Clean up Cl flag refrences in the bitcode parser. The code previously had to navigate through 1 (or more) indirect pointers to find the CL flags. Since CL flags are a static field in the global context, simplify these references. Note: I have added member functions to do this (where appropriate) so that fixing code could be easy if we choose to move where the command line flags are stored. BUG=None R=eholk@chromium.org, stichnot@chromium.org Review URL: https://codereview.chromium.org/1845913003 .
diff --git a/src/PNaClTranslator.cpp b/src/PNaClTranslator.cpp index 65b8a5c..0bba5c2 100644 --- a/src/PNaClTranslator.cpp +++ b/src/PNaClTranslator.cpp
@@ -446,6 +446,10 @@ // Defines if a module block has already been parsed. bool ParsedModuleBlock = false; + static const Ice::ClFlags &getFlags() { + return Ice::GlobalContext::getFlags(); + } + bool ParseBlock(unsigned BlockID) override; // Gets extended type associated with the given index, assuming the extended @@ -489,8 +493,7 @@ // Installs names for global variables without names. void installGlobalVarNames() { assert(VariableDeclarations); - const std::string &GlobalPrefix = - getTranslator().getFlags().getDefaultGlobalPrefix(); + const std::string &GlobalPrefix = getFlags().getDefaultGlobalPrefix(); if (!GlobalPrefix.empty()) { NaClBcIndexSize_t NameIndex = 0; for (Ice::VariableDeclaration *Var : *VariableDeclarations) { @@ -501,8 +504,7 @@ // Installs names for functions without names. void installFunctionNames() { - const std::string &FunctionPrefix = - getTranslator().getFlags().getDefaultFunctionPrefix(); + const std::string &FunctionPrefix = getFlags().getDefaultFunctionPrefix(); if (!FunctionPrefix.empty()) { NaClBcIndexSize_t NameIndex = 0; for (Ice::FunctionDeclaration *Func : FunctionDeclarations) { @@ -588,8 +590,7 @@ NaClBitcodeParser::ErrorAt(Level, Bit, Message); setErrStream(OldErrStream); } - if (Level >= naclbitc::Error && - !Translator.getFlags().getAllowErrorRecovery()) + if (Level >= naclbitc::Error && !getFlags().getAllowErrorRecovery()) Fatal(); return true; } @@ -693,7 +694,9 @@ // Gets the translator associated with the bitcode parser. Ice::Translator &getTranslator() const { return Context->getTranslator(); } - const Ice::ClFlags &getFlags() const { return getTranslator().getFlags(); } + static const Ice::ClFlags &getFlags() { + return Ice::GlobalContext::getFlags(); + } // Default implementation. Reports that block is unknown and skips its // contents. @@ -3176,7 +3179,7 @@ std::unique_ptr<Ice::Cfg> Func = Parser.parseFunction(SeqNumber); bool Failed = Func->hasError(); getTranslator().translateFcn(std::move(Func)); - return Failed && !getTranslator().getFlags().getAllowErrorRecovery(); + return Failed && !getFlags().getAllowErrorRecovery(); } } default: