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))