[
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.