aboutsummaryrefslogtreecommitdiff
path: root/gcc/dwarf2out.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2010-07-23 19:04:35 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2010-07-23 19:04:35 +0200
commitcd3f04c80fad8e262555d770b2feead794cd1f52 (patch)
treec71eded4af7626ba7706b47e3178b1847fd6c27d /gcc/dwarf2out.c
parent52e092abdd026f8270d08367a00d3ad2060c5be3 (diff)
downloadgcc-cd3f04c80fad8e262555d770b2feead794cd1f52.zip
gcc-cd3f04c80fad8e262555d770b2feead794cd1f52.tar.gz
gcc-cd3f04c80fad8e262555d770b2feead794cd1f52.tar.bz2
tree.h (struct tree_base): Add nameless_flag bitfield.
* tree.h (struct tree_base): Add nameless_flag bitfield. (TYPE_NAMELESS, DECL_NAMELESS): Define. * omp-low.c (create_omp_child_function, scan_omp_parallel, scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or DECL_ARTIFICIAL where needed. * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS. (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL has DECL_NAMELESS set. * trans-types.c (gfc_get_array_descriptor_base, gfc_get_array_type_bounds): Set TYPE_NAMELESS. * trans-decl.c (gfc_build_qualified_array): Set DECL_NAMELESS instead of clearing DECL_NAME. (gfc_build_dummy_array_decl): Set DECL_NAMELESS. From-SVN: r162476
Diffstat (limited to 'gcc/dwarf2out.c')
-rw-r--r--gcc/dwarf2out.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index 239f002..68b6483 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -11249,6 +11249,8 @@ output_comdat_type_unit (comdat_type_node *node)
static const char *
dwarf2_name (tree decl, int scope)
{
+ if (DECL_NAMELESS (decl))
+ return NULL;
return lang_hooks.dwarf_name (decl, scope ? 1 : 0);
}
@@ -17717,7 +17719,8 @@ type_tag (const_tree type)
tree t = 0;
/* Find the IDENTIFIER_NODE for the type name. */
- if (TREE_CODE (TYPE_NAME (type)) == IDENTIFIER_NODE)
+ if (TREE_CODE (TYPE_NAME (type)) == IDENTIFIER_NODE
+ && !TYPE_NAMELESS (type))
t = TYPE_NAME (type);
/* The g++ front end makes the TYPE_NAME of *each* tagged type point to
@@ -17730,7 +17733,8 @@ type_tag (const_tree type)
DECL_NAME isn't set. The default hook for decl_printable_name
doesn't like that, and in this context it's correct to return
0, instead of "<anonymous>" or the like. */
- if (DECL_NAME (TYPE_NAME (type)))
+ if (DECL_NAME (TYPE_NAME (type))
+ && !DECL_NAMELESS (TYPE_NAME (type)))
name = lang_hooks.dwarf_name (TYPE_NAME (type), 2);
}