[Bug tree-optimization/121726] [15 Regression] Possible miscompilation with strict aliasing, uint8_t[] to uint64_t*

2026-03-16 Thread rguenth at gcc dot gnu.org via Gcc-bugs
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*

2026-03-16 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
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*

2026-02-05 Thread rguenth at gcc dot gnu.org via Gcc-bugs
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.