aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/asan.c5
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0757c89..221a147 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2016-07-21 Jakub Jelinek <jakub@redhat.com>
+
+ PR sanitizer/71953
+ * asan.c (asan_dynamic_init_call): Call asan_init_shadow_ptr_types
+ before builtin_decl_implicit.
+
2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
* optabs.c (emit_condiitonal_move): Short circuit for identical
diff --git a/gcc/asan.c b/gcc/asan.c
index 0900634..9047e1b 100644
--- a/gcc/asan.c
+++ b/gcc/asan.c
@@ -2159,6 +2159,9 @@ transform_statements (void)
tree
asan_dynamic_init_call (bool after_p)
{
+ if (shadow_ptr_types[0] == NULL_TREE)
+ asan_init_shadow_ptr_types ();
+
tree fn = builtin_decl_implicit (after_p
? BUILT_IN_ASAN_AFTER_DYNAMIC_INIT
: BUILT_IN_ASAN_BEFORE_DYNAMIC_INIT);
@@ -2168,8 +2171,6 @@ asan_dynamic_init_call (bool after_p)
pretty_printer module_name_pp;
pp_string (&module_name_pp, main_input_filename);
- if (shadow_ptr_types[0] == NULL_TREE)
- asan_init_shadow_ptr_types ();
module_name_cst = asan_pp_string (&module_name_pp);
module_name_cst = fold_convert (const_ptr_type_node,
module_name_cst);