From 58f451f0930a31bb8b9975817ffedc2020450179 Mon Sep 17 00:00:00 2001
From: Joseph Myers <joseph@codesourcery.com>
Date: Wed, 21 Oct 2009 16:16:24 +0100
Subject: [PATCH] sh.c (nonpic_symbol_mentioned_p): Allow UNSPEC_TPOFF.

	* config/sh/sh.c (nonpic_symbol_mentioned_p): Allow UNSPEC_TPOFF.

testsuite:
	* gcc.dg/tls/pie-1.c: New test.

From-SVN: r153060
---
 gcc/ChangeLog                    | 4 ++++
 gcc/config/sh/sh.c               | 1 +
 gcc/testsuite/ChangeLog          | 4 ++++
 gcc/testsuite/gcc.dg/tls/pie-1.c | 6 ++++++
 4 files changed, 15 insertions(+)
 create mode 100644 gcc/testsuite/gcc.dg/tls/pie-1.c

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index dc8d5936f52a..cf2bc8f38573 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2009-10-21  Joseph Myers  <joseph@codesourcery.com>
+
+	* config/sh/sh.c (nonpic_symbol_mentioned_p): Allow UNSPEC_TPOFF.
+
 2009-10-21  Jakub Jelinek  <jakub@redhat.com>
 
 	PR other/25507
diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c
index 7758bfa0f3bd..26bceea670d2 100644
--- a/gcc/config/sh/sh.c
+++ b/gcc/config/sh/sh.c
@@ -9431,6 +9431,7 @@ nonpic_symbol_mentioned_p (rtx x)
 	  || XINT (x, 1) == UNSPEC_GOTPLT
 	  || XINT (x, 1) == UNSPEC_GOTTPOFF
 	  || XINT (x, 1) == UNSPEC_DTPOFF
+	  || XINT (x, 1) == UNSPEC_TPOFF
 	  || XINT (x, 1) == UNSPEC_PLT
 	  || XINT (x, 1) == UNSPEC_SYMOFF
 	  || XINT (x, 1) == UNSPEC_PCREL_SYMOFF))
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index b1c3fdcb2de5..ec986f3270ba 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2009-10-21  Joseph Myers  <joseph@codesourcery.com>
+
+	* gcc.dg/tls/pie-1.c: New test.
+
 2009-10-21  Jakub Jelinek  <jakub@redhat.com>
 
 	* g++.dg/abi/mangle33.C: New test.
diff --git a/gcc/testsuite/gcc.dg/tls/pie-1.c b/gcc/testsuite/gcc.dg/tls/pie-1.c
new file mode 100644
index 000000000000..07eb5f1ad25c
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tls/pie-1.c
@@ -0,0 +1,6 @@
+/* { dg-do compile } */
+/* { dg-require-effective-target fpic } */
+/* { dg-options "-fpie" } */
+/* { dg-require-effective-target tls } */
+
+__thread int a; int b; int main() { return a = b; }
-- 
GitLab