From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mark Mitchell To: Joe Buck Cc: egcs@cygnus.com (egcs team) Subject: internal compiler error in C++ front end Date: Mon, 29 Sep 1997 09:56:00 -0000 Message-id: <199709290956.JAA01032@quickstep.stanford.edu> References: <199709282248.PAA07344@atrus.synopsys.com> X-SW-Source: 1997-09/msg01105.html >>>>> "Joe" == Joe Buck writes: Joe> The following program blows up egcs (every version since at Joe> least 970910 through the present version): Joe> #include vector v(3,5); Joe> I've verified that the crash occurs on both Linux and Joe> Solaris/sparc. I'll take a look at this in the next few days. Joe> The message is Joe> /usr/local/egcs/include/g++/vector.h:103: Internal compiler Joe> error 97. /usr/local/egcs/include/g++/vector.h:103: Please Joe> submit a full bug report to `egcs-bugs@cygnus.com'. Joe> vector v(5, 3.0); Joe> works fine. Joe> vector v(3.0, 5); Joe> is quietly accepted, but seems bogus. I suppose the compiler Joe> can assume InputIterator == double, but this seems strange. Joe> does not crash, but Joe> vector v(3, 5); Joe> does: so does the illegal vector v(3.0, 3.0); Joe> It seems that there is some confusion between Joe> vector(size_type,const T&) and the template member Joe> vector(Iterator,Iterator). The odd thing is that for Joe> vector(32,3) the second seems in some ways a better Joe> match, but STL is banking on the first one being chosen! (to Joe> get a vector of 32 elements with value 3). Joe> While it's likely that this particular case would not have Joe> been caught, this does suggest that the libstdc++ tests are Joe> too weak; tvector does not try out even 1/10 of the vector Joe> class functionality. Tests that at least call each method of Joe> vector (and the other STL classes) at least once would be a Joe> great help. (Perhaps others already have something: the Joe> ObjectSpace free tests seem too weak). -- Mark Mitchell mmitchell@usa.net Stanford University http://www.stanford.edu