https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91358
--- Comment #7 from Michael Matz <matz at gcc dot gnu.org> --- (In reply to Antony Polukhin from comment #6) > (In reply to Michael Matz from comment #3) > > I don't really see any, no good idea here :-/ > > How about moving all the optimizations based on reading uninitialized values > under a flag like -funinitialized-logic, so that users could build with -O2 > -fno-uninitialized-logic ? That can't work in general. How would you propose that GCC automagically detects that in: struct S {int a, b;}; int foo (struct S *s) { return s->a ? s->b : 0; } the read of ->b is uninitialized? After all, it might have been initialized by the caller or not.