re PR sanitizer/71953 (ICE using address sanitizers with PCH)
authorJakub Jelinek <jakub@redhat.com>
Thu, 21 Jul 2016 16:17:58 +0000 (18:17 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Thu, 21 Jul 2016 16:17:58 +0000 (18:17 +0200)
PR sanitizer/71953
* asan.c (asan_dynamic_init_call): Call asan_init_shadow_ptr_types
before builtin_decl_implicit.

From-SVN: r238596

gcc/ChangeLog
gcc/asan.c

index 0757c89bf84adc4defdd6888f55823ed81e30147..221a147bd9ef5745d600bc3530108c53ed8f9012 100644 (file)
@@ -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
index 0900634f8ee5da48c2a0097761547edaf7cfad7d..9047e1bfc8f7d70c0b659e7e137c98b70c0697c4 100644 (file)
@@ -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);