From cbdd9dfeb1ba9e5067dbbd87cc06c4c8088ccde1 Mon Sep 17 00:00:00 2001 From: Thomas Preud'homme Date: Wed, 21 Jun 2017 08:17:56 +0000 Subject: 2017-06-21 Thomas Preud'homme Revert: Backport from mainline 2017-06-15 Thomas Preud'homme PR lto/69866 * gcc.dg/lto/pr69866_0.c: New test. * gcc.dg/lto/pr69866_1.c: Likewise. Backport from mainline 2017-06-18 Jan Hubicka * gcc.dg/lto/pr69866_0.c: This test needs alias. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/ARM/embedded-6-branch@249437 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/lto/ChangeLog.arm | 9 --------- gcc/lto/lto-symtab.c | 36 ------------------------------------ gcc/testsuite/ChangeLog.arm | 16 ++++++++++++++++ gcc/testsuite/gcc.dg/lto/pr69866_0.c | 14 -------------- gcc/testsuite/gcc.dg/lto/pr69866_1.c | 6 ------ 5 files changed, 16 insertions(+), 65 deletions(-) delete mode 100644 gcc/lto/ChangeLog.arm delete mode 100644 gcc/testsuite/gcc.dg/lto/pr69866_0.c delete mode 100644 gcc/testsuite/gcc.dg/lto/pr69866_1.c diff --git a/gcc/lto/ChangeLog.arm b/gcc/lto/ChangeLog.arm deleted file mode 100644 index 5766abaf39d..00000000000 --- a/gcc/lto/ChangeLog.arm +++ /dev/null @@ -1,9 +0,0 @@ -2017-06-20 Thomas Preud'homme - - Backport from mainline - 2017-06-15 Jan Hubicka - Thomas Preud'homme - - PR lto/69866 - * lto-symtab.c (lto_symtab_merge_symbols): Drop useless definitions - that resolved externally. diff --git a/gcc/lto/lto-symtab.c b/gcc/lto/lto-symtab.c index c298fb6dd9f..94b919b53e6 100644 --- a/gcc/lto/lto-symtab.c +++ b/gcc/lto/lto-symtab.c @@ -942,42 +942,6 @@ lto_symtab_merge_symbols (void) if (tgt) node->resolve_alias (tgt, true); } - /* If the symbol was preempted outside IR, see if we want to get rid - of the definition. */ - if (node->analyzed - && !DECL_EXTERNAL (node->decl) - && (node->resolution == LDPR_PREEMPTED_REG - || node->resolution == LDPR_RESOLVED_IR - || node->resolution == LDPR_RESOLVED_EXEC - || node->resolution == LDPR_RESOLVED_DYN)) - { - DECL_EXTERNAL (node->decl) = 1; - /* If alias to local symbol was preempted by external definition, - we know it is not pointing to the local symbol. Remove it. */ - if (node->alias - && !node->weakref - && !node->transparent_alias - && node->get_alias_target ()->binds_to_current_def_p ()) - { - node->alias = false; - node->remove_all_references (); - node->definition = false; - node->analyzed = false; - node->cpp_implicit_alias = false; - } - else if (!node->alias - && node->definition - && node->get_availability () <= AVAIL_INTERPOSABLE) - { - if ((cnode = dyn_cast (node)) != NULL) - cnode->reset (); - else - { - node->analyzed = node->definition = false; - node->remove_all_references (); - } - } - } if (!(cnode = dyn_cast (node)) || !cnode->clone_of diff --git a/gcc/testsuite/ChangeLog.arm b/gcc/testsuite/ChangeLog.arm index 21ad981fb6b..d1517b031e3 100644 --- a/gcc/testsuite/ChangeLog.arm +++ b/gcc/testsuite/ChangeLog.arm @@ -1,3 +1,19 @@ +2017-06-21 Thomas Preud'homme + + Revert: + + Backport from mainline + 2017-06-15 Thomas Preud'homme + + PR lto/69866 + * gcc.dg/lto/pr69866_0.c: New test. + * gcc.dg/lto/pr69866_1.c: Likewise. + + Backport from mainline + 2017-06-18 Jan Hubicka + + * gcc.dg/lto/pr69866_0.c: This test needs alias. + 2017-06-20 Thomas Preud'homme Backport from mainline diff --git a/gcc/testsuite/gcc.dg/lto/pr69866_0.c b/gcc/testsuite/gcc.dg/lto/pr69866_0.c deleted file mode 100644 index 8c90030a57d..00000000000 --- a/gcc/testsuite/gcc.dg/lto/pr69866_0.c +++ /dev/null @@ -1,14 +0,0 @@ -/* { dg-lto-do link } */ -/* { dg-require-alias "" } */ - -int _umh(int i) -{ - return i+1; -} - -int weaks(int i) __attribute__((weak, alias("_umh"))); - -int main() -{ - return weaks(10); -} diff --git a/gcc/testsuite/gcc.dg/lto/pr69866_1.c b/gcc/testsuite/gcc.dg/lto/pr69866_1.c deleted file mode 100644 index 3a14f850eef..00000000000 --- a/gcc/testsuite/gcc.dg/lto/pr69866_1.c +++ /dev/null @@ -1,6 +0,0 @@ -/* { dg-options { -fno-lto } } */ - -int weaks(int i) -{ - return i+1; -} -- cgit v1.2.3