summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilip Prindeville <philipp@redfish-solutions.com>2023-04-12 10:18:20 -0600
committerPhilip Prindeville <philipp@redfish-solutions.com>2023-04-13 17:43:07 -0600
commitaea0a5cfce262ce2ab16fd96d87c12cf5e756380 (patch)
tree2e1c96c9f6b9a49c4a389b3b0e1f88922467666f
parent1631c7f3e9d89e55854710b09145bff99c8246b8 (diff)
downloadacpica-aea0a5cfce262ce2ab16fd96d87c12cf5e756380.tar.gz
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>
-rw-r--r--source/components/utilities/utdebug.c5
-rw-r--r--source/include/platform/aclinux.h1
2 files changed, 6 insertions, 0 deletions
diff --git a/source/components/utilities/utdebug.c b/source/components/utilities/utdebug.c
index b0c3640f2..82e8a6205 100644
--- a/source/components/utilities/utdebug.c
+++ b/source/components/utilities/utdebug.c
@@ -185,7 +185,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 da37a2fad..f5234b972 100644
--- a/source/include/platform/aclinux.h
+++ b/source/include/platform/aclinux.h
@@ -312,6 +312,7 @@
#ifdef ACPI_USE_STANDARD_HEADERS
#include <stddef.h>
#include <unistd.h>
+#include <stdint.h>
#define ACPI_OFFSET(d, f) offsetof(d, f)
#endif