Fix a regression in GCC 10/11/12 where some union structures could get miscompiled when optimizations are enabled: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105860 Taken from upstream: https://gcc.gnu.org/g:16afe2e2862f3dd93c711d7f8d436dee23c6c34d diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c index 09d951a261b..420329f63f6 100644 --- a/gcc/tree-sra.c +++ b/gcc/tree-sra.c @@ -1647,7 +1647,18 @@ build_ref_for_offset (location_t loc, tree base, poly_int64 offset, static tree build_reconstructed_reference (location_t, tree base, struct access *model) { - tree expr = model->expr, prev_expr = NULL; + tree expr = model->expr; + /* We have to make sure to start just below the outermost union. */ + tree start_expr = expr; + while (handled_component_p (expr)) + { + if (TREE_CODE (TREE_TYPE (TREE_OPERAND (expr, 0))) == UNION_TYPE) + start_expr = expr; + expr = TREE_OPERAND (expr, 0); + } + + expr = start_expr; + tree prev_expr = NULL_TREE; while (!types_compatible_p (TREE_TYPE (expr), TREE_TYPE (base))) { if (!handled_component_p (expr)) ix/refs/?id=92fba6c72acb2dd5f67e5bb7b0fc6d70e2a4a9ee'>refslogtreecommitdiff
path: root/gnu/system/mapped-devices.scm
AgeCommit message (Expand)Author
2024-05-27mapped-devices: lvm: Add missing module import....Tested with (locally fixed) lvm-separate-home-os system test. * gnu/system/mapped-devices.scm (lvm-device-mapping): Add SRFI-1 to modules. Change-Id: I8c155b47c29004bdc59057391dfba94ce33bdbc2 Lars-Dominik Braun
2024-04-08mapped-devices: luks: Specify modules needed at the top-level....Fixes <https://issues.guix.gnu.org/70266>. * gnu/system/mapped-devices.scm (luks-device-mapping)[modules]: New field. (open-luks-device): Remove non-top-level ‘use-modules’ form. * gnu/system/linux-initrd.scm (raw-initrd): Remove modules that were added specifically for ‘luks-device-mapping’. Change-Id: I4253c3dd5e3cbcee41ec84fd57227abd428d1bd6 Ludovic Courtès
2024-04-08mapped-devices: <mapped-device-type> can specify modules to import....* gnu/system/mapped-devices.scm (<mapped-device-type>)[modules]: New field. (device-mapping-service-type): Honor it. * gnu/system/linux-initrd.scm (raw-initrd): Likewise. Change-Id: Icc702cb6f281741975e33203f87fbc1ffa9856da Ludovic Courtès
2024-01-14mapped-devices: Allow unlocking by a key file....Requiring the user to input their password in order to unlock a device is not always reasonable, so having an option to unlock the device using a key file is a nice quality of life change. * gnu/system/mapped-devices.scm (open-luks-device): Add #:key-file argument. (luks-device-mapping-with-options): New procedure. * doc/guix.texi (Mapped Devices): Describe the new procedure. Change-Id: I1de4e045f8c2c11f9a94f1656e839c785b0c11c4 Signed-off-by: Ludovic Courtès <ludo@gnu.org> Tomas Volf