PR c++/20805
* dwarf2out.c (gen_variable_die): Don't emit a specification if this
is another declaration.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@98473
138bc75d-0d04-0410-961f-
82ee72b054a4
copy decls and set the DECL_ABSTRACT flag on them instead of
sharing them.
copy decls and set the DECL_ABSTRACT flag on them instead of
sharing them.
- ??? Duplicated blocks have been rewritten to use .debug_ranges. */
- else if (old_die && TREE_STATIC (decl)
+ ??? Duplicated blocks have been rewritten to use .debug_ranges.
+
+ ??? The declare_in_namespace support causes us to get two DIEs for one
+ variable, both of which are declarations. We want to avoid considering
+ one to be a specification, so we must test that this DIE is not a
+ declaration. */
+ else if (old_die && TREE_STATIC (decl) && ! declaration
&& get_AT_flag (old_die, DW_AT_declaration) == 1)
{
/* This is a definition of a C++ class level static. */
&& get_AT_flag (old_die, DW_AT_declaration) == 1)
{
/* This is a definition of a C++ class level static. */