summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--clang/include/clang/Frontend/AnalysisConsumer.h2
-rw-r--r--clang/include/clang/Frontend/FrontendOptions.h2
-rw-r--r--clang/lib/Driver/CC1Options.cpp10
-rw-r--r--clang/lib/Frontend/CompilerInvocation.cpp27
-rw-r--r--clang/tools/driver/cc1_main.cpp8
5 files changed, 28 insertions, 21 deletions
diff --git a/clang/include/clang/Frontend/AnalysisConsumer.h b/clang/include/clang/Frontend/AnalysisConsumer.h
index 7a324331ecd..24fed6e76ac 100644
--- a/clang/include/clang/Frontend/AnalysisConsumer.h
+++ b/clang/include/clang/Frontend/AnalysisConsumer.h
@@ -77,7 +77,7 @@ public:
AnalyzeAll = 0;
AnalyzerDisplayProgress = 0;
EagerlyAssume = 0;
- PurgeDead = 0;
+ PurgeDead = 1;
TrimGraph = 0;
VisualizeEGDot = 0;
VisualizeEGUbi = 0;
diff --git a/clang/include/clang/Frontend/FrontendOptions.h b/clang/include/clang/Frontend/FrontendOptions.h
index 197a2a05e5e..c1ec8e70f1c 100644
--- a/clang/include/clang/Frontend/FrontendOptions.h
+++ b/clang/include/clang/Frontend/FrontendOptions.h
@@ -107,7 +107,7 @@ public:
public:
FrontendOptions() {
- DebugCodeCompletionPrinter = 0;
+ DebugCodeCompletionPrinter = 1;
DisableFree = 0;
EmptyInputOnly = 0;
ProgramAction = frontend::ParseSyntaxOnly;
diff --git a/clang/lib/Driver/CC1Options.cpp b/clang/lib/Driver/CC1Options.cpp
index 0398dd57fb0..45ec1ab6a0f 100644
--- a/clang/lib/Driver/CC1Options.cpp
+++ b/clang/lib/Driver/CC1Options.cpp
@@ -10,6 +10,8 @@
#include "clang/Driver/CC1Options.h"
#include "clang/Driver/OptTable.h"
#include "clang/Driver/Option.h"
+#include "clang/Frontend/CompilerInvocation.h"
+#include "llvm/ADT/SmallVector.h"
using namespace clang::driver;
using namespace clang::driver::options;
@@ -36,3 +38,11 @@ public:
OptTable *clang::driver::createCC1OptTable() {
return new CC1OptTable();
}
+
+//
+
+using namespace clang;
+
+void CompilerInvocation::CreateFromArgs(CompilerInvocation &Res,
+ const llvm::SmallVectorImpl<llvm::StringRef> &Args) {
+}
diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp
index b4a79c6d1ef..89fd70a0936 100644
--- a/clang/lib/Frontend/CompilerInvocation.cpp
+++ b/clang/lib/Frontend/CompilerInvocation.cpp
@@ -12,10 +12,6 @@
#include "llvm/Support/ErrorHandling.h"
using namespace clang;
-void CompilerInvocation::CreateFromArgs(CompilerInvocation &Res,
- const llvm::SmallVectorImpl<llvm::StringRef> &Args) {
-}
-
static const char *getAnalysisName(Analyses Kind) {
switch (Kind) {
default:
@@ -112,8 +108,8 @@ static void CodeGenOptsToArgs(const CodeGenOptions &Opts,
if (Opts.OptimizeSize) {
assert(Opts.OptimizationLevel == 2 && "Invalid options!");
Res.push_back("-Os");
- } else if (Opts.OptimizationLevel == 0)
- Res.push_back("-O" + Opts.OptimizationLevel);
+ } else if (Opts.OptimizationLevel != 0)
+ Res.push_back("-O" + llvm::utostr(Opts.OptimizationLevel));
// SimplifyLibCalls is only derived.
// TimePasses is only derived.
// UnitAtATime is unused.
@@ -391,8 +387,8 @@ static void LangOptsToArgs(const LangOptions &Opts,
Res.push_back("-fno-lax-vector-conversions");
if (Opts.AltiVec)
Res.push_back("-faltivec");
- Res.push_back("-fexceptions");
- Res.push_back(Opts.Exceptions ? "1" : "0");
+ if (Opts.Exceptions)
+ Res.push_back("-fexceptions");
if (!Opts.Rtti)
Res.push_back("-fno-rtti");
if (!Opts.NeXTRuntime)
@@ -425,12 +421,13 @@ static void LangOptsToArgs(const LangOptions &Opts,
}
if (Opts.ObjCGCBitmapPrint)
Res.push_back("-print-ivar-layout");
- Res.push_back("-faccess-control");
- Res.push_back(Opts.AccessControl ? "1" : "0");
- Res.push_back("-fsigned-char");
- Res.push_back(Opts.CharIsSigned ? "1" : "0");
- Res.push_back("-fshort-wchar");
- Res.push_back(Opts.ShortWChar ? "1" : "0");
+ // FIXME: Don't forget to update when the default changes!
+ if (Opts.AccessControl)
+ Res.push_back("-faccess-control");
+ if (!Opts.CharIsSigned)
+ Res.push_back("-fsigned-char=0");
+ if (Opts.ShortWChar)
+ Res.push_back("-fshort-wchar");
if (!Opts.ElideConstructors)
Res.push_back("-fno-elide-constructors");
if (Opts.getGCMode() != LangOptions::NonGC) {
@@ -444,7 +441,7 @@ static void LangOptsToArgs(const LangOptions &Opts,
if (Opts.getVisibilityMode() != LangOptions::Default) {
Res.push_back("-fvisibility");
if (Opts.getVisibilityMode() == LangOptions::Hidden) {
- Res.push_back("default");
+ Res.push_back("hidden");
} else {
assert(Opts.getVisibilityMode() == LangOptions::Protected &&
"Invalid visibility!");
diff --git a/clang/tools/driver/cc1_main.cpp b/clang/tools/driver/cc1_main.cpp
index c5163592b42..a0bd492a10a 100644
--- a/clang/tools/driver/cc1_main.cpp
+++ b/clang/tools/driver/cc1_main.cpp
@@ -60,7 +60,7 @@ int cc1_main(Diagnostic &Diags, const char **ArgBegin, const char **ArgEnd) {
// Dump the converted arguments.
llvm::SmallVector<llvm::StringRef, 32> Invocation2Args;
- llvm::errs() << "invocation argv:";
+ llvm::errs() << "invocation argv :";
for (unsigned i = 0, e = InvocationArgs.size(); i != e; ++i) {
Invocation2Args.push_back(InvocationArgs[i]);
llvm::errs() << " \"" << InvocationArgs[i] << '"';
@@ -73,12 +73,12 @@ int cc1_main(Diagnostic &Diags, const char **ArgBegin, const char **ArgEnd) {
CompilerInvocation::CreateFromArgs(Invocation2, Invocation2Args);
// FIXME: Implement CompilerInvocation comparison.
- if (memcmp(&Invocation, &Invocation2, sizeof(Invocation)) != 0) {
- llvm::errs() << "warning: Invocations differ!\n";
+ if (true) {
+ //llvm::errs() << "warning: Invocations differ!\n";
std::vector<std::string> Invocation2Args;
Invocation2.toArgs(Invocation2Args);
- llvm::errs() << "invocation argv:";
+ llvm::errs() << "invocation2 argv:";
for (unsigned i = 0, e = Invocation2Args.size(); i != e; ++i)
llvm::errs() << " \"" << Invocation2Args[i] << '"';
llvm::errs() << "\n";
OpenPOWER on IntegriCloud