diff options
author | Daniel Dunbar <daniel@zuster.org> | 2009-12-03 05:11:05 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2009-12-03 05:11:05 +0000 |
commit | da7a52289fbdd02923e24b21c5b73ab7eef42ae6 (patch) | |
tree | afcdf580a79b9481699dddced35787a743a5afda /clang/tools/clang-cc/clang-cc.cpp | |
parent | 4039f35344be462f88d97fac332fc54c95146a8c (diff) | |
download | bcm5719-llvm-da7a52289fbdd02923e24b21c5b73ab7eef42ae6.tar.gz bcm5719-llvm-da7a52289fbdd02923e24b21c5b73ab7eef42ae6.zip |
Add clang -cc1 -load option.
llvm-svn: 90413
Diffstat (limited to 'clang/tools/clang-cc/clang-cc.cpp')
-rw-r--r-- | clang/tools/clang-cc/clang-cc.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/clang/tools/clang-cc/clang-cc.cpp b/clang/tools/clang-cc/clang-cc.cpp index 2899684284a..b189b4b51d6 100644 --- a/clang/tools/clang-cc/clang-cc.cpp +++ b/clang/tools/clang-cc/clang-cc.cpp @@ -42,6 +42,7 @@ #include "llvm/Support/PrettyStackTrace.h" #include "llvm/Support/Timer.h" #include "llvm/Support/raw_ostream.h" +#include "llvm/System/DynamicLibrary.h" #include "llvm/System/Host.h" #include "llvm/System/Path.h" #include "llvm/System/Signals.h" @@ -299,7 +300,8 @@ int main(int argc, char **argv) { Clang.getDiagnostics(), argv[0])) return 1; #else - // Buffer diagnostics from argument parsing. + // Buffer diagnostics from argument parsing so that we can output them using a + // well formed diagnostic object. TextDiagnosticBuffer DiagsBuffer; Diagnostic Diags(&DiagsBuffer); @@ -321,6 +323,15 @@ int main(int argc, char **argv) { DiagsBuffer.FlushDiagnostics(Clang.getDiagnostics()); + // Load any requested plugins. + for (unsigned i = 0, + e = Clang.getFrontendOpts().Plugins.size(); i != e; ++i) { + const std::string &Path = Clang.getFrontendOpts().Plugins[i]; + std::string Error; + if (llvm::sys::DynamicLibrary::LoadLibraryPermanently(Path.c_str(), &Error)) + Diags.Report(diag::err_fe_unable_to_load_plugin) << Path << Error; + } + // If there were any errors in processing arguments, exit now. if (Clang.getDiagnostics().getNumErrors()) return 1; |