re PR lto/79061 ([LTO][ASAN] LTO plus ASAN fails with "AddressSanitizer: initializati...
authorMaxim Ostapenko <chefmax@gcc.gnu.org>
Mon, 23 Jan 2017 09:12:29 +0000 (11:12 +0200)
committerMaxim Ostapenko <chefmax@gcc.gnu.org>
Mon, 23 Jan 2017 09:12:29 +0000 (11:12 +0200)
Revert fix for PR lto/79061 due to this regresses compile-time by 100%
on some fortran cases.

From-SVN: r244773

gcc/ChangeLog
gcc/asan.c
gcc/lto/ChangeLog
gcc/lto/lto.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/cpp/mi1.c
gcc/testsuite/gcc.dg/pch/cpp-3.c
gcc/tree.c

index d6a334893684e800d350aed46996364b2a9086e3..de154fdc28efd045c8ac94e4fabd078398765885 100644 (file)
        New function.
        (TARGET_SCHED_ADJUST_PRIORITY): Define target hook.
 
-2017-01-18  Maxim Ostapenko  <m.ostapenko@samsung.com>
-
-       PR lto/79061
-       * asan.c (get_translation_unit_decl): New function.
-       (asan_add_global): Extract modules file name from globals
-       TRANSLATION_UNIT_DECL in lto mode.
-       * tree.c (build_translation_unit_decl): Add source location for newly
-       built TRANSLATION_UNIT_DECL.
-
 2017-01-18  Matthias Klose  <doko@ubuntu.com>
 
        * doc/install.texi: Allow default for --with-target-bdw-gc-include.
index 9a59fe4f100e862f59224d71017cac8d055947b6..74500448a1246a59a3ff8029d6441d21b429e18c 100644 (file)
@@ -2372,22 +2372,6 @@ asan_needs_odr_indicator_p (tree decl)
          && TREE_PUBLIC (decl));
 }
 
-/* For given DECL return its corresponding TRANSLATION_UNIT_DECL.  */
-
-static const_tree
-get_translation_unit_decl (tree decl)
-{
-  const_tree context = decl;
-  while (context && TREE_CODE (context) != TRANSLATION_UNIT_DECL)
-    {
-      if (TREE_CODE (context) == BLOCK)
-       context = BLOCK_SUPERCONTEXT (context);
-      else
-       context = get_containing_scope (context);
-    }
-  return context;
-}
-
 /* Append description of a single global DECL into vector V.
    TYPE is __asan_global struct type as returned by asan_global_struct.  */
 
@@ -2407,14 +2391,7 @@ asan_add_global (tree decl, tree type, vec<constructor_elt, va_gc> *v)
     pp_string (&asan_pp, "<unknown>");
   str_cst = asan_pp_string (&asan_pp);
 
-  const char *filename = main_input_filename;
-  if (in_lto_p)
-    {
-      const_tree translation_unit_decl = get_translation_unit_decl (decl);
-      if (translation_unit_decl)
-       filename = DECL_SOURCE_FILE (translation_unit_decl);
-    }
-  pp_string (&module_name_pp, filename);
+  pp_string (&module_name_pp, main_input_filename);
   module_name_cst = asan_pp_string (&module_name_pp);
 
   if (asan_needs_local_alias (decl))
index 6b76cc641d131b0ef4bf494427e1ffc9cf53b5d9..8f2e0ec180c3fedf6cd870f82d485097ad3608a2 100644 (file)
@@ -6,12 +6,6 @@
        lhd_type_for_size.
        (LANG_HOOKS_TYPE_FOR_SIZE): Don't redefine.
 
-2017-01-18  Maxim Ostapenko  <m.ostapenko@samsung.com>
-
-       PR lto/79061
-       * lto.c (lto_read_decls): accept location cache for
-       TRANSLATION_UNIT_DECL.
-
 2017-01-11  Jakub Jelinek  <jakub@redhat.com>
 
        PR middle-end/50199
index c65e7cdbd389c7a299082ac136bc7e7f56993382..d77d85defb60da84dedd05098334ab0789645fb0 100644 (file)
@@ -1707,13 +1707,7 @@ lto_read_decls (struct lto_file_decl_data *decl_data, const void *data,
              && (TREE_CODE (first) == IDENTIFIER_NODE
                  || TREE_CODE (first) == INTEGER_CST
                  || TREE_CODE (first) == TRANSLATION_UNIT_DECL))
-           {
-             /* For TRANSLATION_UNIT_DECL we need to accept location cache now
-                to avoid possible reverting during following unify_scc call.  */
-             if (TREE_CODE (first) == TRANSLATION_UNIT_DECL)
-               data_in->location_cache.accept_location_cache ();
-             continue;
-           }
+           continue;
 
          /* Try to unify the SCC with already existing ones.  */
          if (!flag_ltrans
index fb55fecf60fe75a888306b864cd6a698fd6f6853..e6dc6b39d35ca55142ed9f796bc35ba39634a820 100644 (file)
        * gcc.target/powerpc/pr58673-2.c: Likewise.
        * gcc.target/powerpc/pr59054.c: Likewise.
 
-2017-01-18  Maxim Ostapenko  <m.ostapenko@samsung.com>
-
-       PR lto/79061
-       * gcc.dg/cpp/mi1.c: Adjust testcase.
-       * gcc.dg/pch/cpp-3.c: Likewise.
-
 2016-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
 
        * gcc.target/powerpc/p8vector-builtin-8.c: Add new form for
index 9817431b646a23df5958642c73724fa2808348a6..0cfedad2f39ede976beb47de6df2376adfd41fd0 100644 (file)
@@ -13,7 +13,7 @@
 
 /* { dg-do compile }
    { dg-options "-H" }
-   { dg-message "mi1c\.h\n\[^\n\]*mi1cc\.h\n\[^\n\]*mi1nd\.h\n\[^\n\]*mi1ndp\.h\n\[^\n\]*mi1x\.h\n\[^\n\]*mi1\.c" "redundant include check" { target *-*-* } 0 } */
+   { dg-message "mi1c\.h\n\[^\n\]*mi1cc\.h\n\[^\n\]*mi1nd\.h\n\[^\n\]*mi1ndp\.h\n\[^\n\]*mi1x\.h" "redundant include check" { target *-*-* } 0 } */
 
 #include "mi1c.h"
 #include "mi1c.h"
index d635706b4fd71b3b36d66c49528cde590eb1d9f9..25b5ca4077ff97c3b671097036115ebdc10277a9 100644 (file)
@@ -1,7 +1,7 @@
 /* PR preprocessor/36649 */
 /* { dg-do compile } */
 /* { dg-options "-H -I." } */
-/* { dg-message "cpp-3.h\[^\n\]*(\n\[^\n\]*cpp-3.c)?\n\[^\n\]*cpp-3a.h\n\[^\n\]*cpp-3b.h\n\[^\n\]*cpp-3.c" "" { target *-*-* } 0 } */
+/* { dg-message "cpp-3.h\[^\n\]*(\n\[^\n\]*cpp-3.c)?\n\[^\n\]*cpp-3a.h\n\[^\n\]*cpp-3b.h" "" { target *-*-* } 0 } */
 
 #include "cpp-3.h"
 #include "cpp-3a.h"
index 7127bd265de63a37a179b8fd804b42f953e549b5..14f045201728b150854633c82440f42a5983cafa 100644 (file)
@@ -4758,10 +4758,7 @@ vec<tree, va_gc> *all_translation_units;
 tree
 build_translation_unit_decl (tree name)
 {
-  linemap_add (line_table, LC_ENTER, false, main_input_filename, 1);
-  location_t loc = linemap_line_start (line_table, 1, 0);
-  linemap_add (line_table, LC_LEAVE, false, NULL, 0);
-  tree tu = build_decl (loc, TRANSLATION_UNIT_DECL,
+  tree tu = build_decl (UNKNOWN_LOCATION, TRANSLATION_UNIT_DECL,
                        name, NULL_TREE);
   TRANSLATION_UNIT_LANGUAGE (tu) = lang_hooks.name;
   vec_safe_push (all_translation_units, tu);