From a0e1e680d28c4ef5f87be948d1d223fbfda2950c Mon Sep 17 00:00:00 2001 From: Timm Baeder Date: Mon, 31 Mar 2025 18:53:12 +0200 Subject: [clang][bytecode] Return Invalid() on non-constexpr builtins (#133700) So the diagnostic output matches with the current interpreter --- clang/test/AST/ByteCode/builtin-functions.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'clang/test/AST/ByteCode/builtin-functions.cpp') diff --git a/clang/test/AST/ByteCode/builtin-functions.cpp b/clang/test/AST/ByteCode/builtin-functions.cpp index 8408286..40f7a18 100644 --- a/clang/test/AST/ByteCode/builtin-functions.cpp +++ b/clang/test/AST/ByteCode/builtin-functions.cpp @@ -1591,3 +1591,12 @@ namespace WMemChr { constexpr bool c = !wcschr(L"hello", L'h'); // both-error {{constant expression}} \ // both-note {{non-constexpr function 'wcschr' cannot be used in a constant expression}} } + +namespace Invalid { + constexpr int test() { // both-error {{never produces a constant expression}} + __builtin_abort(); // both-note 2{{subexpression not valid in a constant expression}} + return 0; + } + static_assert(test() == 0); // both-error {{not an integral constant expression}} \ + // both-note {{in call to}} +} -- cgit v1.1