public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c/34668] New: ICE in find_compatible_field
@ 2008-01-04 9:21 aldot at gcc dot gnu dot org
2008-01-04 13:01 ` [Bug c/34668] [4.3 Regression] " aldot at gcc dot gnu dot org
` (14 more replies)
0 siblings, 15 replies; 16+ messages in thread
From: aldot at gcc dot gnu dot org @ 2008-01-04 9:21 UTC (permalink / raw)
To: gcc-bugs
/there/toolchain_build_arm_nofpu/gcc-4.3.0/gcc/config/arm/arm.c:18717: internal
compiler error: tree check: expected record_type or union_type or
qual_union_type, have array_type in find_compatible_field, at tree.c:8022
Reducing.
/there/build_arm_nofpu/staging_dir/usr/bin/arm-linux-uclibcgnueabi-gcc -v
Using built-in specs.
Target: arm-linux-uclibcgnueabi
Configured with: /there/toolchain_build_arm_nofpu/gcc-4.3.0/configure
--prefix=/usr --build=i386-pc-linux-gnu --host=i386-pc-linux-gnu
--target=arm-linux-uclibcgnueabi --enable-languages=c,fortran
--with-sysroot=/there/build_arm_nofpu/staging_dir
--with-build-time-tools=/there/build_arm_nofpu/staging_dir/usr/arm-linux-uclibcgnueabi/bin
--disable-__cxa_atexit --enable-target-optspace --with-gnu-ld --enable-shared
--with-gmp=/there/toolchain_build_arm_nofpu/gmp
--with-mpfr=/there/toolchain_build_arm_nofpu/mpfr --disable-nls
--enable-threads --disable-multilib --with-float=soft
Thread model: posix
gcc version 4.3.0 20080102 (experimental) (GCC)
--
Summary: ICE in find_compatible_field
Product: gcc
Version: 4.3.0
Status: UNCONFIRMED
Keywords: ice-on-valid-code, build
Severity: normal
Priority: P3
Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: aldot at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34668
^ permalink raw reply [flat|nested] 16+ messages in thread
* [Bug c/34668] [4.3 Regression] ICE in find_compatible_field
2008-01-04 9:21 [Bug c/34668] New: ICE in find_compatible_field aldot at gcc dot gnu dot org
@ 2008-01-04 13:01 ` aldot at gcc dot gnu dot org
2008-01-04 13:17 ` aldot at gcc dot gnu dot org
` (13 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: aldot at gcc dot gnu dot org @ 2008-01-04 13:01 UTC (permalink / raw)
To: gcc-bugs
------- Comment #1 from aldot at gcc dot gnu dot org 2008-01-04 12:50 -------
Works with:
gcc (GCC) 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)
Fails with 4.3.0 since at least
gcc version 4.3.0 20071212 (experimental) (GCC)
Starting program: /opt/i686/gcc-4.3/lib/gcc/i686-linux-gnu/4.3.0/cc1
-fpreprocessed optabs.i arm.i -quiet -dumpbase optabs.i -mtune=generic
-auxbase-strip libbackend.o -Os -version -o /tmp/ccZ8vC6c.s
Failed to read a valid object file image from memory.
GNU C (GCC) version 4.3.0 20071221 (experimental) (i686-linux-gnu)
compiled by GNU C version 4.3.0 20071221 (experimental), GMP version
4.2.1, MPFR version 2.3.0-p4.
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
Compiler executable checksum: b3aa603325a2948ed75b63114a5afa00
Breakpoint 1, internal_error (
gmsgid=0x8ad2f58 "tree check: %s, have %s in %s, at %s:%d")
at ../../../src/gcc-4.3/gcc/diagnostic.c:604
604 va_start (ap, gmsgid);
(gdb) bt
#0 internal_error (gmsgid=0x8ad2f58 "tree check: %s, have %s in %s, at %s:%d")
at ../../../src/gcc-4.3/gcc/diagnostic.c:604
#1 0x08724a76 in tree_check_failed (node=0xb7d21ea0,
file=0x8ad166c "../../../src/gcc-4.3/gcc/tree.c", line=8022,
function=0x8ad37a4 "find_compatible_field")
at ../../../src/gcc-4.3/gcc/tree.c:6813
#2 0x0872b303 in find_compatible_field (record=0xb7d21ea0,
orig_field=0xb7d28000) at ../../../src/gcc-4.3/gcc/tree.c:8022
#3 0x085a26ab in fold_stmt_r (expr_p=0xb7d26784, walk_subtrees=0xbfaa5fdc,
data=0xbfaa6350) at ../../../src/gcc-4.3/gcc/tree-ssa-ccp.c:2163
#4 0x0872c8df in walk_tree_1 (tp=0xb7d26784, func=0x85a112d <fold_stmt_r>,
data=0xbfaa6350, pset=0x0, lh=0) at ../../../src/gcc-4.3/gcc/tree.c:8376
#5 0x0872eb42 in walk_tree_1 (tp=0xb7cb96a4, func=0x85a112d <fold_stmt_r>,
data=0xbfaa6350, pset=0x0, lh=0) at ../../../src/gcc-4.3/gcc/tree.c:8615
#6 0x085a67f4 in fold_stmt (stmt_p=0xb7cb96a4)
at ../../../src/gcc-4.3/gcc/tree-ssa-ccp.c:2529
#7 0x087e1bbe in fold_marked_statements (first=4, statements=0x8c303d8)
at ../../../src/gcc-4.3/gcc/tree-inline.c:2839
#8 0x087e1e29 in optimize_inline_calls (fn=0xb7d20a10)
at ../../../src/gcc-4.3/gcc/tree-inline.c:2929
#9 0x087a6b50 in cgraph_early_inlining ()
at ../../../src/gcc-4.3/gcc/ipa-inline.c:1469
#10 0x083e7106 in execute_one_pass (pass=0x8c31550)
at ../../../src/gcc-4.3/gcc/passes.c:1119
#11 0x083e7250 in execute_pass_list (pass=0x8c31550)
at ../../../src/gcc-4.3/gcc/passes.c:1172
#12 0x083e726c in execute_pass_list (pass=0x8bd0360)
at ../../../src/gcc-4.3/gcc/passes.c:1173
#13 0x083e6973 in do_per_function_toporder (
callback=0x83e723f <execute_pass_list>, data=0x8bd0520)
at ../../../src/gcc-4.3/gcc/passes.c:857
#14 0x083e72fd in execute_ipa_pass_list (pass=0x8bd0320)
at ../../../src/gcc-4.3/gcc/passes.c:1189
#15 0x0879f5a7 in ipa_passes () at ../../../src/gcc-4.3/gcc/cgraphunit.c:1351
#16 0x0879f6c1 in cgraph_optimize ()
at ../../../src/gcc-4.3/gcc/cgraphunit.c:1400
#17 0x0807678f in c_write_global_declarations ()
at ../../../src/gcc-4.3/gcc/c-decl.c:8076
#18 0x0849b291 in compile_file () at ../../../src/gcc-4.3/gcc/toplev.c:1055
#19 0x0849cd68 in do_compile () at ../../../src/gcc-4.3/gcc/toplev.c:2245
#20 0x0849cdca in toplev_main (argc=14, argv=0xbfaa67e4)
at ../../../src/gcc-4.3/gcc/toplev.c:2277
#21 0x081257be in main (argc=1634890337, argv=0x79745f79)
at ../../../src/gcc-4.3/gcc/main.c:35
--
aldot at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Known to fail| |4.3.0
Known to work| |4.1.2
Summary|ICE in find_compatible_field|[4.3 Regression] ICE in
| |find_compatible_field
Target Milestone|--- |4.3.0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34668
^ permalink raw reply [flat|nested] 16+ messages in thread
* [Bug c/34668] [4.3 Regression] ICE in find_compatible_field
2008-01-04 9:21 [Bug c/34668] New: ICE in find_compatible_field aldot at gcc dot gnu dot org
2008-01-04 13:01 ` [Bug c/34668] [4.3 Regression] " aldot at gcc dot gnu dot org
@ 2008-01-04 13:17 ` aldot at gcc dot gnu dot org
2008-01-04 13:24 ` aldot at gcc dot gnu dot org
` (12 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: aldot at gcc dot gnu dot org @ 2008-01-04 13:17 UTC (permalink / raw)
To: gcc-bugs
------- Comment #2 from aldot at gcc dot gnu dot org 2008-01-04 12:51 -------
Created an attachment (id=14875)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14875&action=view)
optabs.i
file1
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34668
^ permalink raw reply [flat|nested] 16+ messages in thread
* [Bug c/34668] [4.3 Regression] ICE in find_compatible_field
2008-01-04 9:21 [Bug c/34668] New: ICE in find_compatible_field aldot at gcc dot gnu dot org
2008-01-04 13:01 ` [Bug c/34668] [4.3 Regression] " aldot at gcc dot gnu dot org
2008-01-04 13:17 ` aldot at gcc dot gnu dot org
@ 2008-01-04 13:24 ` aldot at gcc dot gnu dot org
2008-01-04 13:32 ` [Bug c/34668] [4.3 Regression] ICE in find_compatible_field with -combine rguenth at gcc dot gnu dot org
` (11 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: aldot at gcc dot gnu dot org @ 2008-01-04 13:24 UTC (permalink / raw)
To: gcc-bugs
------- Comment #3 from aldot at gcc dot gnu dot org 2008-01-04 12:51 -------
Created an attachment (id=14876)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14876&action=view)
arm.i (file2)
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34668
^ permalink raw reply [flat|nested] 16+ messages in thread
* [Bug c/34668] [4.3 Regression] ICE in find_compatible_field with -combine
2008-01-04 9:21 [Bug c/34668] New: ICE in find_compatible_field aldot at gcc dot gnu dot org
` (2 preceding siblings ...)
2008-01-04 13:24 ` aldot at gcc dot gnu dot org
@ 2008-01-04 13:32 ` rguenth at gcc dot gnu dot org
2008-01-04 13:33 ` aldot at gcc dot gnu dot org
` (10 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2008-01-04 13:32 UTC (permalink / raw)
To: gcc-bugs
------- Comment #4 from rguenth at gcc dot gnu dot org 2008-01-04 13:00 -------
Confirmed. Fails at -O[23s].
--
rguenth at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Ever Confirmed|0 |1
Last reconfirmed|0000-00-00 00:00:00 |2008-01-04 13:00:27
date| |
Summary|[4.3 Regression] ICE in |[4.3 Regression] ICE in
|find_compatible_field |find_compatible_field with -
| |combine
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34668
^ permalink raw reply [flat|nested] 16+ messages in thread
* [Bug c/34668] [4.3 Regression] ICE in find_compatible_field with -combine
2008-01-04 9:21 [Bug c/34668] New: ICE in find_compatible_field aldot at gcc dot gnu dot org
` (3 preceding siblings ...)
2008-01-04 13:32 ` [Bug c/34668] [4.3 Regression] ICE in find_compatible_field with -combine rguenth at gcc dot gnu dot org
@ 2008-01-04 13:33 ` aldot at gcc dot gnu dot org
2008-01-04 14:00 ` aldot at gcc dot gnu dot org
` (9 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: aldot at gcc dot gnu dot org @ 2008-01-04 13:33 UTC (permalink / raw)
To: gcc-bugs
------- Comment #5 from aldot at gcc dot gnu dot org 2008-01-04 13:06 -------
Works with
gcc-4.3.orig-HEAD (GCC) 4.3.0 20070919 (experimental)
--
aldot at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Known to work|4.1.2 |4.1.2 4.2.3
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34668
^ permalink raw reply [flat|nested] 16+ messages in thread
* [Bug c/34668] [4.3 Regression] ICE in find_compatible_field with -combine
2008-01-04 9:21 [Bug c/34668] New: ICE in find_compatible_field aldot at gcc dot gnu dot org
` (4 preceding siblings ...)
2008-01-04 13:33 ` aldot at gcc dot gnu dot org
@ 2008-01-04 14:00 ` aldot at gcc dot gnu dot org
2008-01-04 15:50 ` jakub at gcc dot gnu dot org
` (8 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: aldot at gcc dot gnu dot org @ 2008-01-04 14:00 UTC (permalink / raw)
To: gcc-bugs
------- Comment #6 from aldot at gcc dot gnu dot org 2008-01-04 13:52 -------
Smaller testcase:
cat > arm.i <<-EOF
struct optab { unsigned code; };
extern struct optab optab_table[1];
EOF
cat > optabs.i <<-EOF
struct optab { unsigned code; };
extern struct optab optab_table[1];
void
init_optab (struct optab *op)
{
op->code = 0xdead;
}
void
set_conv_libfunc (void)
{
init_optab ((&optab_table[0]));
}
EOF
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34668
^ permalink raw reply [flat|nested] 16+ messages in thread
* [Bug c/34668] [4.3 Regression] ICE in find_compatible_field with -combine
2008-01-04 9:21 [Bug c/34668] New: ICE in find_compatible_field aldot at gcc dot gnu dot org
` (5 preceding siblings ...)
2008-01-04 14:00 ` aldot at gcc dot gnu dot org
@ 2008-01-04 15:50 ` jakub at gcc dot gnu dot org
2008-01-10 1:05 ` jakub at gcc dot gnu dot org
` (7 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: jakub at gcc dot gnu dot org @ 2008-01-04 15:50 UTC (permalink / raw)
To: gcc-bugs
------- Comment #7 from jakub at gcc dot gnu dot org 2008-01-04 15:17 -------
This is a problem during inlining.
The call actually has &optab_table argument:
<addr_expr 0x2aaaae9035c0
type <pointer_type 0x2aaaaea1e600
type <record_type 0x2aaaaea1e300 optab type_0 SI ... > ...>
arg 0 <var_decl 0x2aaaae9e8280 optab_table
type <array_type 0x2aaaaea1ef00 type <record_type 0x2aaaaea1ecc0 optab>
... >
and two different optab RECORD_TYPEs are involved (one from each CU).
These types are types_compatible_p (0x2aaaaea1e300, 0x2aaaaea1ecc0), but
not are not equal. copy_body_r calls
699 *tp = fold_indirect_ref_1 (type, new);
700 if (! *tp)
701 {
702 if (TREE_CODE (new) == ADDR_EXPR)
703 *tp = TREE_OPERAND (new, 0);
here, but as the
/* *(foo *)&fooarray => fooarray[0] */
transformation is done only if the types are equal, this isn't folded into
&optab_table[0] and so inlining creates optab_table.code COMPONENT_REF, where
its first argument is not a record/union/qual union.
Either we change fold_indirect_ref_1 to do its transformations whenever
types_compatible_p (type1, type2) rather than just type1 == type2, or if that's
too expensive IMHO at least copy_body_r should do that.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34668
^ permalink raw reply [flat|nested] 16+ messages in thread
* [Bug c/34668] [4.3 Regression] ICE in find_compatible_field with -combine
2008-01-04 9:21 [Bug c/34668] New: ICE in find_compatible_field aldot at gcc dot gnu dot org
` (6 preceding siblings ...)
2008-01-04 15:50 ` jakub at gcc dot gnu dot org
@ 2008-01-10 1:05 ` jakub at gcc dot gnu dot org
2008-01-10 15:28 ` jakub at gcc dot gnu dot org
` (6 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: jakub at gcc dot gnu dot org @ 2008-01-10 1:05 UTC (permalink / raw)
To: gcc-bugs
------- Comment #8 from jakub at gcc dot gnu dot org 2008-01-10 00:00 -------
Patch which cures this:
--- gcc/tree-inline.c.jj 2008-01-04 00:53:03.000000000 +0100
+++ gcc/tree-inline.c 2008-01-10 00:48:07.000000000 +0100
@@ -700,7 +700,30 @@ copy_body_r (tree *tp, int *walk_subtree
if (! *tp)
{
if (TREE_CODE (new) == ADDR_EXPR)
- *tp = TREE_OPERAND (new, 0);
+ {
+ tree t = TREE_OPERAND (new, 0);
+ if (types_compatible_p (type, TREE_TYPE (t)))
+ *tp = t;
+ else if (TREE_CODE (TREE_TYPE (t)) == ARRAY_TYPE
+ && types_compatible_p (TREE_TYPE (TREE_TYPE
(t)),
+ type))
+ {
+ tree type_domain = TYPE_DOMAIN (TREE_TYPE (t));
+ tree min_val = size_zero_node;
+ if (type_domain && TYPE_MIN_VALUE (type_domain))
+ min_val = TYPE_MIN_VALUE (type_domain);
+ *tp = build4 (ARRAY_REF, type, t, min_val,
+ NULL_TREE, NULL_TREE);
+ }
+ else
+ {
+ t = build_fold_addr_expr (t);
+ t = fold_convert (TREE_TYPE (new), t);
+ *tp = build1 (INDIRECT_REF, type, t);
+ TREE_THIS_VOLATILE (*tp) = TREE_THIS_VOLATILE (old);
+ id->regimplify = true;
+ }
+ }
else
{
*tp = build1 (INDIRECT_REF, type, new);
@@ -1210,13 +1233,15 @@ copy_phis_for_bb (basic_block bb, copy_b
tree arg = PHI_ARG_DEF_FROM_EDGE (phi, old_edge);
tree new_arg = arg;
+ id->regimplify = false;
walk_tree (&new_arg, copy_body_r, id, NULL);
gcc_assert (new_arg);
/* With return slot optimization we can end up with
non-gimple (foo *)&this->m, fix that here. */
- if (TREE_CODE (new_arg) != SSA_NAME
- && TREE_CODE (new_arg) != FUNCTION_DECL
- && !is_gimple_val (new_arg))
+ if ((TREE_CODE (new_arg) != SSA_NAME
+ && TREE_CODE (new_arg) != FUNCTION_DECL
+ && !is_gimple_val (new_arg))
+ || id->regimplify)
{
tree stmts = NULL_TREE;
new_arg = force_gimple_operand (new_arg, &stmts,
--- gcc/tree-ssa-operands.c.jj 2008-01-04 00:53:03.000000000 +0100
+++ gcc/tree-ssa-operands.c 2008-01-10 00:38:25.000000000 +0100
@@ -1663,7 +1663,7 @@ get_addr_dereference_operands (tree stmt
/* If we don't know what this pointer points to then we have
to make sure to not prune virtual operands based on offset
and size. */
- if (v_ann->symbol_mem_tag)
+ if (v_ann && v_ann->symbol_mem_tag)
{
add_virtual_operand (v_ann->symbol_mem_tag, s_ann, flags,
full_ref, 0, -1, false);
--- gcc/testsuite/gcc.dg/pr34668-1.c.jj 2008-01-10 00:55:59.000000000 +0100
+++ gcc/testsuite/gcc.dg/pr34668-1.c 2008-01-10 00:59:02.000000000 +0100
@@ -0,0 +1,19 @@
+/* PR c/34668 */
+/* { dg-do compile } */
+/* { dg-options "--combine -O2" } */
+/* { dg-additional-sources "pr34668-2.c" } */
+
+struct optab { unsigned code; };
+extern struct optab optab_table[1];
+
+void
+init_optab (struct optab *op)
+{
+ op->code = 0xdead;
+}
+
+void
+set_conv_libfunc (void)
+{
+ init_optab (&optab_table[0]);
+}
--- gcc/testsuite/gcc.dg/pr34668-2.c.jj 2008-01-10 00:56:02.000000000 +0100
+++ gcc/testsuite/gcc.dg/pr34668-2.c 2008-01-10 00:56:36.000000000 +0100
@@ -0,0 +1,5 @@
+/* PR c/34668 */
+/* { dg-do compile } */
+
+struct optab { unsigned code; };
+extern struct optab optab_table[1];
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34668
^ permalink raw reply [flat|nested] 16+ messages in thread
* [Bug c/34668] [4.3 Regression] ICE in find_compatible_field with -combine
2008-01-04 9:21 [Bug c/34668] New: ICE in find_compatible_field aldot at gcc dot gnu dot org
` (7 preceding siblings ...)
2008-01-10 1:05 ` jakub at gcc dot gnu dot org
@ 2008-01-10 15:28 ` jakub at gcc dot gnu dot org
2008-01-11 8:15 ` jakub at gcc dot gnu dot org
` (5 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: jakub at gcc dot gnu dot org @ 2008-01-10 15:28 UTC (permalink / raw)
To: gcc-bugs
------- Comment #9 from jakub at gcc dot gnu dot org 2008-01-10 14:50 -------
http://gcc.gnu.org/ml/gcc-patches/2008-01/msg00404.html
http://gcc.gnu.org/ml/gcc-patches/2008-01/msg00408.html
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34668
^ permalink raw reply [flat|nested] 16+ messages in thread
* [Bug c/34668] [4.3 Regression] ICE in find_compatible_field with -combine
2008-01-04 9:21 [Bug c/34668] New: ICE in find_compatible_field aldot at gcc dot gnu dot org
` (8 preceding siblings ...)
2008-01-10 15:28 ` jakub at gcc dot gnu dot org
@ 2008-01-11 8:15 ` jakub at gcc dot gnu dot org
2008-01-16 14:12 ` rguenth at gcc dot gnu dot org
` (4 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: jakub at gcc dot gnu dot org @ 2008-01-11 8:15 UTC (permalink / raw)
To: gcc-bugs
--
jakub at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Priority|P3 |P1
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34668
^ permalink raw reply [flat|nested] 16+ messages in thread
* [Bug c/34668] [4.3 Regression] ICE in find_compatible_field with -combine
2008-01-04 9:21 [Bug c/34668] New: ICE in find_compatible_field aldot at gcc dot gnu dot org
` (9 preceding siblings ...)
2008-01-11 8:15 ` jakub at gcc dot gnu dot org
@ 2008-01-16 14:12 ` rguenth at gcc dot gnu dot org
2008-01-16 14:17 ` rguenth at gcc dot gnu dot org
` (3 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2008-01-16 14:12 UTC (permalink / raw)
To: gcc-bugs
------- Comment #10 from rguenth at gcc dot gnu dot org 2008-01-16 13:41 -------
Fixed.
--
rguenth at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |FIXED
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34668
^ permalink raw reply [flat|nested] 16+ messages in thread
* [Bug c/34668] [4.3 Regression] ICE in find_compatible_field with -combine
2008-01-04 9:21 [Bug c/34668] New: ICE in find_compatible_field aldot at gcc dot gnu dot org
` (10 preceding siblings ...)
2008-01-16 14:12 ` rguenth at gcc dot gnu dot org
@ 2008-01-16 14:17 ` rguenth at gcc dot gnu dot org
2010-03-09 14:20 ` [Bug middle-end/34668] " bmei at broadcom dot com
` (2 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2008-01-16 14:17 UTC (permalink / raw)
To: gcc-bugs
------- Comment #11 from rguenth at gcc dot gnu dot org 2008-01-16 13:42 -------
Subject: Bug 34668
Author: rguenth
Date: Wed Jan 16 13:41:13 2008
New Revision: 131572
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=131572
Log:
2008-01-16 Jakub Jelinek <jakub@redhat.com>
Richard Guenther <rguenther@suse.de>
PR c/34668
* gimplify.c (fold_indirect_ref_rhs): Rename to ...
(gimple_fold_indirect_ref_rhs): ... this.
(gimple_fold_indirect_ref): New function with foldings
that preserve lvalueness.
(gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
* tree-flow.h (gimple_fold_indirect_ref): Declare.
* tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
to fold an INDIRECT_REF, fall back to the old use of
fold_indirect_ref_1.
* gcc.dg/pr34668-1.c: New test.
* gcc.dg/pr34668-2.c: Likewise.
Added:
trunk/gcc/testsuite/gcc.dg/pr34668-1.c
trunk/gcc/testsuite/gcc.dg/pr34668-2.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/gimplify.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-flow.h
trunk/gcc/tree-inline.c
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34668
^ permalink raw reply [flat|nested] 16+ messages in thread
* [Bug middle-end/34668] [4.3 Regression] ICE in find_compatible_field with -combine
2008-01-04 9:21 [Bug c/34668] New: ICE in find_compatible_field aldot at gcc dot gnu dot org
` (11 preceding siblings ...)
2008-01-16 14:17 ` rguenth at gcc dot gnu dot org
@ 2010-03-09 14:20 ` bmei at broadcom dot com
2010-03-12 20:59 ` davem at gcc dot gnu dot org
2010-03-12 21:20 ` pinskia at gcc dot gnu dot org
14 siblings, 0 replies; 16+ messages in thread
From: bmei at broadcom dot com @ 2010-03-09 14:20 UTC (permalink / raw)
To: gcc-bugs
------- Comment #12 from bmei at broadcom dot com 2010-03-09 14:20 -------
It seems that this bug still fails on my build:
~/work/install-x86/bin/gcc
/projects/firepath/tools/work/bmei/gcc-head/src/gcc/testsuite/gcc.dg/pr34668-1.c
--combine -O2
/projects/firepath/tools/work/bmei/gcc-head/src/gcc/testsuite/gcc.dg/pr34668-2.c
-S -o pr34668-1.s
/projects/firepath/tools/work/bmei/gcc-head/src/gcc/testsuite/gcc.dg/pr34668-2.c:
In function 'set_conv_libfunc':
/projects/firepath/tools/work/bmei/gcc-head/src/gcc/testsuite/gcc.dg/pr34668-2.c:5:15:
error: type mismatch in array reference
struct optab
struct optab
# .MEM_3 = VDEF <.MEM_1(D)>
optab_table[0].code = 57005;
/projects/firepath/tools/work/bmei/gcc-head/src/gcc/testsuite/gcc.dg/pr34668-2.c:5:15:
internal compiler error: verify_stmts failed
...
My build is revision 143368, target x86_64-unknown-linux-gnu.
../trunk/configure --prefix=/home/bmei/work/install-x86
--with-mpfr=/projects/firepath/tools/work/bmei/packages/mpfr/2.4.1/x86-64
--with-gmp=/projects/firepath/tools/work/bmei/packages/gmp/4.3.0/x86-64
--with-mpc=/projects/firepath/tools/work/bmei/packages/mpc/0.8.1/x86-64
--enable-languages=c,c++ --disable-bootstrap : (reconfigured)
../trunk/configure --prefix=/home/bmei/work/install-x86
--with-mpfr=/projects/firepath/tools/work/bmei/packages/mpfr/2.4.1/x86-64
--with-gmp=/projects/firepath/tools/work/bmei/packages/gmp/4.3.0/x86-64
--with-mpc=/projects/firepath/tools/work/bmei/packages/mpc/0.8.1/x86-64
--enable-languages=c --disable-bootstrap : (reconfigured) ../trunk/configure
--prefix=/home/bmei/work/install-x86
--with-mpfr=/projects/firepath/tools/work/bmei/packages/mpfr/2.4.1/x86-64
--with-gmp=/projects/firepath/tools/work/bmei/packages/gmp/4.3.0/x86-64
--with-mpc=/projects/firepath/tools/work/bmei/packages/mpc/0.8.1/x86-64
--disable-bootstrap CC='gcc -static' CFLAGS='-g -O0' --enable-languages=c
--no-create --no-recursion
--
bmei at broadcom dot com changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |bmei at broadcom dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34668
^ permalink raw reply [flat|nested] 16+ messages in thread
* [Bug middle-end/34668] [4.3 Regression] ICE in find_compatible_field with -combine
2008-01-04 9:21 [Bug c/34668] New: ICE in find_compatible_field aldot at gcc dot gnu dot org
` (12 preceding siblings ...)
2010-03-09 14:20 ` [Bug middle-end/34668] " bmei at broadcom dot com
@ 2010-03-12 20:59 ` davem at gcc dot gnu dot org
2010-03-12 21:20 ` pinskia at gcc dot gnu dot org
14 siblings, 0 replies; 16+ messages in thread
From: davem at gcc dot gnu dot org @ 2010-03-12 20:59 UTC (permalink / raw)
To: gcc-bugs
------- Comment #13 from davem at gcc dot gnu dot org 2010-03-12 20:58 -------
I'm still seeing this fail on 32-bit sparc with mainline:
home/davem/src/GIT/GCC/gcc/gcc/testsuite/gcc.dg/pr34668-2.c: In function
'set_conv_libfunc':
/home/davem/src/GIT/GCC/gcc/gcc/testsuite/gcc.dg/pr34668-2.c:5:15: error: type
mismatch in array reference
struct optab
struct optab
# .MEM_3 = VDEF <.MEM_1(D)>
optab_table[0].code = 57005;
/home/davem/src/GIT/GCC/gcc/gcc/testsuite/gcc.dg/pr34668-2.c:5:15: internal
compiler error: verify_stmts failed
--
davem at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|RESOLVED |REOPENED
Resolution|FIXED |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34668
^ permalink raw reply [flat|nested] 16+ messages in thread
* [Bug middle-end/34668] [4.3 Regression] ICE in find_compatible_field with -combine
2008-01-04 9:21 [Bug c/34668] New: ICE in find_compatible_field aldot at gcc dot gnu dot org
` (13 preceding siblings ...)
2010-03-12 20:59 ` davem at gcc dot gnu dot org
@ 2010-03-12 21:20 ` pinskia at gcc dot gnu dot org
14 siblings, 0 replies; 16+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2010-03-12 21:20 UTC (permalink / raw)
To: gcc-bugs
------- Comment #14 from pinskia at gcc dot gnu dot org 2010-03-12 21:20 -------
(In reply to comment #13)
> I'm still seeing this fail on 32-bit sparc with mainline:
Yes we know, but that ICE is different from the problem here, see PR 39959.
--
pinskia at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|REOPENED |RESOLVED
Resolution| |FIXED
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34668
^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2010-03-12 21:20 UTC | newest]
Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-01-04 9:21 [Bug c/34668] New: ICE in find_compatible_field aldot at gcc dot gnu dot org
2008-01-04 13:01 ` [Bug c/34668] [4.3 Regression] " aldot at gcc dot gnu dot org
2008-01-04 13:17 ` aldot at gcc dot gnu dot org
2008-01-04 13:24 ` aldot at gcc dot gnu dot org
2008-01-04 13:32 ` [Bug c/34668] [4.3 Regression] ICE in find_compatible_field with -combine rguenth at gcc dot gnu dot org
2008-01-04 13:33 ` aldot at gcc dot gnu dot org
2008-01-04 14:00 ` aldot at gcc dot gnu dot org
2008-01-04 15:50 ` jakub at gcc dot gnu dot org
2008-01-10 1:05 ` jakub at gcc dot gnu dot org
2008-01-10 15:28 ` jakub at gcc dot gnu dot org
2008-01-11 8:15 ` jakub at gcc dot gnu dot org
2008-01-16 14:12 ` rguenth at gcc dot gnu dot org
2008-01-16 14:17 ` rguenth at gcc dot gnu dot org
2010-03-09 14:20 ` [Bug middle-end/34668] " bmei at broadcom dot com
2010-03-12 20:59 ` davem at gcc dot gnu dot org
2010-03-12 21:20 ` pinskia at gcc dot gnu dot org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).