// RUN: %clang_analyze_cc1 -std=c++2b -verify %s \ // RUN: -analyzer-checker=core,debug.ExprInspection template void clang_analyzer_dump(T); struct Adder { int data; static int operator()(int x, int y) { clang_analyzer_dump(x); // expected-warning {{1}} clang_analyzer_dump(y); // expected-warning {{2}} return x + y; } }; void static_operator_call_inlines() { Adder s{10}; clang_analyzer_dump(s(1, 2)); // expected-warning {{3}} } struct DataWithCtor { int x; int y; DataWithCtor(int parm) : x(parm + 10), y(parm + 20) { clang_analyzer_dump(this); // expected-warning {{&v}} } }; struct StaticSubscript { static void operator[](DataWithCtor v) { clang_analyzer_dump(v.x); // expected-warning {{20}} clang_analyzer_dump(v.y); // expected-warning {{30}} } }; void top() { StaticSubscript s; s[DataWithCtor{10}]; }