https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109175
--- Comment #6 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Reduced all the way removing all of the classes showing exactly what I thought it was: ``` void *ao(); float *aq(long t) { if (t) return nullptr; return static_cast<float *>(ao()); } float v; void at(long t) { long a = sizeof(0), i = 0; auto b = aq(t); for (; i < a; ++i) b[i] = v; for (; i < t; ++i) b[i] = 0.0f; } ``` Notice how there is no check for null on aq.