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

Christian Szegedy <[email protected]>
Newsgroups gmane.comp.gcc.bugs,gmane.comp.gcc.prs
Message-ID <[email protected]>
[email protected] 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"
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.