https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91389
--- Comment #6 from Martin Liška <marxin at gcc dot gnu.org> --- (In reply to Jakub Jelinek from comment #5) > (In reply to Martin Liška from comment #4) > > (In reply to Jakub Jelinek from comment #3) > > > I see dead code everywhere in the function, they must have some weirdo > > > macro > > > for cases that wraps everything in case something { ... } break; > > > > Is the 'break;' really dead in such situation (when you don't have a return > > or another break within the {} block)? > > > > > Many of those break; statements are dead code. > > It is dead when you do have an unconditional return in there. As I said in > the other PR, we try hard to do a good job with block_may_fallthru and > gimple_seq_may_fallthru, but it can't handle everything, feel free to > improve those. And all -fsanitize=thread does is it adds a cleanup code, > the same thing as you get if you have an automatic variable with a > destructor. > > *** This bug has been marked as a duplicate of bug 86899 *** Sure, thank you for your time.