[ 
https://issues.apache.org/jira/browse/STDCXX-828?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12588167#action_12588167
 ] 

Martin Sebor commented on STDCXX-828:
-------------------------------------

The following program reproduces the failing call with the argument values 
extracted from the stack trace. When compiled with gcc 4.1.1 on Linux/x86_64 as 
show, it produces the expected output (see below).

{noformat}
$ cat t.cpp && make t && CLASS="basic_istream<char, UserTraits<char>>" ./t
#include <rw_printf.h>

int main ()
{
    rw_fprintf (0,
                "%{$FUNCALL!:@}",
                "%{$CLASS}(%{*Ac}).operator>>(%s& = [EMAIL PROTECTED]): "
                "initial flags() = %{If}, rdstate() = %{Is}, "
                "exceptions() = %{Is}, whitespace = %{#s}, numpunct = { "
                ".dp=%{#c}, .ts=%{#c}, .grp=%{#s}, .fn=%{#s}, .tn=%{#s} }",
                1, " ", "long double", "%Lg", 9.0L,
                671289346, 0,
                0, " ", -1, -1, (void*)0, (void*)0, (void*)0);

    rw_printf ("%{$FUNCALL}\n");
}

gcc -c -I/home/sebor/stdcxx/include/ansi -D_RWSTDDEBUG   -pthread 
-I/home/sebor/stdcxx/include -I/build/sebor/stdcxx-gcc-4.1.2-15D/include 
-I/home/sebor/stdcxx/tests/include  -pedantic -nostdinc++ -g   -W -Wall 
-Wcast-qual -Winline -Wshadow -Wwrite-strings -Wno-long-long -Wcast-align   
t.cpp
gcc t.o -o t -L/build/sebor/stdcxx-gcc-4.1.2-15D/rwtest -lrwtest15D -pthread  
-L/build/sebor/stdcxx-gcc-4.1.2-15D/lib  
-Wl,-R/build/sebor/stdcxx-gcc-4.1.2-15D/lib:/build/sebor/stdcxx-gcc-4.1.2-15D/rwtest
 -lstd15D -lsupc++ -lm 
basic_istream<char, UserTraits<char>>(" ").operator>>(long double& = 9): 
initial flags() = dec | skipws | nolock | nolockbuf, rdstate() = goodbit, 
exceptions() = goodbit, whitespace = " ", numpunct = { .dp='\xff', .ts='\xff', 
.grp=(null), .fn=(null), .tn=(null) }
{noformat}

When compiled with Sun C++ 5.8 on Solaris 10/AMD64 in 15S mode, the program 
produces the following bogus output (the value of the funky '�' character is 
octal 377):
{noformat}
basic_istream<char, UserTraits<char>>(" ").operator>>(long double& = 
1.69954e-4944): initial flags() = 0x600000 | dec | uppercase | nolock | 
nolockbuf� | base(2, rdstate() = 0x28031000 | eofbit, exceptions() = goodbit, 
whitespace = (null), numpunct = { .dp='g', .ts='\xff', .grp=(invalid address 
0xfffffd7fffffffff), .fn=(null), .tn=(null) }
{noformat}

> [AMD64] SIGABRT in 27.istream.fmat.arith
> ----------------------------------------
>
>                 Key: STDCXX-828
>                 URL: https://issues.apache.org/jira/browse/STDCXX-828
>             Project: C++ Standard Library
>          Issue Type: Bug
>          Components: Tests
>    Affects Versions: 4.2.0
>         Environment: Sun C++ 5.9/Solaris/AMD64
>            Reporter: Martin Sebor
>            Assignee: Eric Lemings
>             Fix For: 4.2.1
>
>         Attachments: 27.istream.fmat.arith.cpp
>
>   Original Estimate: 4h
>          Time Spent: 8h
>  Remaining Estimate: 2h
>
> When compiled with Intel C++ 10.0 on Linux/AMD64 or Sun C++ 5.9 on Solaris 
> 10/AMD64, the test 
> [27.istream.fmat.arith.cpp|http://svn.apache.org/repos/asf/stdcxx/trunk/tests/iostream/27.istream.fmat.arith.cpp]
>  abends with SIGABRT. This was observed in 8{D,S}, 12{D,S} and 15D build 
> types, not necessarily consistently on both platforms.
> The same test was also failing in 4.2.0 with Intel C++.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to