summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-11-30 08:41:13 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-11-30 08:41:13 +0000
commit599abb2d5698b52d04e800fe61ac633756eae6d0 (patch)
tree0f51d1da1451745dfffddbf97f48d613e1fedd4c /clang/lib/Driver
parent7c71b6b95b828764abcfea9a9fe94453f30393e7 (diff)
downloadbcm5719-llvm-599abb2d5698b52d04e800fe61ac633756eae6d0.tar.gz
bcm5719-llvm-599abb2d5698b52d04e800fe61ac633756eae6d0.zip
clang -cc1: Initialize LangOptions::{Optimize,NoInline}
llvm-svn: 90123
Diffstat (limited to 'clang/lib/Driver')
-rw-r--r--clang/lib/Driver/CC1Options.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/clang/lib/Driver/CC1Options.cpp b/clang/lib/Driver/CC1Options.cpp
index 88cbd5491d3..667335e0b45 100644
--- a/clang/lib/Driver/CC1Options.cpp
+++ b/clang/lib/Driver/CC1Options.cpp
@@ -579,8 +579,18 @@ static void ParseLangArgs(LangOptions &Opts, ArgList &Args,
Opts.PICLevel = getLastArgIntValue(Args, OPT_pic_level, 0, Diags);
Opts.Static = Args.hasArg(OPT_static_define);
Opts.OptimizeSize = 0;
- Opts.Optimize = 0; // FIXME!
- Opts.NoInline = 0; // FIXME!
+
+ // FIXME: Eliminate this dependency.
+ unsigned Opt =
+ Args.hasArg(OPT_Os) ? 2 : getLastArgIntValue(Args, OPT_O, 0, Diags);
+ Opts.Optimize = Opt != 0;
+
+ // This is the __NO_INLINE__ define, which just depends on things like the
+ // optimization level and -fno-inline, not actually whether the backend has
+ // inlining enabled.
+ //
+ // FIXME: This is affected by other options (-fno-inline).
+ Opts.NoInline = !Opt;
unsigned SSP = getLastArgIntValue(Args, OPT_stack_protector, 0, Diags);
switch (SSP) {
OpenPOWER on IntegriCloud