Martin, would you suggest that there should be a check after malloc and
throw bad_alloc?

> -----Original Message-----
> From: Martin Sebor [mailto:[EMAIL PROTECTED] On Behalf Of Martin Sebor
> Sent: Thursday, March 20, 2008 12:02 PM
> To: [email protected]
> Subject: Re: [TESTCASE] STDCXX-750 [HP aCC 6.16] Potential null
pointer
> dereference in aliases.cpp
> 
> I was going to say this is the same bug as STDCXX-764:
>    http://issues.apache.org/jira/browse/STDCXX-764
> but after looking at it more closely I believe the compiler
> is correct in this case because malloc() returns 0 when it
> fails to allocate memory. The warning could be clearer about
> it.
> 
> Martin
> 
> Scott Zhong wrote:
> > cat /build/scottz/t2.cpp && aCC -V && aCC -c  +w
/build/scottz/t2.cpp
> > #include <cstdlib>
> >
> > int main()
> > {
> >   static char * test = 0;
> >   if (!test) {
> >      test = (char *)std::malloc (12345);
> >      *test = '\0';
> >   }
> >
> >   return 0;
> > }
> > aCC: HP C/aC++ B3910B A.06.16 [Nov 26 2007]
> > "/build/scottz/t2.cpp", line 8, procedure main: warning #20200-D:
> > Potential
> >           null pointer dereference through test is detected (null
> >           definition:/build/scottz/t2.cpp, line 7)
> >
> > this test case shows that the warning is bogus because the pointer
> > "test" is pointing to a valid location in memory after std::malloc
is
> > performed.
> >

Reply via email to