summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Driver/clang.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/Driver/clang.cpp b/Driver/clang.cpp
index e94f0ed07c..48ae2216d4 100644
--- a/Driver/clang.cpp
+++ b/Driver/clang.cpp
@@ -1191,7 +1191,8 @@ static llvm::cl::opt<std::string>
TargetCPU("mcpu",
llvm::cl::desc("Target a specific cpu type (-mcpu=help for details)"));
-static void InitializeCompileOptions(CompileOptions &Opts) {
+static void InitializeCompileOptions(CompileOptions &Opts,
+ const LangOptions &LangOpts) {
Opts.OptimizeSize = OptSize;
Opts.DebugInfo = GenerateDebugInfo;
if (OptSize) {
@@ -1205,7 +1206,7 @@ static void InitializeCompileOptions(CompileOptions &Opts) {
// FIXME: There are llvm-gcc options to control these selectively.
Opts.InlineFunctions = (Opts.OptimizationLevel > 1);
Opts.UnrollLoops = (Opts.OptimizationLevel > 1 && !OptSize);
- Opts.SimplifyLibCalls = !NoBuiltin && !Freestanding;
+ Opts.SimplifyLibCalls = !LangOpts.NoBuiltin;
#ifdef NDEBUG
Opts.VerifyModule = 0;
@@ -1272,7 +1273,7 @@ static ASTConsumer *CreateASTConsumer(const std::string& InFile,
Act = Backend_EmitBC;
CompileOptions Opts;
- InitializeCompileOptions(Opts);
+ InitializeCompileOptions(Opts, LangOpts);
return CreateBackendConsumer(Act, Diag, LangOpts, Opts,
InFile, OutputFile);
}