aboutsummaryrefslogtreecommitdiff
path: root/gcc/gimplify.c
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2008-11-05 12:17:10 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2008-11-05 12:17:10 +0000
commitf7c0ffb441e9f1164809bd3165a614e46680e38e (patch)
treec33b55ff21ac34fcc6846d0faa6ad347ae2c4bde /gcc/gimplify.c
parent08906bf8a2a9d9aa0263e7f183be7315d985b00d (diff)
downloadgcc-f7c0ffb441e9f1164809bd3165a614e46680e38e.zip
gcc-f7c0ffb441e9f1164809bd3165a614e46680e38e.tar.gz
gcc-f7c0ffb441e9f1164809bd3165a614e46680e38e.tar.bz2
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
Diffstat (limited to 'gcc/gimplify.c')
-rw-r--r--gcc/gimplify.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/gimplify.c b/gcc/gimplify.c
index d2625a7..bec4257 100644
--- a/gcc/gimplify.c
+++ b/gcc/gimplify.c
@@ -565,7 +565,7 @@ create_tmp_var (tree type, const char *prefix)
static inline tree
create_tmp_from_val (tree val)
{
- return create_tmp_var (TYPE_MAIN_VARIANT (TREE_TYPE (val)), get_name (val));
+ return create_tmp_var (TREE_TYPE (val), get_name (val));
}
/* Create a temporary to hold the value of VAL. If IS_FORMAL, try to reuse