From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17427 invoked by alias); 2 Jun 2004 20:38:45 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 17418 invoked by uid 48); 2 Jun 2004 20:38:45 -0000 Date: Wed, 02 Jun 2004 20:38:00 -0000 From: "ppluzhnikov at charter dot net" To: gcc-bugs@gcc.gnu.org Message-ID: <20040602203843.15783.ppluzhnikov@charter.net> Reply-To: gcc-bugzilla@gcc.gnu.org Subject: [Bug c/15783] New: internal error in in emit_move_insn (union assignment) X-Bugzilla-Reason: CC X-SW-Source: 2004-06/txt/msg00255.txt.bz2 List-Id: Attached test case causes: c33c.i:12: internal compiler error: in emit_move_insn, at expr.c:2809 This happens with gcc-3.4.0 (but not gcc-3.3 or 3.1), and only in 64-bit mode. Removing 'u2s_e' struct member makes the bug go away. $ /usr/local/gcc-3.4.0/bin/gcc -c c33c.i -m64 -v Reading specs from /usr/local/gcc-3.4.0/lib/gcc/sparc-sun-solaris2.7/3.4.0/specs Configured with: /home/camel1/paul/Archive/gcc-3.4.0/configure --prefix=/usr/local/gcc-3.4.0 --enable-languages=c,c++ : (reconfigured) ../../../camel1/paul/Archive/gcc-3.4.0/configure --prefix=/usr/local/gcc-3.4.0 --enable-languages=c,c++ Thread model: posix gcc version 3.4.0 /usr/local/gcc-3.4.0/libexec/gcc/sparc-sun-solaris2.7/3.4.0/cc1 -fpreprocessed c33c.i -mptr64 -mstack-bias -mno-v8plus -quiet -dumpbase c33c.i -m64 -mcpu=v7 -auxbase c33c -version -o /home/solaris/development/devtest/tmp/ccQWlq8A.s GNU C version 3.4.0 (sparc-sun-solaris2.7) compiled by GNU C version 2.95.3 20010315 (release). GGC heuristics: --param ggc-min-expand=56 --param ggc-min-heapsize=49152 c33c.i: In function `unions': c33c.i:12: internal compiler error: in emit_move_insn, at expr.c:2809 Please submit a full bug report, with preprocessed source if appropriate. See for instructions. --- cut --- c33c.i --- union u2 { struct { int u2s_a, u2s_b, u2s_c, u2s_d, u2s_e; } u2_s; double u2_d; } u2a; union u2 fu2(); void unions() { u2a = fu2(11); } --- cut --- c33c.i --- -- Summary: internal error in in emit_move_insn (union assignment) Product: gcc Version: 3.4.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: ppluzhnikov at charter dot net CC: gcc-bugs at gcc dot gnu dot org GCC build triplet: sparc-sun-solaris2.7 GCC host triplet: sparc-sun-solaris2.7 GCC target triplet: sparc-sun-solaris2.7 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15783