aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames E Wilson <wilson@tuliptree.org>2008-03-16 15:48:09 +0000
committerJohn David Anglin <danglin@gcc.gnu.org>2008-03-16 15:48:09 +0000
commitfcb9237b9cc863b563f4b82e04611c98a77dbb67 (patch)
tree1b98928faa2dd5b6375a978f42881bc5fd67e289
parent461f8762a0b00404770bbbcc288c741f931140e4 (diff)
downloadgcc-fcb9237b9cc863b563f4b82e04611c98a77dbb67.zip
gcc-fcb9237b9cc863b563f4b82e04611c98a77dbb67.tar.gz
gcc-fcb9237b9cc863b563f4b82e04611c98a77dbb67.tar.bz2
re PR debug/31510 (FAIL: libgomp.fortran/threadprivate[23].f90 -O3 -g)
PR debug/31510 * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for emulated thread local variables. From-SVN: r133274
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/dbxout.c9
2 files changed, 15 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 58d4785..fa2ed09 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2008-03-16 James E. Wilson <wilson@tuliptree.org>
+
+ PR debug/31510
+ * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
+ emulated thread local variables.
+
2008-03-16 Richard Guenther <rguenther@suse.de>
PR middle-end/35607
diff --git a/gcc/dbxout.c b/gcc/dbxout.c
index ad1b3c7..8b11a9a 100644
--- a/gcc/dbxout.c
+++ b/gcc/dbxout.c
@@ -2332,6 +2332,15 @@ dbxout_expand_expr (tree expr)
switch (TREE_CODE (expr))
{
case VAR_DECL:
+ /* We can't handle emulated tls variables, because the address is an
+ offset to the return value of __emutls_get_address, and there is no
+ way to express that in stabs. Also, there are name mangling issues
+ here. We end up with references to undefined symbols if we don't
+ disable debug info for these variables. */
+ if (!targetm.have_tls && DECL_THREAD_LOCAL_P (expr))
+ return NULL;
+ /* FALLTHRU */
+
case PARM_DECL:
if (DECL_HAS_VALUE_EXPR_P (expr))
return dbxout_expand_expr (DECL_VALUE_EXPR (expr));