diff options
author | James E Wilson <wilson@tuliptree.org> | 2008-03-16 15:48:09 +0000 |
---|---|---|
committer | John David Anglin <danglin@gcc.gnu.org> | 2008-03-16 15:48:09 +0000 |
commit | fcb9237b9cc863b563f4b82e04611c98a77dbb67 (patch) | |
tree | 1b98928faa2dd5b6375a978f42881bc5fd67e289 | |
parent | 461f8762a0b00404770bbbcc288c741f931140e4 (diff) | |
download | gcc-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/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/dbxout.c | 9 |
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)); |