// RUN: %clang_analyze_cc1 -analyzer-checker=core,apiModeling.TrustReturnsNonnull -verify %s | |
int *foo() __attribute__((returns_nonnull)); | |
int *foo_no_attribute(); | |
int test_foo() { | |
int *x = foo(); | |
if (x) {} | |
return *x; // no-warning | |
} | |
int test_foo_no_attribute() { | |
int *x = foo_no_attribute(); | |
if (x) {} | |
return *x; // expected-warning{{Dereference of null pointer}} | |
} | |
void test(void *(*f)(void)) { | |
f(); // Shouldn't crash compiler | |
} |