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