https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103646

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org

--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
The driver does what it has been configured to.
The default for x86_64-linux compiler is x86-64 arch even for 32-bit code,
Fedora GCC is configured with --with-arch_32=i686 and therefore it defaults
to -march=i686.
I don't really see a bug here.
With -O0 the testcase is rejected with either -march=i686 or -march=x86-64,
similarly with -O0 -mstackrealign, with -O2 it is accepted for both, with -O2
-mstackrealign only for i686; all this depends on whether frame pointer is used
or not.  The reason why x86-64 rejects it and i686 doesn't in the last case is
SLP vectorization of the
  t->tv_sec = 0;
  t->tv_usec = 1;
stores, due to that we actually want to realign in the prologue and that
results in %ebp being used as frame pointer and so can't be used in the local
register variable.
-mno-sse or -fno-tree-vectorize will make it compile.

Reply via email to