16430 – [3.4/4.0 regression] ICE when returning non-C aggregates larger than 16 bytes (original) (raw)
Description Eric Botcazou 2004-07-08 07:05:26 UTC
For the Ada testcase:
procedure P is
type my_array is array (1..6) of Integer; A : my_array;
function Q return my_array is begin return A; end;
begin A := Q; end P;
I get with gcc -m64 on sparc-sun-solaris2.8:
+===========================GNAT BUG DETECTED==============================+ | 3.4.1 (sparc-sun-solaris2.8) in hard_function_value, at explow.c:1565 | | Error detected at p.adb:6:3 | | Please submit a bug report; see http://gcc.gnu.org/bugs.html. | | Include the entire contents of this bug box in the report. | | Include the exact gcc or gnatmake command that you entered. | | Also include sources listed below in gnatchop format | | (concatenated together with no headers between files). | +==========================================================================+
The problem comes from the removing of OImode after GCC 3.2.x.
Comment 1 Eric Botcazou 2004-07-08 07:06:29 UTC
Testing a fix.