re PR middle-end/37742 (ICE in vectorizer with restrict pointer)
authorRichard Guenther <rguenther@suse.de>
Wed, 5 Nov 2008 12:17:10 +0000 (12:17 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Wed, 5 Nov 2008 12:17:10 +0000 (12:17 +0000)
commitf7c0ffb441e9f1164809bd3165a614e46680e38e
treec33b55ff21ac34fcc6846d0faa6ad347ae2c4bde
parent08906bf8a2a9d9aa0263e7f183be7315d985b00d
re PR middle-end/37742 (ICE in vectorizer with restrict pointer)

2008-11-05  Richard Guenther  <rguenther@suse.de>

PR middle-end/37742
* tree-ssa.c (useless_type_conversion_p_1): Check different restrict
qualified pointer conversion before stripping qualifiers.
* gimplify.c (create_tmp_from_val): Use correctly qualified type.
* tree-flow.h (may_propagate_address_into_dereference): Declare.
* tree-ssa-ccp.c (may_propagate_address_into_dereference): New function.
(ccp_fold): Use it.
* tree-ssa-forwprop.c (rhs_to_tree): Remove useless conversions,
properly canonicalize binary ops.
(forward_propagate_addr_expr_1): Use
may_propagate_address_into_dereference.

cp/
* decl.c (start_preparsed_function): Use the correct type for
building the RESULT_DECL.

* gcc.c-torture/compile/pr37742.c: New testcase.
* g++.dg/pr37742.C: Likewise.
* gcc.dg/tree-ssa/forwprop-7.c: Check for two volatile loads.

From-SVN: r141606
12 files changed:
gcc/ChangeLog
gcc/cp/ChangeLog
gcc/cp/decl.c
gcc/gimplify.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/pr37742.C [new file with mode: 0644]
gcc/testsuite/gcc.c-torture/compile/pr37742.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/tree-ssa/forwprop-7.c
gcc/tree-flow.h
gcc/tree-ssa-ccp.c
gcc/tree-ssa-forwprop.c
gcc/tree-ssa.c