[clang] 0e93b6b - [clang][Interp][NFC] Add more tests for if expressions
Timm Bäder via cfe-commits
cfe-commits at lists.llvm.org
Fri Oct 14 01:22:16 PDT 2022
Author: Timm Bäder
Date: 2022-10-14T10:21:53+02:00
New Revision: 0e93b6bd51a0f002e37e76d6efa8e71dde6d3e5f
URL: https://github.com/llvm/llvm-project/commit/0e93b6bd51a0f002e37e76d6efa8e71dde6d3e5f
DIFF: https://github.com/llvm/llvm-project/commit/0e93b6bd51a0f002e37e76d6efa8e71dde6d3e5f.diff
LOG: [clang][Interp][NFC] Add more tests for if expressions
Rename the old if_consteval.cpp to just if.cpp and add tests for the
if declaration.
Added:
clang/test/AST/Interp/if.cpp
Modified:
Removed:
clang/test/AST/Interp/if_consteval.cpp
################################################################################
diff --git a/clang/test/AST/Interp/if.cpp b/clang/test/AST/Interp/if.cpp
new file mode 100644
index 0000000000000..5d35868cd00ec
--- /dev/null
+++ b/clang/test/AST/Interp/if.cpp
@@ -0,0 +1,46 @@
+// RUN: %clang_cc1 -std=c++2b -fsyntax-only -fexperimental-new-constant-interpreter %s -verify
+// RUN: %clang_cc1 -std=c++2b -fsyntax-only %s -verify=ref
+
+// expected-no-diagnostics
+// ref-no-diagnostics
+
+namespace ConstEval {
+ constexpr int f() {
+ int i = 0;
+ if consteval {
+ i = 1;
+ }
+ return i;
+ }
+ static_assert(f() == 1, "");
+
+ constexpr int f2() {
+ int i = 0;
+ if !consteval {
+ i = 12;
+ if consteval {
+ i = i + 1;
+ }
+ }
+ return i;
+ }
+ static_assert(f2() == 0, "");
+};
+
+namespace InitDecl {
+ constexpr bool f() {
+ if (int i = 5; i != 10) {
+ return true;
+ }
+ return false;
+ }
+ static_assert(f(), "");
+
+ constexpr bool f2() {
+ if (bool b = false; b) {
+ return true;
+ }
+ return false;
+ }
+ static_assert(!f2(), "");
+};
diff --git a/clang/test/AST/Interp/if_consteval.cpp b/clang/test/AST/Interp/if_consteval.cpp
deleted file mode 100644
index 1a3ff9b91d720..0000000000000
--- a/clang/test/AST/Interp/if_consteval.cpp
+++ /dev/null
@@ -1,28 +0,0 @@
-// RUN: %clang_cc1 -std=c++2b -fsyntax-only -fexperimental-new-constant-interpreter %s -verify
-// RUN: %clang_cc1 -std=c++2b -fsyntax-only %s -verify
-// expected-no-diagnostics
-
-constexpr void f() {
- int i = 0;
- if consteval {
- i = 1;
- }
- else {
- i = 2;
- }
-
- if consteval {
- i = 1;
- }
-
- if !consteval {
- i = 1;
- }
-
- if !consteval {
- i = 1;
- }
- else {
- i = 1;
- }
-}
More information about the cfe-commits
mailing list