[Bug tree-optimization/121726] [15 Regression] Possible miscompilation with strict aliasing, uint8_t[] to uint64_t*
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121726 Richard Biener changed: What|Removed |Added Resolution|--- |FIXED Status|ASSIGNED|RESOLVED Known to work||15.2.1 --- Comment #18 from Richard Biener --- Fixed.
[Bug tree-optimization/121726] [15 Regression] Possible miscompilation with strict aliasing, uint8_t[] to uint64_t*
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121726 --- Comment #17 from GCC Commits --- The releases/gcc-15 branch has been updated by Richard Biener : https://gcc.gnu.org/g:237ca4e9c631877f9ba56112303db4a372b9b6f6 commit r15-10968-g237ca4e9c631877f9ba56112303db4a372b9b6f6 Author: Richard Biener Date: Tue Feb 3 12:18:56 2026 +0100 tree-optimization/121726 - TBAA bug with SRA of address-taken decls The following fixes re-materialization of aggregates before calls that take the address of a scalarized decl. The issue here is that we do not know the appropriate effective type to use for the stores. So we use ref-all accesses for the re-materialization to properly support TBAA info modref might have recorded. The same holds true for the re-load after the call. PR tree-optimization/121726 * tree-sra.cc (build_ref_for_offset): Add force_ref_all parameter and use ptr_type_node as alias pointer type in that case. (build_ref_for_model): Add force_ref_all parameter and pass it through, forcing build_ref_for_offset. (generate_subtree_copies): Likewise. (sra_modify_call_arg): Force ref-all accesses. * gcc.target/i386/pr121726.c: New testcase. (cherry picked from commit 5c46b4d38a8b10c1fe5c0a27472b4e9c7cce2480)
[Bug tree-optimization/121726] [15 Regression] Possible miscompilation with strict aliasing, uint8_t[] to uint64_t*
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121726 Richard Biener changed: What|Removed |Added Known to fail||15.2.0 Known to work||16.0 Summary|[15/16 regression] Possible |[15 Regression] Possible |miscompilation with strict |miscompilation with strict |aliasing, uint8_t[] to |aliasing, uint8_t[] to |uint64_t* |uint64_t* --- Comment #16 from Richard Biener --- Fixed on trunk sofar.
