operator-calls.cpp revision fdaa33818cf9bad8d092136e73bd2e489cb821ba
1// RUN: %clang_cc1 -analyze -analyzer-checker=core,experimental.core,debug.ExprInspection -verify %s 2void clang_analyzer_eval(bool); 3 4struct X0 { }; 5bool operator==(const X0&, const X0&); 6 7// PR7287 8struct test { int a[2]; }; 9 10void t2() { 11 test p = {{1,2}}; 12 test q; 13 q = p; 14} 15 16bool PR7287(X0 a, X0 b) { 17 return operator==(a, b); 18} 19 20 21// Inlining non-static member operators mistakenly treated 'this' as the first 22// argument for a while. 23 24struct IntComparable { 25 bool operator==(int x) const { 26 return x == 0; 27 } 28}; 29 30void testMemberOperator(IntComparable B) { 31 // FIXME: Change this to TRUE when we re-enable inlining. 32 clang_analyzer_eval(B == 0); // expected-warning{{UNKNOWN}} 33} 34