From 6abc14d6891ceeca2f86ea17e7e5f3783764d4a4 Mon Sep 17 00:00:00 2001 From: rguenth Date: Mon, 6 Dec 2010 10:08:43 +0000 Subject: [PATCH] 2010-12-06 Richard Guenther PR lto/46796 * lto-lang.c (lto_init): Give names to basic types. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@167487 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/lto/ChangeLog | 5 +++++ gcc/lto/lto-lang.c | 28 ++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/gcc/lto/ChangeLog b/gcc/lto/ChangeLog index 236f8d9..1b15d91 100644 --- a/gcc/lto/ChangeLog +++ b/gcc/lto/ChangeLog @@ -1,3 +1,8 @@ +2010-12-06 Richard Guenther + + PR lto/46796 + * lto-lang.c (lto_init): Give names to basic types. + 2010-11-30 Joseph Myers * lto-object.c: Don't include toplev.h. diff --git a/gcc/lto/lto-lang.c b/gcc/lto/lto-lang.c index c7ca949..de51eb0 100644 --- a/gcc/lto/lto-lang.c +++ b/gcc/lto/lto-lang.c @@ -1142,6 +1142,34 @@ lto_init (void) targetm.init_builtins (); build_common_builtin_nodes (); + /* Assign names to the builtin types, otherwise they'll end up + as __unknown__ in debug info. + ??? We simply need to stop pre-seeding the streamer cache. + Below is modeled after from c-common.c:c_common_nodes_and_builtins */ +#define NAME_TYPE(t,n) \ + if (t) \ + TYPE_NAME (t) = build_decl (UNKNOWN_LOCATION, TYPE_DECL, \ + get_identifier (n), t) + NAME_TYPE (integer_type_node, "int"); + NAME_TYPE (char_type_node, "char"); + NAME_TYPE (long_integer_type_node, "long int"); + NAME_TYPE (unsigned_type_node, "unsigned int"); + NAME_TYPE (long_unsigned_type_node, "long unsigned int"); + NAME_TYPE (long_long_integer_type_node, "long long int"); + NAME_TYPE (long_long_unsigned_type_node, "long long unsigned int"); + NAME_TYPE (short_integer_type_node, "short int"); + NAME_TYPE (short_unsigned_type_node, "short unsigned int"); + if (signed_char_type_node != char_type_node) + NAME_TYPE (signed_char_type_node, "signed char"); + if (unsigned_char_type_node != char_type_node) + NAME_TYPE (unsigned_char_type_node, "unsigned char"); + NAME_TYPE (float_type_node, "float"); + NAME_TYPE (double_type_node, "double"); + NAME_TYPE (long_double_type_node, "long double"); + NAME_TYPE (void_type_node, "void"); + NAME_TYPE (boolean_type_node, "bool"); +#undef NAME_TYPE + /* Initialize LTO-specific data structures. */ lto_global_var_decls = VEC_alloc (tree, gc, 256); in_lto_p = true; -- 2.7.4