brintos

brintos / llvm-project-archived public Read only

0
0
Text · 884 B · f380bd0 Raw
39 lines · cpp
1// RUN: %clang_analyze_cc1 -std=c++2b -verify %s \2// RUN:   -analyzer-checker=core,debug.ExprInspection3 4template <typename T> void clang_analyzer_dump(T);5 6struct Adder {7  int data;8  static int operator()(int x, int y) {9    clang_analyzer_dump(x); // expected-warning {{1}}10    clang_analyzer_dump(y); // expected-warning {{2}}11    return x + y;12  }13};14 15void static_operator_call_inlines() {16  Adder s{10};17  clang_analyzer_dump(s(1, 2)); // expected-warning {{3}}18}19 20struct DataWithCtor {21  int x;22  int y;23  DataWithCtor(int parm) : x(parm + 10), y(parm + 20) {24    clang_analyzer_dump(this); // expected-warning {{&v}}25  }26};27 28struct StaticSubscript {29  static void operator[](DataWithCtor v) {30    clang_analyzer_dump(v.x); // expected-warning {{20}}31    clang_analyzer_dump(v.y); // expected-warning {{30}}32  }33};34 35void top() {36  StaticSubscript s;37  s[DataWithCtor{10}];38}39