annotate clang/test/Analysis/PR37855.c @ 150:1d019706d866

LLVM10
author anatofuz
date Thu, 13 Feb 2020 15:10:13 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 // RUN: %clang_cc1 -analyze -analyzer-checker=core -w -DNO_CROSSCHECK -verify %s
anatofuz
parents:
diff changeset
2 // RUN: %clang_cc1 -analyze -analyzer-checker=core -w -analyzer-config crosscheck-with-z3=true -verify %s
anatofuz
parents:
diff changeset
3 // REQUIRES: z3
anatofuz
parents:
diff changeset
4
anatofuz
parents:
diff changeset
5 typedef struct o p;
anatofuz
parents:
diff changeset
6 struct o {
anatofuz
parents:
diff changeset
7 struct {
anatofuz
parents:
diff changeset
8 } s;
anatofuz
parents:
diff changeset
9 };
anatofuz
parents:
diff changeset
10
anatofuz
parents:
diff changeset
11 void q(*r, p2) { r < p2; }
anatofuz
parents:
diff changeset
12
anatofuz
parents:
diff changeset
13 void k(l, node) {
anatofuz
parents:
diff changeset
14 struct {
anatofuz
parents:
diff changeset
15 p *node;
anatofuz
parents:
diff changeset
16 } * n, *nodep, path[sizeof(void)];
anatofuz
parents:
diff changeset
17 path->node = l;
anatofuz
parents:
diff changeset
18 for (n = path; node != l;) {
anatofuz
parents:
diff changeset
19 q(node, n->node);
anatofuz
parents:
diff changeset
20 nodep = n;
anatofuz
parents:
diff changeset
21 }
anatofuz
parents:
diff changeset
22 if (nodep) // expected-warning {{Branch condition evaluates to a garbage value}}
anatofuz
parents:
diff changeset
23 n[1].node->s;
anatofuz
parents:
diff changeset
24 }