rs6000: ICE when using an MMA type as a function param or return value [PR96506]
authorPeter Bergner <bergner@linux.ibm.com>
Thu, 13 Aug 2020 18:40:39 +0000 (13:40 -0500)
committerPeter Bergner <bergner@linux.ibm.com>
Thu, 13 Aug 2020 18:42:21 +0000 (13:42 -0500)
commit0ad7e730c142ef6cd0ddc1491a89a7f330caa887
treedc95064b9d890b099feab5f84f1c059363c0f8d0
parent0c5f6bbfe2ec7c3d6425fee43c53948a3652f738
rs6000: ICE when using an MMA type as a function param or return value [PR96506]

PR96506 shows a problem where we ICE on illegal usage, namely using MMA
types for function arguments and return values.  The solution is to flag
these illegal usages as errors early, before we ICE.

2020-08-13  Peter Bergner  <bergner@linux.ibm.com>

gcc/
PR target/96506
* config/rs6000/rs6000-call.c (rs6000_promote_function_mode): Disallow
MMA types as return values.
(rs6000_function_arg): Disallow MMA types as function arguments.

gcc/testsuite/
PR target/96506
* gcc.target/powerpc/pr96506.c: New test.
gcc/config/rs6000/rs6000-call.c
gcc/testsuite/gcc.target/powerpc/pr96506.c [new file with mode: 0644]