aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Preud'homme <thomas.preudhomme@arm.com>2017-06-21 08:17:56 +0000
committerThomas Preud'homme <thomas.preudhomme@arm.com>2017-06-21 08:17:56 +0000
commitcbdd9dfeb1ba9e5067dbbd87cc06c4c8088ccde1 (patch)
treecf8a0bc639e4297e0cc5066742e728b3ef7038c0
parentdd6f1d6329804d672dc44c77ba0a6e567e01e369 (diff)
2017-06-21 Thomas Preud'homme <thomas.preudhomme@arm.com>ARM/embedded-6-branch-2017q2
Revert: Backport from mainline 2017-06-15 Thomas Preud'homme <thomas.preudhomme@arm.com> 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 <hubicka@ucw.cz> * 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
-rw-r--r--gcc/lto/ChangeLog.arm9
-rw-r--r--gcc/lto/lto-symtab.c36
-rw-r--r--gcc/testsuite/ChangeLog.arm16
-rw-r--r--gcc/testsuite/gcc.dg/lto/pr69866_0.c14
-rw-r--r--gcc/testsuite/gcc.dg/lto/pr69866_1.c6
5 files changed, 16 insertions, 65 deletions
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 <thomas.preudhomme@arm.com>
-
- Backport from mainline
- 2017-06-15 Jan Hubicka <hubicka@ucw.cz>
- Thomas Preud'homme <thomas.preudhomme@arm.com>
-
- 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 <cgraph_node *> (node)) != NULL)
- cnode->reset ();
- else
- {
- node->analyzed = node->definition = false;
- node->remove_all_references ();
- }
- }
- }
if (!(cnode = dyn_cast <cgraph_node *> (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 <thomas.preudhomme@arm.com>
+
+ Revert:
+
+ Backport from mainline
+ 2017-06-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
+
+ 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 <hubicka@ucw.cz>
+
+ * gcc.dg/lto/pr69866_0.c: This test needs alias.
+
2017-06-20 Thomas Preud'homme <thomas.preudhomme@arm.com>
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;
-}