https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93301
--- Comment #10 from rguenther at suse dot de <rguenther at suse dot de> --- On Sun, 26 Jan 2020, ch3root at openwall dot com wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93301 > > --- Comment #5 from Alexander Cherepanov <ch3root at openwall dot com> --- > (In reply to rguent...@suse.de from comment #3) > > But the first use of the undefined value in the comparison makes > > everything wobbly. > > So `if (x == y)` is UB. Or `x == y` is already UB? I'd say "using" an uninitialized value is UB. Both of the above are a use. It possibly affects everything control-dependent (for the if) or value-dependent for the plain compare.