[clang] [llvm] [clang][builtin] Implement __builtin_allow_runtime_check (PR #87568)
https://github.com/vitalybuka closed https://github.com/llvm/llvm-project/pull/87568 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [llvm] [clang][builtin] Implement __builtin_allow_runtime_check (PR #87568)
@@ -3464,6 +3464,34 @@ Query for this feature with ``__has_builtin(__builtin_trap)``. ``__builtin_arm_trap`` is lowered to the ``llvm.aarch64.break`` builtin, and then to ``brk #payload``. +``__builtin_allow_runtime_check`` AaronBallman wrote: Okay, let's just skip this for now then, thank you! https://github.com/llvm/llvm-project/pull/87568 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [llvm] [clang][builtin] Implement __builtin_allow_runtime_check (PR #87568)
@@ -3233,6 +3233,17 @@ Sema::CheckBuiltinFunctionCall(FunctionDecl *FDecl, unsigned BuiltinID, if (BuiltinCountZeroBitsGeneric(*this, TheCall)) return ExprError(); break; + + case Builtin::BI__builtin_allow_runtime_check: { +Expr *Arg = TheCall->getArg(0); +// Check if the argument is a string literal. +if (!isa(Arg->IgnoreParenImpCasts())) { vitalybuka wrote: Resolving in favor of the longer thread above. https://github.com/llvm/llvm-project/pull/87568 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [llvm] [clang][builtin] Implement __builtin_allow_runtime_check (PR #87568)
https://github.com/vitalybuka edited https://github.com/llvm/llvm-project/pull/87568 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [llvm] [clang][builtin] Implement __builtin_allow_runtime_check (PR #87568)
https://github.com/vitalybuka edited https://github.com/llvm/llvm-project/pull/87568 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [llvm] [clang][builtin] Implement __builtin_allow_runtime_check (PR #87568)
@@ -3464,6 +3464,34 @@ Query for this feature with ``__has_builtin(__builtin_trap)``. ``__builtin_arm_trap`` is lowered to the ``llvm.aarch64.break`` builtin, and then to ``brk #payload``. +``__builtin_allow_runtime_check`` vitalybuka wrote: Similar __builtin_cpu_is, also works only with literals. The closest thing I see is c++26 `static_assert` https://en.cppreference.com/w/cpp/language/static_assert And it's parsed in a weird way `EvaluateStaticAssertMessageAsString` https://godbolt.org/z/Gcf74Ysjs https://github.com/llvm/llvm-project/pull/87568 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [llvm] [clang][builtin] Implement __builtin_allow_runtime_check (PR #87568)
@@ -3464,6 +3464,34 @@ Query for this feature with ``__has_builtin(__builtin_trap)``. ``__builtin_arm_trap`` is lowered to the ``llvm.aarch64.break`` builtin, and then to ``brk #payload``. +``__builtin_allow_runtime_check`` vitalybuka wrote: Not sure how to do that. I would expected that from `__builtin_nan`, but it can't do that: https://godbolt.org/z/hWx47Gqvn https://github.com/llvm/llvm-project/pull/87568 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [llvm] [clang][builtin] Implement __builtin_allow_runtime_check (PR #87568)
https://github.com/vitalybuka edited https://github.com/llvm/llvm-project/pull/87568 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits