================ @@ -0,0 +1,124 @@ +// -*- C++ -*- +//===----------------------------------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +// REQUIRES: target={{aarch64.*}} +// UNSUPPORTED: target={{.*-windows.*}} + +#undef NDEBUG +#include "support/func_bounds.h" +#include <assert.h> +#include <inttypes.h> +#include <libunwind.h> +#include <stdio.h> +#include <stdlib.h> +#include <sys/types.h> +#include <unistd.h> +#include <unwind.h> + +#if defined(__APPLE__) +#include <sys/sysctl.h> +#endif + +// Note: This test requires FEAT_PAuth (and is setup to pass on other targets). + +#if defined(__APPLE__) +static bool checkHasPAuth() { + int has_pauth = 0; + size_t size = sizeof(has_pauth); + if (sysctlbyname("hw.optional.arm.FEAT_PAuth", &has_pauth, &size, NULL, 0)) + return false; + return has_pauth != 0; +} +#else +static bool checkHasPAuth() { + // TODO: Support other platforms. ---------------- jroelofs wrote:
never mind, I think I figured it out: on non-apple platforms, the unwinder defaults to the a-key, but the in the test I did `pacibsp` without the `.cfi_b_key_frame` out of habit. should be fixed in https://github.com/llvm/llvm-project/pull/205188/commits/5d8319355d997173b1b44641b465a9d9f6f4d977 https://github.com/llvm/llvm-project/pull/205188 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
