[clang] Add support for builtin_verbose_trap (PR #79230)
Louis Dionne via cfe-commits
cfe-commits at lists.llvm.org
Fri Jan 26 07:15:32 PST 2024
================
@@ -0,0 +1,29 @@
+// RUN: %clang_cc1 -std=c++11 -fsyntax-only -fcxx-exceptions -verify %s
+
+#if !__has_builtin(__builtin_verbose_trap)
+#error
+#endif
+
+constexpr char const* constMsg1 = "hello";
+char const* const constMsg2 = "hello";
+char const constMsg3[] = "hello";
+
+template <const char * const str>
+void f(const char * arg) {
+ __builtin_verbose_trap("Arbitrary string literals can be used!");
+ __builtin_verbose_trap("Argument_must_not_be_null");
+ __builtin_verbose_trap("hello" "world");
+ __builtin_verbose_trap(constMsg1);
+ __builtin_verbose_trap(constMsg2);
+ __builtin_verbose_trap(""); // expected-error {{argument to __builtin_verbose_trap must be a pointer to a non-empty constant string}}
----------------
ldionne wrote:
Would it be possible to make that (an empty string literal) work? It seems like a bit of an arbitrary limitation.
https://github.com/llvm/llvm-project/pull/79230
More information about the cfe-commits
mailing list