rs6000: Teach rs6000_opaque_type_invalid_use_p about inline asm [PR108272]
authorKewen Lin <linkw@linux.ibm.com>
Mon, 16 Jan 2023 08:15:39 +0000 (02:15 -0600)
committerKewen Lin <linkw@linux.ibm.com>
Mon, 16 Jan 2023 08:15:39 +0000 (02:15 -0600)
commit074b0c03eabeb8e9c8de813c81bf87a1f88fdb65
treee8bfc6019d77e5e275a14fbcb84b7f07adc46eb8
parentcc44e55e55d2efb57e995f9b8f29dec939fd7cf9
rs6000: Teach rs6000_opaque_type_invalid_use_p about inline asm [PR108272]

As PR108272 shows, there are some invalid uses of MMA opaque
types in inline asm statements.  This patch is to teach the
function rs6000_opaque_type_invalid_use_p for inline asm,
check and error any invalid use of MMA opaque types in input
and output operands.

PR target/108272

gcc/ChangeLog:

* config/rs6000/rs6000.cc (rs6000_opaque_type_invalid_use_p): Add the
support for invalid uses in inline asm, factor out the checking and
erroring to lambda function check_and_error_invalid_use.

gcc/testsuite/ChangeLog:

* gcc.target/powerpc/pr108272-1.c: New test.
* gcc.target/powerpc/pr108272-2.c: New test.
* gcc.target/powerpc/pr108272-3.c: New test.
* gcc.target/powerpc/pr108272-4.c: New test.
gcc/config/rs6000/rs6000.cc
gcc/testsuite/gcc.target/powerpc/pr108272-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/powerpc/pr108272-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/powerpc/pr108272-3.c [new file with mode: 0644]
gcc/testsuite/gcc.target/powerpc/pr108272-4.c [new file with mode: 0644]