55 lines
1.7 KiB
Diff
55 lines
1.7 KiB
Diff
From aea0a5cfce262ce2ab16fd96d87c12cf5e756380 Mon Sep 17 00:00:00 2001
|
|
From: Philip Prindeville <philipp@redfish-solutions.com>
|
|
Date: Wed, 12 Apr 2023 10:18:20 -0600
|
|
Subject: [PATCH] Fix GCC 12 dangling-pointer warning
|
|
|
|
We're storing a persistent pointer to an ephemeral local variable
|
|
which technically is a dangling pointer and the compiler is correct.
|
|
However, since we never indirect the pointer, this is a safe
|
|
operation and we can suppress the warning.
|
|
|
|
Also, some C run-times (like MUSL) aren't including <stdint.h>
|
|
indirectly so we must include it explicitly or we won't have the
|
|
type definition for uintptr_t.
|
|
|
|
Fixes issue #867.
|
|
|
|
Signed-off-by: Philip Prindeville <philipp@redfish-solutions.com>
|
|
---
|
|
source/components/utilities/utdebug.c | 5 +++++
|
|
source/include/platform/aclinux.h | 1 +
|
|
2 files changed, 6 insertions(+)
|
|
|
|
diff --git a/source/components/utilities/utdebug.c b/source/components/utilities/utdebug.c
|
|
index 0060fdf..2f60bca 100644
|
|
--- a/source/components/utilities/utdebug.c
|
|
+++ b/source/components/utilities/utdebug.c
|
|
@@ -77,7 +77,12 @@ AcpiUtInitStackPtrTrace (
|
|
ACPI_SIZE CurrentSp;
|
|
|
|
|
|
+#pragma GCC diagnostic push
|
|
+#if defined(__GNUC__) && __GNUC__ >= 12
|
|
+#pragma GCC diagnostic ignored "-Wdangling-pointer="
|
|
+#endif
|
|
AcpiGbl_EntryStackPointer = &CurrentSp;
|
|
+#pragma GCC diagnostic pop
|
|
}
|
|
|
|
|
|
diff --git a/source/include/platform/aclinux.h b/source/include/platform/aclinux.h
|
|
index 52a3293..20680d0 100644
|
|
--- a/source/include/platform/aclinux.h
|
|
+++ b/source/include/platform/aclinux.h
|
|
@@ -198,6 +198,7 @@
|
|
|
|
#ifdef ACPI_USE_STANDARD_HEADERS
|
|
#include <unistd.h>
|
|
+#include <stdint.h>
|
|
#endif
|
|
|
|
/* Define/disable kernel-specific declarators */
|
|
--
|
|
2.33.0
|
|
|