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]

Re: c/10844: Wrong computation on nan initialized vectors.


ehrhardt@mathematik.uni-ulm.de wrote:

Synopsis: Wrong computation on nan initialized vectors.

State-Changed-From-To: open->feedback
State-Changed-By: cae
State-Changed-When: Sun May 18 17:49:33 2003
State-Changed-Why:
I can't reproduce this. Could you tell us the compiler options used
to compile the code, the output of gcc -v and the assemble code
generated for the main function? Additionally your libc version might
be of interest here.
regards Christian


http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=10844



I just used "gcc -lm bug.c" to compile the code.
I am at work, but I can reproduce the bug on my SuSe 8.0 box, with

Reading specs from /home/szegedy/extern/gcc-3.2-install/lib/gcc-lib/i686-pc-linux-gnu/3.2/specs
Configured with: ../gcc-3.2/configure --prefix=/home/szegedy/extern/gcc-3.2-install
Thread model: posix
gcc version 3.2


How can I determine the glibc version?

The bug also occurs with the old 2.95 compiler.

The assembler output is:

       .file   "bug.c"
       .section        .rodata
.LC0:
       .string ""
.LC2:
       .string "%lg\n"
       .text
       .align 2
.globl main
       .type   main,@function
main:
       pushl   %ebp
       movl    %esp, %ebp
       pushl   %esi
       pushl   %ebx
       subl    $32, %esp
       andl    $-16, %esp
       movl    $0, %eax
       subl    %eax, %esp
       movl    $10, -16(%ebp)
       movl    -16(%ebp), %eax
       sall    $3, %eax
       movl    %eax, (%esp)
       call    malloc
       movl    %eax, -20(%ebp)
       movl    $0, -12(%ebp)
.L2:
       movl    -12(%ebp), %eax
       cmpl    -16(%ebp), %eax
       jl      .L5
       jmp     .L3
.L5:
       movl    -12(%ebp), %eax
       leal    0(,%eax,8), %esi
       movl    -20(%ebp), %ebx
       movl    $.LC0, (%esp)
       call    nan
       pushl   %eax
       fildl   (%esp)
       leal    4(%esp), %esp
       fstpl   (%ebx,%esi)
       leal    -12(%ebp), %eax
       incl    (%eax)
       jmp     .L2
.L3:
       movl    -20(%ebp), %eax
       movl    $0, (%eax)
       movl    $0, 4(%eax)
       movl    -20(%ebp), %edx
       movl    -20(%ebp), %eax
       fldl    (%eax)
       fldz
       faddp   %st, %st(1)
       fstpl   (%edx)
       movl    $.LC2, (%esp)
       movl    -20(%ebp), %eax
       movl    4(%eax), %edx
       movl    (%eax), %eax
       movl    %eax, 4(%esp)
       movl    %edx, 8(%esp)
       call    printf
       movl    $0, %eax
       leal    -8(%ebp), %esp
       popl    %ebx
       popl    %esi
       popl    %ebp
       ret
.Lfe1:
       .size   main,.Lfe1-main
       .ident  "GCC: (GNU) 3.2"



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