[PATCH] Fix PR62190

Richard Biener rguenther@suse.de
Wed Aug 20 11:03:00 GMT 2014


The C frontend commonizes uint{16,32,64}_type_node with existing
integer type nodes and thus gets proper "names" for them.  The
LTO frontend (and tree.c common code) keeps them separate
and thus debugs as __unknown__.  The following patch arranges
the common code in build_common_tree_nodes to use
make_or_reuse_type for those.

Bootstrapped and tested on x86_64-unknown-linux-gnu, applied.

Richard.

2014-08-20  Richard Biener  <rguenther@suse.de>

	PR lto/62190
	* tree.c (build_common_tree_nodes): Use make_or_reuse_type
	to build uint{16,32,64}_type_node.

Index: gcc/tree.c
===================================================================
--- gcc/tree.c	(revision 214212)
+++ gcc/tree.c	(working copy)
@@ -9698,9 +9698,9 @@ build_common_tree_nodes (bool signed_cha
   integer_ptr_type_node = build_pointer_type (integer_type_node);
 
   /* Fixed size integer types.  */
-  uint16_type_node = build_nonstandard_integer_type (16, true);
-  uint32_type_node = build_nonstandard_integer_type (32, true);
-  uint64_type_node = build_nonstandard_integer_type (64, true);
+  uint16_type_node = make_or_reuse_type (16, 1);
+  uint32_type_node = make_or_reuse_type (32, 1);
+  uint64_type_node = make_or_reuse_type (64, 1);
 
   /* Decimal float types. */
   dfloat32_type_node = make_node (REAL_TYPE);



More information about the Gcc-patches mailing list