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 <rguent...@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);