Skip to content
Snippets Groups Projects
Commit fe08ec12 authored by Dodji Seketeli's avatar Dodji Seketeli Committed by Dodji Seketeli
Browse files

re PR c++/44188 (Fails to produce DW_AT_typedef for typedef of anonymous struct)

Fix PR c++/44188

gcc/ChangeLog:
	PR c++/44188
	* c-common.c (is_typedef_decl): Move this definition ...
	* tree.c (is_typedef_decl): ... here.
	(typdef_variant_p): Move definition here from gcc/cp/tree.c.
	* c-common.h (is_typedef_decl): Move this declaration ...
	* tree.h (is_typedef_decl): ... here.
	(typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
	* dwarf2out.c (is_naming_typedef_decl): New function.
	(gen_tagged_type_die): Split out of ...
	(gen_type_die_with_usage): ... this function. When an anonymous
	tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
	is emitted for the typedef.
	(gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
	anonymous tagged types.

gcc/cp/ChangeLog:
	PR c++/44188
	* cp-tree.h (typedef_variant_p): Move this declaration to
	gcc/tree.h.
	* tree.c (typedef_variant_p): Move this definition to gcc/tree.c.
	* decl.c (grokdeclarator): Do not rename debug info of an
	anonymous tagged type named by a typedef.

gcc/testsuite/ChangeLog:
	PR c++/44188
	* g++.dg/debug/dwarf2/typedef3.C: New test.

From-SVN: r159943
parent b042534c
No related branches found
No related tags found
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment