This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/16430] New: [3.4/3.5 regression] ICE when returning non-C aggregates larger than 16 bytes


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.

-- 
           Summary: [3.4/3.5 regression] ICE when returning non-C aggregates
                    larger than 16 bytes
           Product: gcc
           Version: 3.4.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: target
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: ebotcazou at gcc dot gnu dot org
                CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: sparc64-*-*
  GCC host triplet: sparc64-*-*
GCC target triplet: sparc64-*-*


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16430


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]