From 005d51bc4f16a7b330e13082d186b72953bde581 Mon Sep 17 00:00:00 2001 From: Douglas Gregor Date: Thu, 7 Feb 2013 01:18:48 +0000 Subject: Be a little more permissive with -fmodules-ignore-macro= by removing everything after the second '=' if it is there. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174567 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Frontend/CompilerInvocation.cpp | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) (limited to 'lib/Frontend/CompilerInvocation.cpp') diff --git a/lib/Frontend/CompilerInvocation.cpp b/lib/Frontend/CompilerInvocation.cpp index 34496ede26..0e313a9f50 100644 --- a/lib/Frontend/CompilerInvocation.cpp +++ b/lib/Frontend/CompilerInvocation.cpp @@ -816,8 +816,8 @@ static void ParseHeaderSearchArgs(HeaderSearchOptions &Opts, ArgList &Args) { for (arg_iterator it = Args.filtered_begin(OPT_fmodules_ignore_macro), ie = Args.filtered_end(); it != ie; ++it) { - const Arg *A = *it; - Opts.ModulesIgnoreMacros.insert(A->getValue()); + StringRef MacroDef = (*it)->getValue(); + Opts.ModulesIgnoreMacros.insert(MacroDef.split('=').first); } // Add -I..., -F..., and -index-header-map options in order. @@ -1617,14 +1617,9 @@ std::string CompilerInvocation::getModuleHash() const { // If we're supposed to ignore this macro for the purposes of modules, // don't put it into the hash. if (!hsOpts.ModulesIgnoreMacros.empty()) { - // Dig out the macro name. - StringRef MacroName = I->first; - StringRef::size_type EqPos = MacroName.find('='); - if (EqPos != StringRef::npos) - MacroName = MacroName.substr(0, EqPos); - // Check whether we're ignoring this macro. - if (hsOpts.ModulesIgnoreMacros.count(MacroName)) + StringRef MacroDef = I->first; + if (hsOpts.ModulesIgnoreMacros.count(MacroDef.split('=').first)) continue; } -- cgit v1.2.3-18-g5258