This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
c++/9358: ICE in simplify_gen_subreg
- From: aj at suse dot de
- To: gcc-gnats at gcc dot gnu dot org
- Cc: matz at suse dot de, dmuell at gmx dot net
- Date: 17 Jan 2003 21:24:14 -0000
- Subject: c++/9358: ICE in simplify_gen_subreg
- Reply-to: aj at suse dot de
>Number: 9358
>Category: c++
>Synopsis: ICE in simplify_gen_subreg
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Fri Jan 17 13:26:00 PST 2003
>Closed-Date:
>Last-Modified:
>Originator: Dirk Müller
>Release: GCC 3.3 since 2002-12-06
>Organization:
>Environment:
i686-linux-gnu and x86_64-linux-gnu
>Description:
=== Cut===
struct A { ~A(); };
struct B {
A a;
void x(B) { }
};
void foo(const B& b)
{
B y;
y.x( b );
}
=== Cut ===
Gives an ICE with GCC 3.3 and 3.4 but not with 3.2:
gromit:~/tmp:[0]$ /opt/gcc/3.3-devel/bin/g++ -O1 -c test.cc
test.cc: In function `void foo(const B&)':
test.cc:5: internal compiler error: in simplify_gen_subreg, at simplify-rtx.c:
2673
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
gromit:~/tmp:[1]$ /opt/gcc/3.2-devel/bin/g++ -O1 -c test.cc
gromit:~/tmp:[0]$ /opt/gcc/3.4-devel/bin/g++ -O1 -c test.cc
test.cc: In function `void foo(const B&)':
test.cc:5: internal compiler error: in simplify_gen_subreg, at simplify-rtx.c:
2629
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
>How-To-Repeat:
Just compile the small test program.
>Fix:
The bug was introduced with this patch set:
+2002-12-04 Jason Merrill <jason@redhat.com>
+
+ PR c++/8461, c++/8625
+ * integrate.c (copy_decl_for_inlining): Handle explicit invisible
+ references.
+ * tree-inline.c (initialize_inlined_parameters): Likewise.
+
+ * tree.c (variably_modified_type_p): Just return an error_mark_node.
--- gcc/cp/ChangeLog 4 Dec 2002 11:32:13 -0000 1.3068
+++ gcc/cp/ChangeLog 4 Dec 2002 20:12:59 -0000 1.3069
@@ -6,6 +6,18 @@
2002-12-03 Jason Merrill <jason@redhat.com>
+ PR c++/8674
+ * call.c (build_over_call): Check specifically for TARGET_EXPR
+ when eliding.
+
+ PR c++/8461, c++/8625
+ * call.c (convert_for_arg_passing): Don't mess with error_mark_node.
+ (cp_convert_parm_for_inlining): Remove.
+ * cp-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
+ Remove.
+ * cp-tree.h (ADDR_IS_INVISIREF): Remove.
+ * except.c (stabilize_throw_expr): Remove ADDR_IS_INVISIREF code.
>Release-Note:
>Audit-Trail:
>Unformatted: