Hello, 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.... Best regards Martin -------- 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 -- GRATIS für alle GMX-Mitglieder: Die maxdome Movie-FLAT! Jetzt freischalten unter http://portal.gmx.net/de/go/maxdome01