diff options
author | Arnamoy Bhattacharyya <arnamoy10@gmail.com> | 2021-03-11 07:35:45 -0500 |
---|---|---|
committer | Arnamoy Bhattacharyya <arnamoy10@gmail.com> | 2021-03-11 08:04:37 -0500 |
commit | 1fd4beecc8bb1148123265a63e0bff92b626c4a3 (patch) | |
tree | debf3afacc400e1ce615a111966391658665d2ed /flang/lib/Frontend/CompilerInvocation.cpp | |
parent | cec62ae28a5fc5698a1b720a67187972c8e125cb (diff) | |
download | llvm-1fd4beecc8bb1148123265a63e0bff92b626c4a3.zip llvm-1fd4beecc8bb1148123265a63e0bff92b626c4a3.tar.gz llvm-1fd4beecc8bb1148123265a63e0bff92b626c4a3.tar.bz2 |
[flang][driver] Add -fdebug-module-writer option
Diffstat (limited to 'flang/lib/Frontend/CompilerInvocation.cpp')
-rw-r--r-- | flang/lib/Frontend/CompilerInvocation.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/flang/lib/Frontend/CompilerInvocation.cpp b/flang/lib/Frontend/CompilerInvocation.cpp index 1764970..1271cd3 100644 --- a/flang/lib/Frontend/CompilerInvocation.cpp +++ b/flang/lib/Frontend/CompilerInvocation.cpp @@ -306,9 +306,10 @@ static void parsePreprocessorArgs( /// Parses all semantic related arguments and populates the variables /// options accordingly. -static void parseSemaArgs(std::string &moduleDir, llvm::opt::ArgList &args, +static void parseSemaArgs(CompilerInvocation &res, llvm::opt::ArgList &args, clang::DiagnosticsEngine &diags) { + // -J/module-dir option auto moduleDirList = args.getAllArgValues(clang::driver::options::OPT_module_dir); // User can only specify -J/-module-dir once @@ -320,7 +321,12 @@ static void parseSemaArgs(std::string &moduleDir, llvm::opt::ArgList &args, diags.Report(diagID); } if (moduleDirList.size() == 1) - moduleDir = moduleDirList[0]; + res.SetModuleDir(moduleDirList[0]); + + // -fdebug-module-writer option + if (args.hasArg(clang::driver::options::OPT_fdebug_module_writer)) { + res.SetDebugModuleDir(true); + } } /// Parses all Dialect related arguments and populates the variables @@ -395,7 +401,7 @@ bool CompilerInvocation::CreateFromArgs(CompilerInvocation &res, // Parse the preprocessor args parsePreprocessorArgs(res.preprocessorOpts(), args); // Parse semantic args - parseSemaArgs(res.moduleDir(), args, diags); + parseSemaArgs(res, args, diags); // Parse dialect arguments parseDialectArgs(res, args, diags); @@ -511,7 +517,6 @@ void CompilerInvocation::setSemanticsOpts( semanticsContext_ = std::make_unique<semantics::SemanticsContext>( defaultKinds(), fortranOptions.features, allCookedSources); - auto &moduleDirJ = moduleDir(); - semanticsContext_->set_moduleDirectory(moduleDirJ) + semanticsContext_->set_moduleDirectory(moduleDir()) .set_searchDirectories(fortranOptions.searchDirectories); } |