diff options
author | Maxim Ostapenko <chefmax@gcc.gnu.org> | 2017-01-23 11:12:29 +0200 |
---|---|---|
committer | Maxim Ostapenko <chefmax@gcc.gnu.org> | 2017-01-23 11:12:29 +0200 |
commit | e3d53f96ed595fd6e8bef75f166a93e5309b0c2a (patch) | |
tree | b00bc74146414cdc735ba7984a03a985eb0aeb9b /gcc | |
parent | 54d7c70c08b5b4a0180269301d466cc5e3d951b5 (diff) | |
download | gcc-e3d53f96ed595fd6e8bef75f166a93e5309b0c2a.zip gcc-e3d53f96ed595fd6e8bef75f166a93e5309b0c2a.tar.gz gcc-e3d53f96ed595fd6e8bef75f166a93e5309b0c2a.tar.bz2 |
re PR lto/79061 ([LTO][ASAN] LTO plus ASAN fails with "AddressSanitizer: initialization-order-fiasco")
Revert fix for PR lto/79061 due to this regresses compile-time by 100%
on some fortran cases.
From-SVN: r244773
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/asan.c | 25 | ||||
-rw-r--r-- | gcc/lto/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/lto/lto.c | 8 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/cpp/mi1.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pch/cpp-3.c | 2 | ||||
-rw-r--r-- | gcc/tree.c | 5 |
8 files changed, 5 insertions, 58 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d6a3348..de154fd 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -401,15 +401,6 @@ 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. @@ -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)) diff --git a/gcc/lto/ChangeLog b/gcc/lto/ChangeLog index 6b76cc6..8f2e0ec 100644 --- a/gcc/lto/ChangeLog +++ b/gcc/lto/ChangeLog @@ -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 diff --git a/gcc/lto/lto.c b/gcc/lto/lto.c index c65e7cd..d77d85d 100644 --- a/gcc/lto/lto.c +++ b/gcc/lto/lto.c @@ -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 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index fb55fec..e6dc6b3 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -299,12 +299,6 @@ * 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 diff --git a/gcc/testsuite/gcc.dg/cpp/mi1.c b/gcc/testsuite/gcc.dg/cpp/mi1.c index 9817431..0cfedad 100644 --- a/gcc/testsuite/gcc.dg/cpp/mi1.c +++ b/gcc/testsuite/gcc.dg/cpp/mi1.c @@ -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" diff --git a/gcc/testsuite/gcc.dg/pch/cpp-3.c b/gcc/testsuite/gcc.dg/pch/cpp-3.c index d635706..25b5ca4 100644 --- a/gcc/testsuite/gcc.dg/pch/cpp-3.c +++ b/gcc/testsuite/gcc.dg/pch/cpp-3.c @@ -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" @@ -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); |