aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-mudflap.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2008-09-15 23:52:53 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2008-09-15 23:52:53 +0200
commit8586aeeb9cf8ca7a2cd3dfd6cb589dbc070abd0f (patch)
tree442faf97b50015de3052a61cf9357c79ecc13982 /gcc/tree-mudflap.c
parent6a7a3f311b79f95e4a8bb19ffae268d4b5e6f565 (diff)
downloadgcc-8586aeeb9cf8ca7a2cd3dfd6cb589dbc070abd0f.zip
gcc-8586aeeb9cf8ca7a2cd3dfd6cb589dbc070abd0f.tar.gz
gcc-8586aeeb9cf8ca7a2cd3dfd6cb589dbc070abd0f.tar.bz2
re PR libmudflap/36397 (ICE with pointer cast and -fmudflap)
PR libmudflap/36397 * tree-mudflap.c (mf_xform_derefs_1): Handle VIEW_CONVERT_EXPR. * testsuite/libmudflap.c/pass64-frag.c: New test. From-SVN: r140374
Diffstat (limited to 'gcc/tree-mudflap.c')
-rw-r--r--gcc/tree-mudflap.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/tree-mudflap.c b/gcc/tree-mudflap.c
index 3f77b2c..0b3eba5 100644
--- a/gcc/tree-mudflap.c
+++ b/gcc/tree-mudflap.c
@@ -773,6 +773,13 @@ mf_xform_derefs_1 (gimple_stmt_iterator *iter, tree *tp,
base = TREE_OPERAND (var, 0);
break;
}
+ else if (TREE_CODE (var) == VIEW_CONVERT_EXPR)
+ {
+ var = TREE_OPERAND (var, 0);
+ if (CONSTANT_CLASS_P (var)
+ && TREE_CODE (var) != STRING_CST)
+ return;
+ }
else
{
gcc_assert (TREE_CODE (var) == VAR_DECL