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