Anna Zaks | 37faed9 | 2017-03-09 00:01:10 +0000 | [diff] [blame^] | 1 | // RUN: %clang_cc1 -triple i386-apple-darwin10 -analyze -analyzer-checker=core.builtin,debug.ExprInspection,unix.cstring -verify %s |
| 2 | |
| 3 | struct S { |
| 4 | int z; |
| 5 | }; |
| 6 | |
| 7 | void clang_analyzer_explain_int(int); |
| 8 | void clang_analyzer_explain_voidp(void *); |
| 9 | void clang_analyzer_explain_S(struct S); |
| 10 | |
| 11 | int glob; |
| 12 | |
| 13 | void test_1(int param, void *ptr) { |
| 14 | clang_analyzer_explain_voidp(&glob); // expected-warning-re{{{{^pointer to global variable 'glob'$}}}} |
| 15 | clang_analyzer_explain_int(param); // expected-warning-re{{{{^argument 'param'$}}}} |
| 16 | clang_analyzer_explain_voidp(ptr); // expected-warning-re{{{{^argument 'ptr'$}}}} |
| 17 | if (param == 42) |
| 18 | clang_analyzer_explain_int(param); // expected-warning-re{{{{^signed 32-bit integer '42'$}}}} |
| 19 | } |
| 20 | |
| 21 | void test_2(struct S s) { |
| 22 | clang_analyzer_explain_S(s); //expected-warning-re{{{{^lazily frozen compound value of parameter 's'$}}}} |
| 23 | clang_analyzer_explain_voidp(&s); // expected-warning-re{{{{^pointer to parameter 's'$}}}} |
| 24 | clang_analyzer_explain_int(s.z); // expected-warning-re{{{{^initial value of field 'z' of parameter 's'$}}}} |
| 25 | } |