https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78895
Bug ID: 78895 Summary: [6 regression] wrong code with -O1 when setting union twice since 6.3 Product: gcc Version: 6.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: james410 at cowgill dot org.uk Target Milestone: --- Created attachment 40394 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=40394&action=edit union-twice.c The attached testcase correctly prints nothing and exits with status 0 when using GCC 6.2, but with 6.3 it prints "FAIL" and exits with status 10. Originally reduced from strange behavior in jackd2 (https://bugs.debian.org/848285). The noinline bit is not required in the original code in jackd2, but is in my testcase. Compiled with: gcc -O1 union-twice.c -o union-twice I bisected it to revision 241788 (the first bad revision): 2016-11-02 Richard Biener <rguent...@suse.de> Backport from mainline 2016-11-02 Richard Biener <rguent...@suse.de> PR tree-optimization/78047 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Initialize fake field at offset zero conservatively regarding to may_have_pointers. 2016-10-31 Richard Biener <rguent...@suse.de> PR lto/78129 * lto.c (do_whole_program_analysis): Bail out after errors from WPA analysis. 2016-10-07 Richard Biener <rguent...@suse.de> PR tree-optimization/77879 * tree-ssa-structalias.c (handle_const_call): Properly handle NRV return slots. (handle_pure_call): Likewise. 2016-10-06 Richard Biener <rguent...@suse.de> PR tree-optimization/77839 * tree-ssa-sccvn.c (set_ssa_val_to): Forbid value -> constant value lattice transition. * gcc.dg/torture/pr77839.c: New testcase. 2016-09-27 Richard Biener <rguent...@suse.de> PR tree-optimization/77745 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): When removing redundant stores make sure to check compatibility of the TBAA state for downstream accesses. * tree-ssa-sccvn.c (visit_reference_op_store): Likewise for when value-numbering virtual operands for store matches. * g++.dg/torture/pr77745.C: New testcase. 2016-09-21 Richard Biener <rguent...@suse.de> PR tree-optimization/77648 * tree-ssa-structalias.c (process_constraint): Handle all DEREF with complex RHS. (make_transitive_closure_constraints): Adjust comment. (make_any_offset_constraints): New function. (handle_rhs_call): Make sure to first expand a pointer to all subfields before transitively closing it. (handle_const_call): Likewise. Properly expand returned pointers as well. (handle_pure_call): Likewise. * gcc.dg/torture/pr77648-1.c: New testcase. * gcc.dg/torture/pr77648-2.c: Likewise.