https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118992
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|Redundant argument set up |Redundant argument set up |for tail call |for call Component|tree-optimization |target --- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Hmm, looks like this works for aarch64, arm, power. Also it does nothing to do with tail calls. Even: ``` void bar0 (int); void bar1 (int); void g(); void foo (int i) { switch (i) { case 0: bar0 (i); break; case 1: bar1 (i); break; } g(); } ``` Fails to work on x86_64 but works on aarch64 and other targets.