[patch] PR 8761 and 7076, take 3

Jerry Quinn jlquinn@optonline.net
Wed Jan 22 03:48:00 GMT 2003


From: Benjamin Kosnik <bkoz at redhat dot com>
> Hey Jerry. 
> +     extern "C++"
> +     {
> + 	std::__num_put_output*
> +     }; 
> I consider this symbol name subject to improvement. 

Err, how about __num_put_streambuf_write?  BTW, why does this symbol have to
be externally visible at all?  It's inline, so any library instantiations
should have swallowed it up, and otherwise, it's just code to be compiled into
a user app, no?
 
> This patch will not compile on gcc head without modifications.

OK, then, let's get it working on the 3.3 branch first and then fix it up for
mainline?
 
> On gcc-3_3-branch, I'm still seeing fails unrelated to symbol visibility.
> 
> Some are execution fails:
> 
> 1.exe: /mnt/hd/bliss/src.gcc/gcc/libstdc++-v3/testsuite/22_locale/num_put/put/char/1.cc:166: void test01(): Assertion `result1 == "9.223.372.036.854.775.807"' failed.
> 
> And some are of this form:
> %COMP.sh "-static -g -O0" 22_locale/num_put/put/char/4.cc
> /mnt/hd/ahimsa/bld-x86-gcc/i686-pc-linux-gnu/libstdc++-v3/include/bits/locale_facets.tcc: In
>    member function `_OutIter std::num_put<_CharT, 
>    _OutIter>::_M_insert(_OutIter, std::ios_base&, _CharT, const _CharT*, int) 
>    const [with _CharT = char, _OutIter = test04()::iter_type]':
> /mnt/hd/ahimsa/bld-x86-gcc/i686-pc-linux-gnu/libstdc++-v3/include/bits/locale_facets.tcc:947:   instantiated from `_OutIter std::num_put<_CharT, _OutIter>::do_put(_OutIter, std::ios_base&, _CharT, bool) const [with _CharT = char, _OutIter = test04()::iter_type]'
> /mnt/hd/ahimsa/bld-x86-gcc/i686-pc-linux-gnu/libstdc++-v3/include/bits/locale_facets.h:733:   instantiated from `_OutIter std::num_put<_CharT, _OutIter>::put(_OutIter, std::ios_base&, _CharT, bool) const [with _CharT = char, _OutIter = test04()::iter_type]'
> 22_locale/num_put/put/char/4.cc:75:   instantiated from here
> /mnt/hd/ahimsa/bld-x86-gcc/i686-pc-linux-gnu/libstdc++-v3/include/bits/locale_facets.tcc:923: error: no
>    matching function for call to `__num_put_output(test04()::iter_type&, const 
>    char*&, int&)'
> 
> Do you see this stuff too?


No, but my compiler is not right at the head of 3.3, just the library.  The
last compiler change is 1/6.  I'm only seeing this:

Running /home/jlquinn/gcc/gcc/libstdc++-v3/testsuite/libstdc++-v3.dg/dg.exp ...
XPASS: 22_locale/ctype_is_wchar_t.cc execution test
FAIL: 22_locale/num_put_members_char.cc (test for excess errors)
WARNING: 22_locale/num_put_members_char.cc compilation failed to produce executable
FAIL: 22_locale/num_put_members_wchar_t.cc (test for excess errors)
WARNING: 22_locale/num_put_members_wchar_t.cc compilation failed to produce executable
FAIL: 26_numerics/c99_classification_macros_c.cc (test for excess errors)
FAIL: 26_numerics/complex_inserters_extractors.cc (test for excess errors)
WARNING: 26_numerics/complex_inserters_extractors.cc compilation failed to produce executable

		=== libstdc++-v3 Summary ===



Jerry



More information about the Libstdc++ mailing list