--- Comment #8 from kargl at gcc dot gnu dot org 2007-05-04 06:16 ---
This appears to be an alignment issue. On x86_64-*-FreeBSD, I do not
see the segfault. On i386-*-FreeBSD, I see the segfault. Here's is
the backtrace
Starting program:
/usr/home/kargl/work/4x/libexec/gcc/i386-unknow
--- Comment #5 from ebotcazou at gcc dot gnu dot org 2007-05-04 06:26
---
Spurious.
--
ebotcazou at gcc dot gnu dot org changed:
What|Removed |Added
Status|W
--- Comment #3 from ralf_corsepius at rtems dot org 2007-05-04 06:29
---
Created an attachment (id=13505)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13505&action=view)
Stripped down example to expose the issue on all targets
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3
--- Comment #4 from ralf_corsepius at rtems dot org 2007-05-04 06:36
---
Using GT64260eth.c from attachment 13505, I am able to reproduce the race with
gcc-4.2.0-20070430 for arm-rtems, bfin-rtems, powerpc-rtems, i386-rtems.
=> I assume this issue to be target independent and to affect
--- Comment #9 from jvdelisle at gcc dot gnu dot org 2007-05-04 06:42
---
I think the problem may be in arith.c (gfc_constant_result). We are passing a
type real into this and so we do not mpz_init (result->value.integer);
Which we later try to set at simplify.c: 2143
mpz_set
--- Comment #3 from pault at gcc dot gnu dot org 2007-05-04 07:29 ---
This fixes it but needs some cleaning up:
Index: gcc/fortran/trans-expr.c
===
*** gcc/fortran/trans-expr.c(revision 124354)
--- gcc/fortran/trans-exp
--- Comment #40 from ian at airs dot com 2007-05-04 07:37 ---
Created an attachment (id=13506)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13506&action=view)
Patch
Here is yet another patch, an improvement over the previous one. It finally
dawned on me that we can use an asm to
--- Comment #10 from jvdelisle at gcc dot gnu dot org 2007-05-04 07:39
---
Comment #9 is a red herring. Using gdb and looking at this at line 2143:
mpz_set (result->value.integer, e->ts.cl->length->value.integer);
(gdb) p *e->ts.cl->length
$9 = {expr_type = EXPR_CONSTANT, ts = {
101 - 108 of 108 matches
Mail list logo