diff options
author | Jakub Jelinek <jakub@redhat.com> | 2009-07-17 12:40:09 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2009-07-17 12:40:09 +0200 |
commit | 4f934809190163d548edbde5bae728bf954c5702 (patch) | |
tree | a75510c3c3a02ad99a11e7939bdd46869d42a290 /gcc/gimplify.c | |
parent | e59be1b11960eb9b2a2fbb0b80b482508b704d3d (diff) | |
download | gcc-4f934809190163d548edbde5bae728bf954c5702.zip gcc-4f934809190163d548edbde5bae728bf954c5702.tar.gz gcc-4f934809190163d548edbde5bae728bf954c5702.tar.bz2 |
re PR c++/40780 (ICE in gimplify_conversion)
PR c++/40780
* gimplify.c (gimplify_conversion): Don't change non-conversions into
VIEW_CONVERT_EXPR.
* g++.dg/template/ptrmem19.C: New test.
From-SVN: r149740
Diffstat (limited to 'gcc/gimplify.c')
-rw-r--r-- | gcc/gimplify.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/gimplify.c b/gcc/gimplify.c index cd3de9d..db7de3b 100644 --- a/gcc/gimplify.c +++ b/gcc/gimplify.c @@ -1827,9 +1827,9 @@ gimplify_conversion (tree *expr_p) /* If we have a conversion to a non-register type force the use of a VIEW_CONVERT_EXPR instead. */ - if (!is_gimple_reg_type (TREE_TYPE (*expr_p))) + if (CONVERT_EXPR_P (*expr_p) && !is_gimple_reg_type (TREE_TYPE (*expr_p))) *expr_p = fold_build1_loc (loc, VIEW_CONVERT_EXPR, TREE_TYPE (*expr_p), - TREE_OPERAND (*expr_p, 0)); + TREE_OPERAND (*expr_p, 0)); return GS_OK; } |