https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114339
Sam James <sjames at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |tnfchris at gcc dot gnu.org --- Comment #2 from Sam James <sjames at gcc dot gnu.org> --- I've minimised it to: ``` struct entry_guard_t { int is_reachable; long failing_since; int is_primary; } *create_guard() { struct entry_guard_t *guard = __builtin_malloc(sizeof *guard); guard->is_reachable = guard->failing_since = guard->is_primary = 0; return guard; } int main() { struct entry_guard_t guard = *create_guard(); long tdiff = 10412095 - guard.failing_since; struct { long maximum; int nonprimary_delay; } delays[] = {{}, {}, {}, {9223372036854775807, 36 * 60 * 60}}; unsigned i = 0; for (; i < sizeof(delays) / sizeof(delays[0]); ++i) if (tdiff <= delays[i].maximum) return delays[i].nonprimary_delay; __builtin_abort(); } ``` This fails for me with `-O2 -mavx -fno-vect-cost-model`.