Re: missing g++ warning about bad allocation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



"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

[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux