https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105235
--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> --- This has nothing to do with the sanitizers. // PR tree-optimization/105235 // { dg-do compile } // { dg-options "-O -fno-tree-dominator-opts -fexceptions -fnon-call-exceptions -fno-tree-fre" } struct S { ~S (); }; double foo (double d) { S s; return __builtin_ilogbl (d) + __builtin_sinl (d); } or // PR tree-optimization/105235 // { dg-do compile } // { dg-options "-O -fno-tree-dominator-opts -fexceptions -fnon-call-exceptions -fno-tree-fre" } struct T { ~T (); }; int i, j; void bar (double d) { T t; i = __builtin_ilogbl (d); j = __builtin_sinl (d); } ICE the same way.