x86: Issue error for return/argument only with function body
authorH.J. Lu <hjl.tools@gmail.com>
Thu, 18 Mar 2021 18:47:46 +0000 (11:47 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Fri, 19 Mar 2021 13:39:51 +0000 (06:39 -0700)
commit5e2eabe1eed1e53d39923517122d3c7de2013ad4
tree8deccc1872103afd64901a30b5ef53a68078fbb5
parent21d09cb732dac5d980ac628eb3aca75c821028a2
x86: Issue error for return/argument only with function body

If we never generate function body, we shouldn't issue errors for return
nor argument.  Add silent_p to i386 machine_function to avoid issuing
errors for return and argument without function body.

gcc/

PR target/99652
* config/i386/i386-options.c (ix86_init_machine_status): Set
silent_p to true.
* config/i386/i386.c (init_cumulative_args): Set silent_p to
false.
(construct_container): Return early for return and argument
errors if silent_p is true.
* config/i386/i386.h (machine_function): Add silent_p.

gcc/testsuite/

PR target/99652
* gcc.dg/torture/pr99652-1.c: New test.
* gcc.dg/torture/pr99652-2.c: Likewise.
* gcc.target/i386/pr57655.c: Adjusted.
* gcc.target/i386/pr59794-6.c: Likewise.
* gcc.target/i386/pr70738-1.c: Likewise.
* gcc.target/i386/pr96744-1.c: Likewise.
gcc/config/i386/i386-options.c
gcc/config/i386/i386.c
gcc/config/i386/i386.h
gcc/testsuite/gcc.dg/torture/pr99652-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/torture/pr99652-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr57655.c
gcc/testsuite/gcc.target/i386/pr59794-6.c
gcc/testsuite/gcc.target/i386/pr70738-1.c
gcc/testsuite/gcc.target/i386/pr96744-1.c