aboutsummaryrefslogtreecommitdiff
path: root/gcc
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
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')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/tree-mudflap.c7
2 files changed, 12 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index eeab0fe..ab5a315 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2008-09-15 Jakub Jelinek <jakub@redhat.com>
+
+ PR libmudflap/36397
+ * tree-mudflap.c (mf_xform_derefs_1): Handle VIEW_CONVERT_EXPR.
+
2008-09-14 Andreas Schwab <schwab@suse.de>
* tree-call-cdce.c (check_target_format): Accept Motorola formats.
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