diff options
author | John Thompson <John.Thompson.JTSoftware@gmail.com> | 2015-05-06 18:43:01 +0000 |
---|---|---|
committer | John Thompson <John.Thompson.JTSoftware@gmail.com> | 2015-05-06 18:43:01 +0000 |
commit | f9f62b116f18477220eb5f37d326537e9ac3ebee (patch) | |
tree | 96e803483b2787bc05d9763848bfa9c5551ec1e8 | |
parent | fcf3f47d7ac5ae00270ada5f93a0a8ce5507c32a (diff) | |
download | bcm5719-llvm-f9f62b116f18477220eb5f37d326537e9ac3ebee.tar.gz bcm5719-llvm-f9f62b116f18477220eb5f37d326537e9ac3ebee.zip |
Changed option processing to implicitly use -x c++ if no other -x option specified. Added implicit -w option to disable compilation warnings, in particular to avoid warning on pragma once.
llvm-svn: 236625
-rw-r--r-- | clang-tools-extra/docs/ModularizeUsage.rst | 7 | ||||
-rw-r--r-- | clang-tools-extra/modularize/Modularize.cpp | 16 |
2 files changed, 16 insertions, 7 deletions
diff --git a/clang-tools-extra/docs/ModularizeUsage.rst b/clang-tools-extra/docs/ModularizeUsage.rst index b43389e822c..8d822bc845f 100644 --- a/clang-tools-extra/docs/ModularizeUsage.rst +++ b/clang-tools-extra/docs/ModularizeUsage.rst @@ -37,9 +37,10 @@ directory. ``<front-end-options>`` is a place-holder for regular Clang front-end arguments, which must follow the <include-files-list>. -Note that by default, the underlying Clang front end assumes .h files -contain C source, so you might need to specify the ``-x c++`` Clang option -to tell Clang that the header contains C++ definitions. +Note that by default, modularize assumes .h files +contain C++ source, so if you are using a different language, +you might need to use a ``-x`` option to tell Clang that the +header contains another language, i.e.: ``-x c`` Note also that because modularize does not use the clang driver, you will likely need to pass in additional compiler front-end diff --git a/clang-tools-extra/modularize/Modularize.cpp b/clang-tools-extra/modularize/Modularize.cpp index b88476e79b0..56aa96dd8be 100644 --- a/clang-tools-extra/modularize/Modularize.cpp +++ b/clang-tools-extra/modularize/Modularize.cpp @@ -73,9 +73,9 @@ // you will likely need to pass in additional compiler front-end // arguments to match those passed in by default by the driver. // -// Note that by default, the underlying Clang front end assumes .h files -// contain C source. If your .h files in the file list contain C++ source, -// you should append the following to your command lines: -x c++ +// Note that by default, the modularize assumes .h files contain C++ source. +// If your .h files in the file list contain another language, you should +// append an appropriate -x option to your command line, i.e.: -x c // // Modularization Issue Checks // @@ -331,7 +331,8 @@ static std::string findInputFile(const CommandLineArguments &CLArgs) { } // This arguments adjuster inserts "-include (file)" arguments for header -// dependencies. +// dependencies. It also insertts a "-w" option and a "-x c++", +// if no other "-x" option is present. static ArgumentsAdjuster getAddDependenciesAdjuster(DependencyMap &Dependencies) { return [&Dependencies](const CommandLineArguments &Args) { @@ -346,6 +347,13 @@ getAddDependenciesAdjuster(DependencyMap &Dependencies) { NewArgs.push_back(FileDependents[Index]); } } + // Ignore warnings. (Insert after "clang_tool" at beginning.) + NewArgs.insert(NewArgs.begin() + 1, "-w"); + // Since we are compiling .h files, assume C++ unless given a -x option. + if (std::find(NewArgs.begin(), NewArgs.end(), "-x") == NewArgs.end()) {
+ NewArgs.insert(NewArgs.begin() + 2, "-x"); + NewArgs.insert(NewArgs.begin() + 3, "c++"); + }
return NewArgs; }; } |