https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69230
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |diagnostic Summary|valid -Wmaybe-uninitialized |false -Wmaybe-uninitialized |suppressed by -O2 |with -O1 --- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- This new testcase is still broken as i & 3 is 0, 1, 2 or 3. All of the case statements are there too. So if you want to say something the bug is in -O1 which should not warn instead. But that requires VRP which is what figures out i & 3 to have a range of [0,3] and that only runs at -O2. There is still no bug for -O2 here. GCC is correct those j is initialized on all paths.