Jordy Rose | 43d9f0d | 2012-05-16 16:01:10 +0000 | [diff] [blame] | 1 | // RUN: %clang_cc1 -analyze -analyzer-checker=core,debug.ExprInspection -analyzer-ipa=inlining -analyzer-store region -verify %s |
Argyrios Kyrtzidis | b76fdf6 | 2011-02-19 01:08:37 +0000 | [diff] [blame] | 2 | // XFAIL: * |
Zhongxing Xu | 7ce351d | 2010-11-01 09:09:44 +0000 | [diff] [blame] | 3 | |
Jordy Rose | 43d9f0d | 2012-05-16 16:01:10 +0000 | [diff] [blame] | 4 | void clang_analyzer_eval(bool); |
| 5 | |
Zhongxing Xu | 40ab43b | 2010-04-20 05:48:57 +0000 | [diff] [blame] | 6 | struct A { |
| 7 | int x; |
| 8 | A(int a) { x = a; } |
Zhongxing Xu | 3230302 | 2010-11-24 13:48:50 +0000 | [diff] [blame] | 9 | int getx() const { return x; } |
Zhongxing Xu | 40ab43b | 2010-04-20 05:48:57 +0000 | [diff] [blame] | 10 | }; |
| 11 | |
| 12 | void f1() { |
| 13 | A x(3); |
Jordy Rose | 43d9f0d | 2012-05-16 16:01:10 +0000 | [diff] [blame] | 14 | clang_analyzer_eval(x.getx() == 3); // expected-warning{{TRUE}} |
Zhongxing Xu | 40ab43b | 2010-04-20 05:48:57 +0000 | [diff] [blame] | 15 | } |
| 16 | |
Zhongxing Xu | 0e38d5d | 2010-11-25 03:18:57 +0000 | [diff] [blame] | 17 | void f2() { |
| 18 | const A &x = A(3); |
Jordy Rose | 43d9f0d | 2012-05-16 16:01:10 +0000 | [diff] [blame] | 19 | clang_analyzer_eval(x.getx() == 3); // expected-warning{{TRUE}} |
Zhongxing Xu | 0e38d5d | 2010-11-25 03:18:57 +0000 | [diff] [blame] | 20 | } |
| 21 | |
Argyrios Kyrtzidis | b76fdf6 | 2011-02-19 01:08:37 +0000 | [diff] [blame] | 22 | void f3() { |
| 23 | const A &x = (A)3; |
Jordy Rose | 43d9f0d | 2012-05-16 16:01:10 +0000 | [diff] [blame] | 24 | clang_analyzer_eval(x.getx() == 3); // expected-warning{{TRUE}} |
Argyrios Kyrtzidis | b76fdf6 | 2011-02-19 01:08:37 +0000 | [diff] [blame] | 25 | } |