[clang] bb3091a - [clang][Interp][test] Move explicit object parameter test to cxx23.cpp
Timm Bäder via cfe-commits
cfe-commits at lists.llvm.org
Fri Jun 14 22:46:35 PDT 2024
Author: Timm Bäder
Date: 2024-06-15T07:46:03+02:00
New Revision: bb3091a6f3fb2b983fc3e0f539ff1d979ea470ac
URL: https://github.com/llvm/llvm-project/commit/bb3091a6f3fb2b983fc3e0f539ff1d979ea470ac
DIFF: https://github.com/llvm/llvm-project/commit/bb3091a6f3fb2b983fc3e0f539ff1d979ea470ac.diff
LOG: [clang][Interp][test] Move explicit object parameter test to cxx23.cpp
It needs C++2b.
Added:
Modified:
clang/test/AST/Interp/cxx23.cpp
clang/test/AST/Interp/lambda.cpp
Removed:
################################################################################
diff --git a/clang/test/AST/Interp/cxx23.cpp b/clang/test/AST/Interp/cxx23.cpp
index d0991f3ffdff5..b36299c3f8aee 100644
--- a/clang/test/AST/Interp/cxx23.cpp
+++ b/clang/test/AST/Interp/cxx23.cpp
@@ -212,3 +212,14 @@ namespace VoidCast {
static_assert(q == nullptr); // ref-error {{not an integral constant expression}} \
// ref-note {{initializer of 'q' is not a constant expression}}
}
+
+namespace ExplicitLambdaInstancePointer {
+ struct C {
+ constexpr C(auto) { }
+ };
+ void foo() {
+ constexpr auto b = [](this C) { return 1; }; // all20-error {{explicit object parameters are incompatible with C++ standards before C++2b}}
+ constexpr int (*fp)(C) = b;
+ static_assert(fp(1) == 1, "");
+ }
+}
diff --git a/clang/test/AST/Interp/lambda.cpp b/clang/test/AST/Interp/lambda.cpp
index c4fce283ec45a..0eb12643b1b7f 100644
--- a/clang/test/AST/Interp/lambda.cpp
+++ b/clang/test/AST/Interp/lambda.cpp
@@ -280,14 +280,3 @@ namespace InvalidCapture {
} ();
}
}
-
-namespace ExplicitInstancePointer {
- struct C {
- constexpr C(auto) { }
- };
- void foo() {
- constexpr auto b = [](this C) { return 1; };
- constexpr int (*fp)(C) = b;
- static_assert(fp(1) == 1, "");
- }
-}
More information about the cfe-commits
mailing list