From c7b89256f73ad16b147bec0176ebacf9ca8d9454 Mon Sep 17 00:00:00 2001 From: jason Date: Fri, 4 Nov 2011 12:54:08 +0000 Subject: PR c++/48370 * call.c (extend_ref_init_temps, extend_ref_init_temps_1): New. (set_up_extended_ref_temp): Use it. Change cleanup parm to VEC. (initialize_reference): Just call convert_like. * decl.c (grok_reference_init): Just call initialize_reference. (build_init_list_var_init): Remove. (check_initializer): Change cleanup parm to VEC. Handle references like other types. Call perform_implicit_conversion instead of build_init_list_var_init. Don't use build_aggr_init for aggregate initialization of arrays. (cp_finish_decl): Change cleanup to VEC. * typeck2.c (store_init_value): Call extend_ref_init_temps. Use build_vec_init for non-constant arrays. * init.c (expand_aggr_init_1): Adjust. (build_vec_init): Avoid re-converting an initializer that's already digested. * mangle.c (mangle_ref_init_variable): Add a discriminator. * cp-tree.h: Adjust. * typeck.c (convert_for_initialization): Adjust. * decl2.c (maybe_emit_vtables): Adjust. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180944 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/cp/mangle.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'gcc/cp/mangle.c') diff --git a/gcc/cp/mangle.c b/gcc/cp/mangle.c index 69fe147f480..7c907b83394 100644 --- a/gcc/cp/mangle.c +++ b/gcc/cp/mangle.c @@ -3503,12 +3503,17 @@ mangle_guard_variable (const tree variable) initialize a static reference. This isn't part of the ABI, but we might as well call them something readable. */ +static GTY(()) int temp_count; + tree mangle_ref_init_variable (const tree variable) { start_mangling (variable); write_string ("_ZGR"); write_name (variable, /*ignore_local_scope=*/0); + /* Avoid name clashes with aggregate initialization of multiple + references at once. */ + write_unsigned_number (temp_count++); return finish_mangling_get_identifier (/*warn=*/false); } -- cgit v1.2.1 From 8db4804bd28548beae164c787f232bf44f679b80 Mon Sep 17 00:00:00 2001 From: paolo Date: Fri, 4 Nov 2011 17:51:20 +0000 Subject: 2011-11-04 Paolo Carlini * typeck.c (build_indirect_ref): Use ATTRIBUTE_UNUSED. * mangle.c (write_unnamed_type_name): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180970 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/cp/mangle.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gcc/cp/mangle.c') diff --git a/gcc/cp/mangle.c b/gcc/cp/mangle.c index 7c907b83394..548998a086f 100644 --- a/gcc/cp/mangle.c +++ b/gcc/cp/mangle.c @@ -1339,7 +1339,7 @@ nested_anon_class_index (tree type) /* ::= Ut [ ] _ */ static void -write_unnamed_type_name (const tree type __attribute__ ((__unused__))) +write_unnamed_type_name (const tree type ATTRIBUTE_UNUSED) { int discriminator; MANGLE_TRACE_TREE ("unnamed-type-name", type); -- cgit v1.2.1