Preprocessor: fix __OPTIMIZE_SIZE__ and -Oz
Add some tests for __OPTIMIZE_SIZE__ and __NO_INLINE__, removing the superfluous copies in the target-specific tests, since it's target-independent. This uncovered a bug in the handling of -Oz: it would attempt to store the value 2 in the 1-bit bitfield OptimizeSize, leaving a value of 0 and never defining __OPTIMIZE_SIZE__. llvm-svn: 161495
This commit is contained in:
@@ -2096,9 +2096,10 @@ static void ParseLangArgs(LangOptions &Opts, ArgList &Args, InputKind IK,
|
||||
Opts.Deprecated);
|
||||
|
||||
// FIXME: Eliminate this dependency.
|
||||
unsigned Opt = getOptimizationLevel(Args, IK, Diags);
|
||||
unsigned Opt = getOptimizationLevel(Args, IK, Diags),
|
||||
OptSize = getOptimizationLevelSize(Args, IK, Diags);
|
||||
Opts.Optimize = Opt != 0;
|
||||
Opts.OptimizeSize = getOptimizationLevelSize(Args, IK, Diags);
|
||||
Opts.OptimizeSize = OptSize != 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
|
||||
|
||||
Reference in New Issue
Block a user