diff options
author | Ted Kremenek <kremenek@apple.com> | 2007-12-11 21:27:55 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2007-12-11 21:27:55 +0000 |
commit | 7a9d49fd2bfac00e905b361ba76d26ab5b6c3b09 (patch) | |
tree | 3557aeb775ca6ac99524afd56b1c8840b80d7a94 /Driver/clang.cpp | |
parent | e66894c3dea9aeab4403e67bf5baabc20da61cb3 (diff) |
Mega-patch: ripped SourceManager out of Diagnostic/DiagnosticClient. Now
SourceManager is passed by reference, allowing the SourceManager to be
associated with a specific translation unit, and not the entire execution
of the driver.
Modified all users of Diagnostics to comply with this new interface.
Integrated SourceManager as a member variable of TargetInfo. TargetInfo will
eventually be associated with a single translation unit (just like
SourceManager).
Made the SourceManager reference in ASTContext private. Provided accessor
getSourceManager() for clients to use instead. Modified clients to comply with
new interface.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44878 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'Driver/clang.cpp')
-rw-r--r-- | Driver/clang.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/Driver/clang.cpp b/Driver/clang.cpp index eb469d87ec..c009e06860 100644 --- a/Driver/clang.cpp +++ b/Driver/clang.cpp @@ -989,10 +989,10 @@ int main(int argc, char **argv) { std::auto_ptr<TextDiagnostics> DiagClient; if (!VerifyDiagnostics) { // Print diagnostics to stderr by default. - DiagClient.reset(new TextDiagnosticPrinter(SourceMgr)); + DiagClient.reset(new TextDiagnosticPrinter()); } else { // When checking diagnostics, just buffer them up. - DiagClient.reset(new TextDiagnosticBuffer(SourceMgr)); + DiagClient.reset(new TextDiagnosticBuffer()); if (InputFilenames.size() != 1) { fprintf(stderr, @@ -1013,7 +1013,7 @@ int main(int argc, char **argv) { { // Create triples, and create the TargetInfo. std::vector<std::string> triples; CreateTargetTriples(triples); - Target = CreateTargetInfo(triples,&Diags); + Target = CreateTargetInfo(SourceMgr,triples,&Diags); if (Target == 0) { fprintf(stderr, "Sorry, I don't know what target this is: %s\n", @@ -1026,7 +1026,9 @@ int main(int argc, char **argv) { // -I- is a deprecated GCC feature, scan for it and reject it. for (unsigned i = 0, e = I_dirs.size(); i != e; ++i) { if (I_dirs[i] == "-") { - Diags.Report(SourceLocation(), diag::err_pp_I_dash_not_supported); + Diags.Report(SourceLocation(), diag::err_pp_I_dash_not_supported, + SourceMgr); + I_dirs.erase(I_dirs.begin()+i); --i; } |