blob: c1d6361f1245bd6afa0fcfdb051a093ce87a8c02 [file] [log] [blame]
Rafael Stahl0137aa82018-05-29 14:14:22 +00001// RUN: %clang_cc1 -triple i386-apple-darwin10 -analyze -analyzer-checker=core.builtin,debug.ExprInspection -verify %s
2
3void clang_analyzer_eval(int);
Alexander Kornienko48fcfc32018-05-09 12:27:21 +00004
5void initbug() {
6 const union { float a; } u = {};
7 (void)u.a; // no-crash
8}
Rafael Stahl0137aa82018-05-29 14:14:22 +00009
10int const parr[2] = {1};
11void constarr() {
12 int i = 2;
13 clang_analyzer_eval(parr[i]); // expected-warning{{UNDEFINED}}
14 i = 1;
15 clang_analyzer_eval(parr[i] == 0); // expected-warning{{TRUE}}
16 i = -1;
17 clang_analyzer_eval(parr[i]); // expected-warning{{UNDEFINED}}
18}
19
20struct SM {
21 int a;
22 int b;
23};
24const struct SM sm = {.a = 1};
25void multinit() {
26 clang_analyzer_eval(sm.a == 1); // expected-warning{{TRUE}}
27 clang_analyzer_eval(sm.b == 0); // expected-warning{{TRUE}}
28}