1cdc3a89d5de90b2299c56f4a46c3de590c5184d1Ted Kremenek// RUN: %clang_cc1 -analyze -analyzer-checker=core,alpha.core %s -analyzer-store=region -verify
25c456fe4d354dab9e8a1309aefe828ea7b6d6f26Ted Kremenek
35c456fe4d354dab9e8a1309aefe828ea7b6d6f26Ted Kremenekunsigned foo();
45c456fe4d354dab9e8a1309aefe828ea7b6d6f26Ted Kremenektypedef struct bf { unsigned x:2; } bf;
55c456fe4d354dab9e8a1309aefe828ea7b6d6f26Ted Kremenekvoid bar() {
65c456fe4d354dab9e8a1309aefe828ea7b6d6f26Ted Kremenek  bf y;
75c456fe4d354dab9e8a1309aefe828ea7b6d6f26Ted Kremenek  *(unsigned*)&y = foo();
85c456fe4d354dab9e8a1309aefe828ea7b6d6f26Ted Kremenek  y.x = 1;
95c456fe4d354dab9e8a1309aefe828ea7b6d6f26Ted Kremenek}
105414a5c0add7a7a9343a1be0bda962ce8dc35449Zhongxing Xu
115414a5c0add7a7a9343a1be0bda962ce8dc35449Zhongxing Xustruct s {
125414a5c0add7a7a9343a1be0bda962ce8dc35449Zhongxing Xu  int n;
135414a5c0add7a7a9343a1be0bda962ce8dc35449Zhongxing Xu};
145414a5c0add7a7a9343a1be0bda962ce8dc35449Zhongxing Xu
155414a5c0add7a7a9343a1be0bda962ce8dc35449Zhongxing Xuvoid f() {
165414a5c0add7a7a9343a1be0bda962ce8dc35449Zhongxing Xu  struct s a;
175414a5c0add7a7a9343a1be0bda962ce8dc35449Zhongxing Xu  int *p = &(a.n) + 1;
185414a5c0add7a7a9343a1be0bda962ce8dc35449Zhongxing Xu}
19c2e20d0c42cf085940c9a9cb495a7116d1b0eb07Argyrios Kyrtzidis
20c2e20d0c42cf085940c9a9cb495a7116d1b0eb07Argyrios Kyrtzidistypedef struct {
21c2e20d0c42cf085940c9a9cb495a7116d1b0eb07Argyrios Kyrtzidis  int x,y;
22c2e20d0c42cf085940c9a9cb495a7116d1b0eb07Argyrios Kyrtzidis} Point;
23c2e20d0c42cf085940c9a9cb495a7116d1b0eb07Argyrios Kyrtzidis
24c2e20d0c42cf085940c9a9cb495a7116d1b0eb07Argyrios KyrtzidisPoint getit(void);
25c2e20d0c42cf085940c9a9cb495a7116d1b0eb07Argyrios Kyrtzidisvoid test() {
26c2e20d0c42cf085940c9a9cb495a7116d1b0eb07Argyrios Kyrtzidis  Point p;
27c2e20d0c42cf085940c9a9cb495a7116d1b0eb07Argyrios Kyrtzidis  (void)(p = getit()).x;
28c2e20d0c42cf085940c9a9cb495a7116d1b0eb07Argyrios Kyrtzidis}
29