re PR tree-optimization/39207 (Strict aliasing warnings in libstdc++ headers)
authorRichard Guenther <rguenther@suse.de>
Thu, 19 Feb 2009 10:12:25 +0000 (10:12 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Thu, 19 Feb 2009 10:12:25 +0000 (10:12 +0000)
commit9e39dba643323a8bf07e1435657eebd3985452db
tree8ded01ebc07aa42d47fe86aff0ccaeeb166b029d
parentaac2878e169cba8104e4458e24744f6b56cf87b4
re PR tree-optimization/39207 (Strict aliasing warnings in libstdc++ headers)

2009-02-19  Richard Guenther  <rguenther@suse.de>

PR tree-optimization/39207
PR tree-optimization/39074
* tree-ssa-structalias.c (storedanything_id, var_storedanything,
storedanything_tree): New.
(do_ds_constraint): Simplify ANYTHING shortcutting.  Update
the STOREDANYTHING solution if the lhs solution contains
ANYTHING.
(build_succ_graph): Add edges from STOREDANYTHING to all
non-direct nodes.
(init_base_vars): Initialize STOREDANYTHING.
(compute_points_to_sets): Free substitution info after
building the succ graph.
(ipa_pta_execute): Likewise.

* gcc.dg/torture/pr39074.c: New testcase.
* gcc.dg/torture/pr39074-2.c: Likewise.
* gcc.dg/torture/pr39074-3.c: Likewise.

* tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
field.
(do_ds_constraint): Do not add to special var or non-pointer
field solutions.
(type_could_have_pointers): Split out from ...
(could_have_pointers): ... here.  For arrays use the element type.
(create_variable_info_for): Initialize may_have_pointers.
(new_var_info): Likewise.
(handle_lhs_call): Make the HEAP variable unknown-sized.
(intra_create_variable_infos): Use a type with pointers for
PARM_NOALIAS, make it unknown-sized.

From-SVN: r144292
gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/torture/pr39074-2.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/torture/pr39074-3.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/torture/pr39074.c [new file with mode: 0644]
gcc/tree-ssa-structalias.c