1 | // RUN: %clang_analyze_cc1 -analyzer-checker=core,unix.Malloc -Wno-incompatible-library-redeclaration -verify %s |
2 | |
3 | // Various tests to make the analyzer is robust against custom |
4 | // redeclarations of memory routines. |
5 | // |
6 | // You wouldn't expect to see much of this in normal code, but, for example, |
7 | // CMake tests can generate these. |
8 | |
9 | // expected-no-diagnostics |
10 | |
11 | char alloca(); |
12 | char malloc(); |
13 | char realloc(); |
14 | char kmalloc(); |
15 | char valloc(); |
16 | char calloc(); |
17 | |
18 | char free(); |
19 | char kfree(); |
20 | |
21 | void testCustomArgumentlessAllocation() { |
22 | alloca(); // no-crash |
23 | malloc(); // no-crash |
24 | realloc(); // no-crash |
25 | kmalloc(); // no-crash |
26 | valloc(); // no-crash |
27 | calloc(); // no-crash |
28 | |
29 | free(); // no-crash |
30 | kfree(); // no-crash |
31 | } |
32 | |
33 | |