Module Name: src
Committed By: christos
Date: Fri May 17 20:27:48 UTC 2019
Modified Files:
src/sys/external/bsd/acpica/dist/events: evregion.c
src/sys/external/bsd/acpica/dist/include: actypes.h
Log Message:
use a union cast to assert alignment of string constant.
To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 src/sys/external/bsd/acpica/dist/events/evregion.c
cvs rdiff -u -r1.18 -r1.19 src/sys/external/bsd/acpica/dist/include/actypes.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/external/bsd/acpica/dist/events/evregion.c
diff -u src/sys/external/bsd/acpica/dist/events/evregion.c:1.8 src/sys/external/bsd/acpica/dist/events/evregion.c:1.9
--- src/sys/external/bsd/acpica/dist/events/evregion.c:1.8 Sun Apr 28 21:18:06 2019
+++ src/sys/external/bsd/acpica/dist/events/evregion.c Fri May 17 16:27:48 2019
@@ -581,7 +581,7 @@ AcpiEvExecuteRegMethod (
ACPI_EVALUATE_INFO *Info;
ACPI_OPERAND_OBJECT *Args[3];
ACPI_OPERAND_OBJECT *RegionObj2;
- const ACPI_NAME *RegNamePtr = ACPI_CAST_PTR (ACPI_NAME, METHOD_NAME__REG);
+ const ACPI_NAME *RegNamePtr = ACPI_ALIGNED_STR_UNION (ACPI_NAME, METHOD_NAME__REG);
ACPI_NAMESPACE_NODE *MethodNode;
ACPI_NAMESPACE_NODE *Node;
ACPI_STATUS Status;
Index: src/sys/external/bsd/acpica/dist/include/actypes.h
diff -u src/sys/external/bsd/acpica/dist/include/actypes.h:1.18 src/sys/external/bsd/acpica/dist/include/actypes.h:1.19
--- src/sys/external/bsd/acpica/dist/include/actypes.h:1.18 Sun Apr 28 21:18:07 2019
+++ src/sys/external/bsd/acpica/dist/include/actypes.h Fri May 17 16:27:48 2019
@@ -540,6 +540,10 @@ typedef UINT64
#define ACPI_ARRAY_LENGTH(x) (sizeof(x) / sizeof((x)[0]))
+/* Use a union to align string s to type t */
+#define ACPI_ALIGNED_STR_UNION(t, s) \
+ (&((const union { char _s[sizeof(t)]; t _t; }){ s }._t))
+
/* Pointer manipulation */
#define ACPI_CAST_PTR(t, p) ((t *) (ACPI_UINTPTR_T) (p))