Ok thanks, i was not aware of -Wconversion flag. Never the less i was wondering that this code was compilable. Because, allocting a negative amount of memory does not make senense. Anyway, thanks for the help. Best regards Martin -------- Original-Nachricht -------- > Datum: Thu, 02 Jul 2009 14:23:00 -0700 > Von: Ian Lance Taylor <iant@xxxxxxxxxx> > An: "Martin Ettl" <ettl.martin@xxxxxx> > CC: gcc-help@xxxxxxxxxxx > Betreff: Re: missing g++ warning about bad allocation > "Martin Ettl" <ettl.martin@xxxxxx> writes: > > > yes i know. This is a rather unusual case. It seems to me that there is > a signed integer variable used for allocation (new[signed integer] and > malloc (signed integer)) in the implementation of gcc/g++... why not using an > unsigned integer and this error can be avoided. But this is just a > thought.... > > Actually, that's a good point. Both malloc and new take unsigned > arguments, and I do get a warning using -Wconversion. -Wconversion is > not included in -Wall because it generates too many false positives for > existing code. > > Ian > > > -------- Original-Nachricht -------- > >> Datum: Thu, 02 Jul 2009 14:02:43 -0700 > >> Von: Ian Lance Taylor <iant@xxxxxxxxxx> > >> An: "Martin Ettl" <ettl.martin@xxxxxx> > >> CC: gcc-help@xxxxxxxxxxx > >> Betreff: Re: missing g++ warning about bad allocation > > > >> "Martin Ettl" <ettl.martin@xxxxxx> writes: > >> > >> > compiling the following code with g++-4.4.0 on Ubuntu Linux (Jaunty): > >> > > >> > > >> > int main() > >> > { > >> > double * d = new double[-100]; > >> > } > >> > > >> > compiles without warning. I used following compilation flags: (-W > -Wall > >> -Wextra -pedantic). > >> > > >> > Exectuting the compiled programm gives: > >> > > >> > ./test > >> > terminate called after throwing an instance of 'std::bad_alloc' > >> > what(): std::bad_alloc > >> > Aborted > >> > > >> > Is there a reason why g++ does not warn about this? > >> > >> I doubt there is an explicit reason that there is no warning. I expect > >> that nobody has ever been moved to add a warning for such an unusual > >> case. gcc also does not warn about malloc(-100). > >> > >> Ian -- Neu: GMX Doppel-FLAT mit Internet-Flatrate + Telefon-Flatrate für nur 19,99 Euro/mtl.!* http://portal.gmx.net/de/go/dsl02