diff options
author | rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-12-06 10:08:43 +0000 |
---|---|---|
committer | rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-12-06 10:08:43 +0000 |
commit | 6abc14d6891ceeca2f86ea17e7e5f3783764d4a4 (patch) | |
tree | f2118dbf4eb8774ccce7e602f8ed9a44eeed7b9f /gcc/lto | |
parent | 1e845e91d47647aea50c643f65b68a47bc57dd82 (diff) | |
download | gcc-6abc14d6891ceeca2f86ea17e7e5f3783764d4a4.tar.gz |
2010-12-06 Richard Guenther <rguenther@suse.de>
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
Diffstat (limited to 'gcc/lto')
-rw-r--r-- | gcc/lto/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/lto/lto-lang.c | 28 |
2 files changed, 33 insertions, 0 deletions
diff --git a/gcc/lto/ChangeLog b/gcc/lto/ChangeLog index 236f8d9ee9d..1b15d919e8c 100644 --- a/gcc/lto/ChangeLog +++ b/gcc/lto/ChangeLog @@ -1,3 +1,8 @@ +2010-12-06 Richard Guenther <rguenther@suse.de> + + PR lto/46796 + * lto-lang.c (lto_init): Give names to basic types. + 2010-11-30 Joseph Myers <joseph@codesourcery.com> * lto-object.c: Don't include toplev.h. diff --git a/gcc/lto/lto-lang.c b/gcc/lto/lto-lang.c index c7ca949b179..de51eb08340 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; |