public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* c++/10158: ice (regression)
@ 2003-03-20 1:56 peter schmid
0 siblings, 0 replies; only message in thread
From: peter schmid @ 2003-03-20 1:56 UTC (permalink / raw)
To: gcc-gnats
>Number: 10158
>Category: c++
>Synopsis: ice (regression)
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: ice-on-legal-code
>Submitter-Id: net
>Arrival-Date: Thu Mar 20 01:56:00 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator: Peter Schmid
>Release: 3.3 20030314 (prerelease)
>Organization:
LBNL
>Environment:
System: Linux linux 2.4.19-4GB #1 Wed Nov 27 00:56:40 UTC 2002 i686 unknown
Architecture: i686
SuSE 8.1
host: i686-pc-linux-gnu
build: i686-pc-linux-gnu
target: i686-pc-linux-gnu
configured with: ../gcc3/gcc/configure --enable-threads=posix
--enable-languages=c,c++,f77,objc --enable-__cxa_atexit
>Description:
The following code r.C, extracted from boost's
libs/random/random_test.cpp cause an ice. gcc 3.2 accept this code
without a problem. I believe this is a regression. gcc 3.3 and 3.4
crash while trying to compile this code.
>How-To-Repeat:
source code r.C
namespace std
{
template<typename _Alloc>
class allocator {};
template<class _CharT>
struct char_traits;
template<typename _CharT, typename _Traits = char_traits<_CharT>,
typename _Alloc = allocator<_CharT> >
class basic_istringstream;
typedef basic_istringstream<char> istringstream;
template<typename _CharT, typename _Traits, typename _Alloc>
class basic_string
{
public:
basic_string(const _CharT* __s, const _Alloc& __a = _Alloc());
};
template <typename _CharT, typename _Traits>
class basic_streambuf {};
template<typename _CharT, typename _Traits>
class basic_istream
{
public:
typedef basic_streambuf<_CharT, _Traits> __streambuf_type;
typedef basic_istream<_CharT, _Traits> __istream_type;
explicit
basic_istream(__streambuf_type* __sb)
{ }
};
template<typename _CharT, typename _Traits, typename _Alloc>
class basic_istringstream : public basic_istream<_CharT, _Traits>
{
public:
typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
public:
explicit
basic_istringstream(const __string_type& __str)
: __istream_type(0)
{ }
};
} // namespace std
template<class UIntType, int n>
class mersenne_twister
{
public:
mersenne_twister() {}
template<class CharT, class Traits>
friend std::basic_istream<CharT,Traits>&
operator>>(std::basic_istream<CharT,Traits>& is, mersenne_twister& mt)
{
mt.i = n;
return is;
}
private:
int i;
};
typedef mersenne_twister<unsigned int,351> mt11213b;
template<class URNG, class ResultType>
void instantiate_urng(const URNG, const ResultType &)
{
URNG urng;
std::istringstream input("hurz");
input >> urng;
}
int main(int, char*[])
{
instantiate_urng(mt11213b(), 0u);
}
gcc 3.3
g++ -v -W -Wall --save-temps r.C
Reading specs from /usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3/specs
Configured with: ../gcc3/gcc/configure --enable-threads=posix --enable-languages=c,c++,f77,objc --enable-__cxa_atexit
Thread model: posix
gcc version 3.3 20030314 (prerelease)
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3/cc1plus -E -D__GNUG__=3 -quiet -v -D__GNUC__=3 -D__GNUC_MINOR__=3 -D__GNUC_PATCHLEVEL__=0 -D_GNU_SOURCE r.C -W -Wall r.ii
ignoring nonexistent directory "NONE/include"
ignoring nonexistent directory "/usr/local/i686-pc-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/local/include/c++/3.3
/usr/local/include/c++/3.3/i686-pc-linux-gnu
/usr/local/include/c++/3.3/backward
/usr/local/include
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3/include
/usr/include
End of search list.
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3/cc1plus -fpreprocessed r.ii -quiet -dumpbase r.C -auxbase r -W -Wall -version -o r.s
GNU C++ version 3.3 20030314 (prerelease) (i686-pc-linux-gnu)
compiled by GNU C version 3.3 20030314 (prerelease).
GGC heuristics: --param ggc-min-expand=47 --param ggc-min-heapsize=31901
r.C: In function `std::basic_istream<CharT, Traits>&
operator>>(std::basic_istream<CharT, Traits>&, mersenne_twister<UIntType,
n>&) [with CharT = char, Traits = std::char_traits<char>, UIntType =
unsigned int, int n = 351]':
r.C:76: instantiated from `void instantiate_urng(URNG, const ResultType&) [with URNG = mersenne_twister<unsigned int, 351>, ResultType = unsigned int]'
r.C:81: instantiated from here
r.C:62: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
gcc 3.2
/usr/bin/g++ -v -W -Wall --save-temps r.C
Reading specs from /usr/lib/gcc-lib/i486-suse-linux/3.2/specs
Configured with: ../configure --enable-threads=posix --prefix=/usr --with-local-prefix=/usr/local --infodir=/usr/share/info --mandir=/usr/share/man --libdir=/usr/lib --enable-languages=c,c++,f77,objc,java,ada --enable-libgcj --with-gxx-include-dir=/usr/include/g++ --with-slibdir=/lib --with-system-zlib --enable-shared --enable-__cxa_atexit i486-suse-linux
Thread model: posix
gcc version 3.2
/usr/lib/gcc-lib/i486-suse-linux/3.2/cpp0 -lang-c++ -D__GNUG__=3 -D__DEPRECATED -D__EXCEPTIONS -v -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=0 -D__GXX_ABI_VERSION=102 -D__ELF__ -Dunix -D__gnu_linux__ -Dlinux -D__ELF__ -D__unix__ -D__gnu_linux__ -D__linux__ -D__unix -D__linux -Asystem=posix -D__NO_INLINE__ -D__STDC_HOSTED__=1 -D_GNU_SOURCE -Acpu=i386 -Amachine=i386 -Di386 -D__i386 -D__i386__ -D__tune_i486__ r.C -W -Wall r.ii
GNU CPP version 3.2 (cpplib) (i386 Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
/usr/include/g++
/usr/include/g++/i486-suse-linux
/usr/include/g++/backward
/usr/local/include
/usr/lib/gcc-lib/i486-suse-linux/3.2/include
/usr/i486-suse-linux/include
/usr/include
End of search list.
/usr/lib/gcc-lib/i486-suse-linux/3.2/cc1plus -fpreprocessed r.ii -quiet -dumpbase r.C -W -Wall -version -o r.s
GNU CPP version 3.2 (cpplib) (i386 Linux/ELF)
GNU C++ version 3.2 (i486-suse-linux)
compiled by GNU C version 3.2.
r.C: In member function `std::basic_istream<_CharT,
_Traits>::basic_istream(std::basic_streambuf<_CharT, _Traits>*) [with _CharT
= char, _Traits = std::char_traits<char>]':
r.C:34: instantiated from `std::basic_istream<_CharT, _Traits>::basic_istream(std::basic_streambuf<_CharT, _Traits>*) [with _CharT = char, _Traits = std::char_traits<char>]'
r.C:47: instantiated from `std::basic_istringstream<_CharT, _Traits, _Alloc>::basic_istringstream(const std::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>]'
r.C:75: instantiated from `void instantiate_urng(URNG, const ResultType&) [with URNG = mersenne_twister<unsigned int, 351>, ResultType = unsigned int]'
r.C:81: instantiated from here
r.C:34: warning: unused parameter `std::basic_streambuf<char,
std::char_traits<char> >*__sb'
/usr/lib/gcc-lib/i486-suse-linux/3.2/../../../../i486-suse-linux/bin/as -V -Qy -o r.o r.s
GNU assembler version 2.12.90.0.15 (i486-suse-linux) using BFD version 2.12.90.0.15 20020717 (SuSE)
/usr/lib/gcc-lib/i486-suse-linux/3.2/collect2 --eh-frame-hdr -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 /usr/lib/gcc-lib/i486-suse-linux/3.2/../../../crt1.o /usr/lib/gcc-lib/i486-suse-linux/3.2/../../../crti.o /usr/lib/gcc-lib/i486-suse-linux/3.2/crtbegin.o -L/usr/lib/gcc-lib/i486-suse-linux/3.2 -L/usr/lib/gcc-lib/i486-suse-linux/3.2/../../../../i486-suse-linux/lib -L/usr/lib/gcc-lib/i486-suse-linux/3.2/../../.. r.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc-lib/i486-suse-linux/3.2/crtend.o /usr/lib/gcc-lib/i486-suse-linux/3.2/../../../crtn.o
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2003-03-20 1:56 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-03-20 1:56 c++/10158: ice (regression) peter schmid
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).