[clang] [Clang] Initialize bypassed variables w/ trivial-auto-var-init (PR #181937)
Nick Desaulniers via cfe-commits
cfe-commits at lists.llvm.org
Thu Sep 24 10:50:53 PDT 2026
================
@@ -59,13 +63,27 @@ class VarBypassDetector {
return AlwaysBypassed || Bypasses.contains(D);
}
+ /// Returns true if jump sources cannot be determined (e.g. computed gotos),
+ /// so all variables must be treated as bypassed.
+ bool isAlwaysBypassed() const { return AlwaysBypassed; }
+
+ /// Returns the variables bypassed by jumps from the given source statement,
+ /// or nullptr if it bypasses none.
+ const llvm::DenseSet<const VarDecl *> *
----------------
nickdesaulniers wrote:
"Optimization Fuel"
A semi formal term for helping you find bugs exposed by (possibly bad) compiler transforms. Say blanked enable -ftrivial-auto-var-init=zero and your code starts crashing. Why? How? WTF? Well, if TAVI default initializes say 1000 variables, then -ftrivial-auto-var-init-stop-after= gives you a flag to start with a value of 500, and start bisecting. Then ideally from there you can figure out which specific case is giving you a problem, which should then help you disambiguate between compiler bug vs issue in source.
I don't even get any relevant search engine hits for "optimization fuel" above the fold...
https://github.com/llvm/llvm-project/pull/181937
More information about the cfe-commits
mailing list