[clang] [analyzer] Support C++23 static operator calls (PR #84972)
via cfe-commits
cfe-commits at lists.llvm.org
Wed Mar 13 01:13:38 PDT 2024
================
@@ -0,0 +1,36 @@
+// RUN: %clang_analyze_cc1 -std=c++2b -verify %s \
+// RUN: -analyzer-checker=core,debug.ExprInspection
+
+template <typename T> 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 v) : x(v + 10), y(v + 20) {}
----------------
tomasz-kaminski-sonarsource wrote:
Could we also dump `this` this to confirm that it is param var regions for `operator[]` and we trigger copy elsion?
https://github.com/llvm/llvm-project/pull/84972
More information about the cfe-commits
mailing list