aboutsummaryrefslogtreecommitdiff
path: root/gcc/lto-streamer-in.c
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2010-03-03 14:02:08 -0500
committerJason Merrill <jason@gcc.gnu.org>2010-03-03 14:02:08 -0500
commit1d5053d6b407b6fc493151a3581df7c628ffa72b (patch)
tree194d8b86327b39798460337e66b7e50860713988 /gcc/lto-streamer-in.c
parent2c71ac786646a4ed4d221a574b2797c66549e9d6 (diff)
downloadgcc-1d5053d6b407b6fc493151a3581df7c628ffa72b.zip
gcc-1d5053d6b407b6fc493151a3581df7c628ffa72b.tar.gz
gcc-1d5053d6b407b6fc493151a3581df7c628ffa72b.tar.bz2
re PR c++/12909 (ambiguity in mangling vector types)
PR c++/12909 * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias. * lto-streamer-in.c (lto_input_tree): Read it. * lto-streamer-out.c (output_unreferenced_globals): Write it. From-SVN: r157204
Diffstat (limited to 'gcc/lto-streamer-in.c')
-rw-r--r--gcc/lto-streamer-in.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/gcc/lto-streamer-in.c b/gcc/lto-streamer-in.c
index 0955914..b098be2 100644
--- a/gcc/lto-streamer-in.c
+++ b/gcc/lto-streamer-in.c
@@ -2696,6 +2696,17 @@ lto_input_tree (struct lto_input_block *ib, struct data_in *data_in)
the code and class. */
result = lto_get_builtin_tree (ib, data_in);
}
+ else if (tag == LTO_var_decl_alias)
+ {
+ /* An extra_name alias for a variable. */
+ unsigned HOST_WIDE_INT ix;
+ tree target;
+ ix = lto_input_uleb128 (ib);
+ result = lto_file_decl_data_get_var_decl (data_in->file_data, ix);
+ ix = lto_input_uleb128 (ib);
+ target = lto_file_decl_data_get_var_decl (data_in->file_data, ix);
+ varpool_extra_name_alias (result, target);
+ }
else if (tag == lto_tree_code_to_tag (INTEGER_CST))
{
/* For integer constants we only need the type and its hi/low