2017-03-04 02:02:02 +08:00
|
|
|
// RUN: %clang_analyze_cc1 -analyzer-checker=core,unix.Malloc -Wno-incompatible-library-redeclaration -verify %s
|
2016-10-17 06:19:03 +08:00
|
|
|
|
2018-01-22 15:44:38 +08:00
|
|
|
// Various tests to make the analyzer is robust against custom
|
2016-10-17 06:19:03 +08:00
|
|
|
// redeclarations of memory routines.
|
|
|
|
//
|
|
|
|
// You wouldn't expect to see much of this in normal code, but, for example,
|
|
|
|
// CMake tests can generate these.
|
|
|
|
|
|
|
|
// expected-no-diagnostics
|
|
|
|
|
|
|
|
char alloca();
|
|
|
|
char malloc();
|
|
|
|
char realloc();
|
|
|
|
char kmalloc();
|
|
|
|
char valloc();
|
|
|
|
char calloc();
|
|
|
|
|
|
|
|
char free();
|
|
|
|
char kfree();
|
|
|
|
|
|
|
|
void testCustomArgumentlessAllocation() {
|
|
|
|
alloca(); // no-crash
|
|
|
|
malloc(); // no-crash
|
|
|
|
realloc(); // no-crash
|
|
|
|
kmalloc(); // no-crash
|
|
|
|
valloc(); // no-crash
|
|
|
|
calloc(); // no-crash
|
|
|
|
|
|
|
|
free(); // no-crash
|
|
|
|
kfree(); // no-crash
|
|
|
|
}
|
|
|
|
|