ACPICA: Fix GCC 12 dangling-pointer warning
authorPhilip Prindeville <philipp@redfish-solutions.com>
Wed, 12 Apr 2023 16:18:20 +0000 (10:18 -0600)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Mon, 10 Jul 2023 13:21:03 +0000 (15:21 +0200)
ACPICA commit aea0a5cfce262ce2ab16fd96d87c12cf5e756380

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.

Link: https://github.com/acpica/acpica/commit/aea0a5cf
Signed-off-by: Philip Prindeville <philipp@redfish-solutions.com>
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/acpica/utdebug.c
include/acpi/platform/aclinux.h

index 1bbba8585fa6fa83fc014799550ee5d8b3b775e8..c5f6c85a3a092bf0db1a2e233bc703a802f31f82 100644 (file)
@@ -37,7 +37,12 @@ void acpi_ut_init_stack_ptr_trace(void)
 {
        acpi_size current_sp;
 
+#pragma GCC diagnostic push
+#if defined(__GNUC__) && __GNUC__ >= 12
+#pragma GCC diagnostic ignored "-Wdangling-pointer="
+#endif
        acpi_gbl_entry_stack_pointer = &current_sp;
+#pragma GCC diagnostic pop
 }
 
 /*******************************************************************************
index 1ca450e35c0d5dabc9865cba854a981852e1e83d..565341c826e38be71e73624512d50846c8032520 100644 (file)
 #ifdef ACPI_USE_STANDARD_HEADERS
 #include <stddef.h>
 #include <unistd.h>
+#include <stdint.h>
 
 #define ACPI_OFFSET(d, f)   offsetof(d, f)
 #endif