This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: GCC 3.2 Prerelease
On Tue, Aug 06, 2002 at 12:24:32PM -0700, H. J. Lu wrote:
> On Tue, Aug 06, 2002 at 11:37:00AM -0700, Joe Buck wrote:
> >
> > FAIL: 22_locale/ctype_narrow_wchar_t.cc execution test
>
> I got
>
> Program received signal SIGSEGV, Segmentation fault.
> 0x4018940f in __wmemcpy (s1=0x40227048, s2=0xeff69520, n=100894740)
> at wmemcpy.c:30
> 30 return (wchar_t *) memcpy ((char *) s1, (char *) s2, n * sizeof
> (wchar_t));
> (gdb) bt
> #0 0x4018940f in __wmemcpy (s1=0x40227048, s2=0xeff69520, n=100894740)
> at wmemcpy.c:30
> #1 0x4009f761 in std::basic_string<wchar_t, std::char_traits<wchar_t>,
> std::all
> ocator<wchar_t> >::_M_mutate(unsigned, unsigned, unsigned) (this=0xbffff690,
> __pos=7, __len1=3221222784, __len2=6)
> at
> /export/build/gnu/gcc/build-i686-rearden-linux/i686-pc-linux-gnu/libstdc+
> +-v3/include/bits/char_traits.h:220
> #2 0x400a389a in std::basic_string<wchar_t, std::char_traits<wchar_t>,
> std::all
> ocator<wchar_t> >& std::basic_string<wchar_t, std::char_traits<wchar_t>,
> std::al
> locator<wchar_t> >::_M_replace_safe<wchar_t
> const*>(__gnu_cxx::__normal_iterator
> <wchar_t*, std::basic_string<wchar_t, std::char_traits<wchar_t>,
> std::allocator<
> wchar_t> > >, __gnu_cxx::__normal_iterator<wchar_t*, std::basic_string<wchar_t,
> std::char_traits<wchar_t>, std::allocator<wchar_t> > >, wchar_t const*,
> __gnu_cx
> x::__normal_iterator<wchar_t*, std::basic_string<wchar_t,
> std::char_traits<wchar
> _t>, std::allocator<wchar_t> > >) (this=0xbffff690, __k1=0x80498c4,
> __k2=0x80498dc)
> at
> /export/build/gnu/gcc/build-i686-rearden-linux/i686-pc-linux-gnu/libstdc+
> +-v3/include/bits/basic_string.tcc:533
> #3 0x400a10e7 in std::basic_string<wchar_t, std::char_traits<wchar_t>,
> std::all
> ocator<wchar_t> >::append(wchar_t const*, unsigned) (this=0x7, __s=0x80498c4,
> __n=6)
> at
> /export/build/gnu/gcc/build-i686-rearden-linux/i686-pc-linux-gnu/libstdc+
> +-v3/include/bits/basic_string.tcc:596
> #4 0x400a0e65 in std::basic_string<wchar_t, std::char_traits<wchar_t>,
> std::all
> ocator<wchar_t> >::operator+=(wchar_t const*) (this=0x6038814, __s=0x6)
> at
> /export/build/gnu/gcc/build-i686-rearden-linux/i686-pc-linux-gnu/libstdc+
> +-v3/include/bits/char_traits.h:208
> #5 0x08049085 in test02() ()
> at
> /home/hjl/work/gnu/src/gcc-3.2/gcc/libstdc++-v3/testsuite/22_locale/ctype
> _narrow_wchar_t.cc:79
> #6 0x08049376 in main ()
> at
> /home/hjl/work/gnu/src/gcc-3.2/gcc/libstdc++-v3/testsuite/22_locale/ctype
> _narrow_wchar_t.cc:104
> #7 0x40124b88 in __libc_start_main (main=0x804935c <main>, argc=1,
> ---Type <return> to continue, or q <return> to quit---
> ubp_av=0xbffff754, init=0x804894c <_init>, fini=0x8049790 <_fini>,
> rtld_fini=0x4000ba94 <_dl_fini>, stack_end=0xbffff74c)
> at ../sysdeps/generic/libc-start.c:129
> (gdb) p s1
> $1 = (wchar_t *) 0x40227048
> (gdb) p *s1
> $2 = 0
> (gdb) p s2
> $3 = (wchar_t *) 0xeff69520
> (gdb) p *s2
> Cannot access memory at address 0xeff69520
>
> It may be a compiler/library bug.
It may be a bug in gcc 3.3 since it fails with libstdc++ from gcc 3.3
and passes with libstdc++ from gcc 3.2.
H.J.