================
@@ -1834,6 +1834,14 @@ bool CompilerInvocation::ParseCodeGenArgs(CodeGenOptions 
&Opts, ArgList &Args,
     Opts.setInlining(CodeGenOptions::NormalInlining);
   }
 
+  // If we have specified -Og and have not explicitly set 
-fno-extend-lifetimes,
+  // then default to -fextend-lifetimes.
+  if (Arg *A = Args.getLastArg(options::OPT_O_Group);
+      A && A->containsValue("g")) {
----------------
rnk wrote:

I agree, the driver's job is usually to unpack high level flags into 
semi-orthogonal cc1 flags. So, for example, in clang-cl, /O1 becomes a 
collection of things like `-Os -ffunction-sections -fdata-sections` and maybe 
something else I've forgotten. `clang++ -fexceptions` becomes `-fexceptions 
-fcxx-exceptions` in most contexts, separating destructor cleanups from 
try/throw language support.

cc1 flags kind of represent features that are useful to toggle on and off for 
testing and test case reduction, since they're one of the things we reduce in 
the [clang crash reducer 
script](https://github.com/llvm/llvm-project/blob/main/clang/utils/creduce-clang-crash.py).

https://github.com/llvm/llvm-project/pull/118026
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to