aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree.c
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2019-02-10 11:46:43 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2019-02-10 10:46:43 +0000
commit4c0d3f7728752d436ca4c7b4d0ae6039c5cc7757 (patch)
treeceb3e0db5fac2156ff4ad5612e196490a585fe2f /gcc/tree.c
parentc5ca5ad070e543a2ed62c73f9e19aa27e5992bd4 (diff)
downloadgcc-4c0d3f7728752d436ca4c7b4d0ae6039c5cc7757.zip
gcc-4c0d3f7728752d436ca4c7b4d0ae6039c5cc7757.tar.gz
gcc-4c0d3f7728752d436ca4c7b4d0ae6039c5cc7757.tar.bz2
re PR lto/89272 (r268728 caused FAIL: g++.dg/lto/pr65316 cp_lto_pr65316_0.o assemble)
PR lto/89272 * tree.c (fld_simplified_type_name): Also keep TYPE_DECL for polymorphic types. From-SVN: r268742
Diffstat (limited to 'gcc/tree.c')
-rw-r--r--gcc/tree.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/tree.c b/gcc/tree.c
index 3e51a85..b8be295 100644
--- a/gcc/tree.c
+++ b/gcc/tree.c
@@ -5153,7 +5153,10 @@ fld_simplified_type_name (tree type)
TYPE_DECL if the type doesn't have linkage.
this must match fld_ */
if (type != TYPE_MAIN_VARIANT (type)
- || !DECL_ASSEMBLER_NAME_SET_P (TYPE_NAME (type)))
+ || (!DECL_ASSEMBLER_NAME_SET_P (TYPE_NAME (type))
+ && (TREE_CODE (type) != RECORD_TYPE
+ || !TYPE_BINFO (type)
+ || !BINFO_VTABLE (TYPE_BINFO (type)))))
return DECL_NAME (TYPE_NAME (type));
return TYPE_NAME (type);
}