aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2006-12-24 11:17:15 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2006-12-24 10:17:15 +0000
commit7a223fd48dcbec588cbd3c26f0fec5eadeb204e8 (patch)
treecd3ee3dcd58463177a597c08780d3eaaa9324aed /gcc
parent9b1ae0a09789baa17e9959b57db78ffc7d4a7fa6 (diff)
downloadgcc-7a223fd48dcbec588cbd3c26f0fec5eadeb204e8.zip
gcc-7a223fd48dcbec588cbd3c26f0fec5eadeb204e8.tar.gz
gcc-7a223fd48dcbec588cbd3c26f0fec5eadeb204e8.tar.bz2
tree-mudflap.c (ml_decl_cache_locals, [...]): add newly referenced vars.
* tree-mudflap.c (ml_decl_cache_locals, md_build_check_statement_for): add newly referenced vars. From-SVN: r120188
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 61925fa..dc885b7 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2006-12-24 Jan Hubicka <jh@suse.cz>
+
+ * tree-mudflap.c (ml_decl_cache_locals, md_build_check_statement_for):
+ add newly referenced vars.
+
2006-12-24 Kazu Hirata <kazu@codesourcery.com>
* basic-block.h: Remove the prototype for
diff --git a/gcc/tree-mudflap.c b/gcc/tree-mudflap.c
index 4d80c19..209dc00 100644
--- a/gcc/tree-mudflap.c
+++ b/gcc/tree-mudflap.c
@@ -460,12 +460,14 @@ mf_decl_cache_locals (void)
globals into the cache variables. */
t = build2 (GIMPLE_MODIFY_STMT, TREE_TYPE (mf_cache_shift_decl_l),
mf_cache_shift_decl_l, mf_cache_shift_decl);
+ add_referenced_var (mf_cache_shift_decl);
SET_EXPR_LOCATION (t, DECL_SOURCE_LOCATION (current_function_decl));
gimplify_to_stmt_list (&t);
shift_init_stmts = t;
t = build2 (GIMPLE_MODIFY_STMT, TREE_TYPE (mf_cache_mask_decl_l),
mf_cache_mask_decl_l, mf_cache_mask_decl);
+ add_referenced_var (mf_cache_mask_decl);
SET_EXPR_LOCATION (t, DECL_SOURCE_LOCATION (current_function_decl));
gimplify_to_stmt_list (&t);
mask_init_stmts = t;
@@ -571,13 +573,17 @@ mf_build_check_statement_for (tree base, tree limit,
& __mf_mask]. */
t = build2 (RSHIFT_EXPR, mf_uintptr_type, mf_base,
(flag_mudflap_threads ? mf_cache_shift_decl : mf_cache_shift_decl_l));
+ add_referenced_var (mf_cache_shift_decl);
t = build2 (BIT_AND_EXPR, mf_uintptr_type, t,
(flag_mudflap_threads ? mf_cache_mask_decl : mf_cache_mask_decl_l));
+ add_referenced_var (mf_cache_mask_decl);
t = build4 (ARRAY_REF,
TREE_TYPE (TREE_TYPE (mf_cache_array_decl)),
mf_cache_array_decl, t, NULL_TREE, NULL_TREE);
+ add_referenced_var (mf_cache_array_decl);
t = build1 (ADDR_EXPR, mf_cache_structptr_type, t);
t = build2 (GIMPLE_MODIFY_STMT, void_type_node, mf_elem, t);
+ add_referenced_var (mf_elem);
SET_EXPR_LOCUS (t, locus);
gimplify_to_stmt_list (&t);
tsi_link_after (&tsi, t, TSI_CONTINUE_LINKING);
@@ -601,6 +607,7 @@ mf_build_check_statement_for (tree base, tree limit,
build1 (INDIRECT_REF, mf_cache_struct_type, mf_elem),
TYPE_FIELDS (mf_cache_struct_type), NULL_TREE);
t = build2 (GT_EXPR, boolean_type_node, t, mf_base);
+ add_referenced_var (mf_base);
/* Construct '__mf_elem->high < __mf_limit'.