https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100145
--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Richard Biener from comment #2) > So we get optimize_edge_for_size_p () returning OPTIMIZE_SIZE_BALANCED and > thus optimize_edge_for_speed_p which is > > 340 bool > 341 optimize_edge_for_speed_p (edge e) > 342 { > 343 return !optimize_edge_for_size_p (e); > 344 } > > return false. And that's likely because this is 'main'. Yes it is. If we do s/main/c123/ And then add: ``` int main() { return c123(); } ``` The -O3 issue goes away.