summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--clang-tools-extra/docs/ModularizeUsage.rst7
-rw-r--r--clang-tools-extra/modularize/Modularize.cpp16
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;
};
}
OpenPOWER on IntegriCloud