From e4fceb3ae5598ae3b1e0941c43d6108983e1c048 Mon Sep 17 00:00:00 2001 From: Jan Kotas Date: Tue, 12 Mar 2024 18:55:40 -0700 Subject: [PATCH] Disable NORETURN annotation on PROCAbort for Arm (#99587) * Disable NORETURN annotation on PROCAbort for Arm Contributes to #86273 * Fix build break --- src/coreclr/pal/src/include/pal/process.h | 3 +++ src/coreclr/pal/src/thread/process.cpp | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/coreclr/pal/src/include/pal/process.h b/src/coreclr/pal/src/include/pal/process.h index 5b0cd0739ed53..1c48093af219d 100644 --- a/src/coreclr/pal/src/include/pal/process.h +++ b/src/coreclr/pal/src/include/pal/process.h @@ -155,7 +155,10 @@ BOOL PROCAbortInitialize(); Does not return --*/ +#if !defined(HOST_ARM) // PAL_NORETURN produces broken unwinding information for this method + // making crash dumps impossible to analyze PAL_NORETURN +#endif VOID PROCAbort(int signal = SIGABRT, siginfo_t* siginfo = nullptr); /*++ diff --git a/src/coreclr/pal/src/thread/process.cpp b/src/coreclr/pal/src/thread/process.cpp index b23eab001cca4..757ed25ade1d6 100644 --- a/src/coreclr/pal/src/thread/process.cpp +++ b/src/coreclr/pal/src/thread/process.cpp @@ -1271,7 +1271,7 @@ RaiseFailFastException( ENTRY("RaiseFailFastException"); TerminateCurrentProcessNoExit(TRUE); - PROCAbort(); + for (;;) PROCAbort(); LOGEXIT("RaiseFailFastException"); PERF_EXIT(RaiseFailFastException); @@ -2541,7 +2541,9 @@ PROCCreateCrashDumpIfEnabled(int signal, siginfo_t* siginfo, bool serialize) Does not return --*/ +#if !defined(HOST_ARM) PAL_NORETURN +#endif VOID PROCAbort(int signal, siginfo_t* siginfo) {