1*8b2a39e9SArtem Dergachev // RUN: %clang_analyze_cc1 -analyzer-checker=core,debug.ExprInspection -verify %s 2*8b2a39e9SArtem Dergachev 3*8b2a39e9SArtem Dergachev int x = 1; 4*8b2a39e9SArtem Dergachev 5*8b2a39e9SArtem Dergachev struct { 6*8b2a39e9SArtem Dergachev int a, b; 7*8b2a39e9SArtem Dergachev } s = {2, 3}; 8*8b2a39e9SArtem Dergachev 9*8b2a39e9SArtem Dergachev int arr[] = {4, 5, 6}; 10*8b2a39e9SArtem Dergachev 11*8b2a39e9SArtem Dergachev void clang_analyzer_eval(int); 12*8b2a39e9SArtem Dergachev main()13*8b2a39e9SArtem Dergachevint main() { 14*8b2a39e9SArtem Dergachev // Do not trust global initializers in C++. 15*8b2a39e9SArtem Dergachev clang_analyzer_eval(x == 1); // expected-warning{{TRUE}} // expected-warning{{FALSE}} 16*8b2a39e9SArtem Dergachev clang_analyzer_eval(s.a == 2); // expected-warning{{TRUE}} // expected-warning{{FALSE}} 17*8b2a39e9SArtem Dergachev clang_analyzer_eval(s.b == 3); // expected-warning{{TRUE}} // expected-warning{{FALSE}} 18*8b2a39e9SArtem Dergachev clang_analyzer_eval(arr[0] == 4); // expected-warning{{TRUE}} // expected-warning{{FALSE}} 19*8b2a39e9SArtem Dergachev clang_analyzer_eval(arr[1] == 5); // expected-warning{{TRUE}} // expected-warning{{FALSE}} 20*8b2a39e9SArtem Dergachev clang_analyzer_eval(arr[2] == 6); // expected-warning{{TRUE}} // expected-warning{{FALSE}} 21*8b2a39e9SArtem Dergachev return 0; 22*8b2a39e9SArtem Dergachev } 23