blob: f1540bbe2de8be31e1511797400f7dbdea447b09 [file] [log] [blame]
Anna Zaks37faed92017-03-09 00:01:10 +00001// RUN: %clang_cc1 -triple i386-apple-darwin10 -analyze -analyzer-checker=core.builtin,debug.ExprInspection,unix.cstring -verify %s
2
3struct S {
4 int z;
5};
6
7void clang_analyzer_explain_int(int);
8void clang_analyzer_explain_voidp(void *);
9void clang_analyzer_explain_S(struct S);
10
11int glob;
12
13void 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
21void 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}