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 > > 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. >