- 12 Sep, 2005 19 commits
-
-
re PR c++/7874 (g++ finds friend functions defined in class-definition but not declared in the enclosing namespace) ./ PR g++/7874 * c.opt (ffriend-injection): New C++ option. * doc/invoke.texi (Option Summary): Mention -ffriend-injection. (C++ Dialect Options): Document -ffriend-injection. cp/ PR g++/7874 * cp-tree.h (struct lang_decl_flags): Add hidden_friend_p bitfield. Make dummy bitfield one bit smaller. (DECL_HIDDEN_FRIEND_P): Define. (pushdecl_maybe_friend): Declare. (pushdecl_top_level_maybe_friend): Declare. * decl.c (duplicate_decls): Add newdecl_is_friend parameter. Change prototype and all callers. Add assertion that a DECL_ARTIFICIAL FUNCTION_DECL is not DECL_HIDDEN_FRIEND_P. Set DECL_ANTICIPATED and DECL_HIDDEN_FRIEND_P in duplicated decl if appropriate. * name-lookup.c (supplement_binding): Don't ignore a DECL_HIDDEN_FRIEND_P. (pushdecl_maybe_friend): Break out contents of pushdecl. Add is_friend parameter. Set DECL_ANTICIPATED and DECL_HIDDEN_FRIEND_P for a friend function. (pushdecl): Just call pushdecl_maybe_friend. (pushdecl_with_scope): Add is_friend parameter. Change prototype and all callers. (pushdecl_namespace_level): Likewise. (push_overloaded_decl): Likewise. Check DECL_HIDDEN_FRIEND_P as well as DECL_ANTICIPATED when checking for a builtin. (do_nonmember_using_decl): Check DECL_HIDDEN_FRIEND_P as well as DECL_ANTICIPATED when checking for a builtin. (do_nonmember_using_decl): Likewise. (pushdecl_top_level_1): Add is_friend parameter. Change all callers. (pushdecl_top_level_maybe_friend): New function. (remove_hidden_names): New function. (struct arg_lookup): Add args field. (friend_of_associated_class_p): New static function. (arg_assoc_namespace): Ignore hidden functions which are not friends of an associated class of some argument. (lookup_arg_dependent): Remove hidden functions from list passed in. Initialize k.args. * name-lookup.h (remove_hidden_names): Declare. * friend.c (do_friend): Call pushdecl_maybe_friend instead of pushdecl. * call.c (add_function_candidate): Change DECL_ANTICIPATED test to an assertion, with a check for DECL_HIDDEN_FRIEND_P. (build_new_function_call): Add koenig_p parameter. Change prototype and callers. * pt.c (register_specialization): Add is_friend parameter. Change all callers. (push_template_decl_real): Change is_friend parameter to bool. Change prototype and all callers. (tsubst_friend_class): Call pushdecl_top_level_maybe_friend instead of pushdecl_top_level. testsuite/ PR g++/7874 * g++.dg/lookup/friend7.C: New test. * g++.dg/lookup/friend8.C: New test. * g++.dg/parse/defarg4.C: Add a parameter to the friend function, so that it will be found via argument dependent lookup. * g++.old-deja/g++.brendan/crash56.C: Don't expect errors for friend functions which will no longer be found. * g++.old-deja/g++.jason/friend.C: Add a parameter to the friend function g, so that it will be found via argument dependent lookup. * g++.old-deja/g++.jason/scoping15.C: Use -ffriend-injection. * g++.old-deja/g++.mike/net43.C: Likewise. From-SVN: r104188
Ian Lance Taylor committed -
2005-09-12 Benjamin Kosnik <bkoz@redhat.com> PR libstdc++/23417 * include/bits/stl_list.h (_List_impl): Use member initialization list for -Weffc++. From-SVN: r104187
Benjamin Kosnik committed -
re PR c++/23691 (`mpl_::bool_<false>::value' is not a valid template argument for type `bool' because it is a non-constant expression) PR c++/23691 * g++.dg/template/static16.C: New test. From-SVN: r104186
Mark Mitchell committed -
From-SVN: r104184
Tom Tromey committed -
which included commits to RCS files with non-trunk default branches. From-SVN: r104182
Tom Tromey committed -
From-SVN: r104179
Tom Tromey committed -
pr middle-end/23237 * gcc.c-torture/compile/pr23237.c: New test. From-SVN: r104177
Josh Conner committed -
pr middle-end/23237 * ipa-reference.c (static_execute): Don't mark variables in named sections TREE_READONLY. From-SVN: r104176
Josh Conner committed -
* config/rs6000/rs6000.c (get_next_active_insn): Simplify test for stack_tie. From-SVN: r104173
Alan Modra committed -
tree-ssa-dse.c (dse_optimize_stmt): Fix up all of V_MAY_DEF and V_MUST_DEF instead of just the first_use_p. 2005-09-12 Andrew Pinski <pinskia@physics.uc.edu> * tree-ssa-dse.c (dse_optimize_stmt): Fix up all of V_MAY_DEF and V_MUST_DEF instead of just the first_use_p. Don't mark the virtual variables for renaming on the statement which is being removed. (pass_dse): Remove TODO_update_ssa. From-SVN: r104172
Andrew Pinski committed -
PR middle-end/23290 * stor-layout.c (compute_record_mode): For records with a single field, actually check the field's mode size against the type size. From-SVN: r104171
J"orn Rennecke committed -
* sh.h (HARD_REGNO_MODE_OK): Allow V4SFmode in general purpose registers for TARGET_SHMEDIA. (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Rename GENERAL_FP_REGS to GENERAL_DF_REGS. Add GENERAL_FP_REGS as union of GENERAL_REGS and FP_REGS. From-SVN: r104170
J"orn Rennecke committed -
From-SVN: r104168
Bernd Schmidt committed -
2005-09-12 Paolo Carlini <pcarlini@suse.de> PR libstdc++/23767 * include/bits/stl_iterator.h (__normal_iterator:: __normal_iterator<>(const __normal_iterator<_Iter, _Container>&)): Enable only when _Iter is equal to _Container::pointer. * testsuite/21_strings/basic_string/types/23767.cc: New. * testsuite/23_containers/vector/types/23767.cc: Likewise. * testsuite/ext/vstring/types/23767.cc: Likewise. From-SVN: r104167
Paolo Carlini committed -
From-SVN: r104165
Richard Henderson committed -
2005-09-11 Benjamin Kosnik <bkoz@redhat.com> PR libstdc++/19265 PR libstdc++/22309 * include/ext/mt_allocator.h (__gnu_cxx::__create_handler): Remove. (__pool<true>::_M_destroy_thread_key): Compatibility only. (__pool<true>::_M_initialize(__destroy): Same. (__pool<true>::_M_initialize): New. (__pool<true>::_M_initialize_once): Nothing fancy. (__pool<true>::_M_once): Remove. (__common_pool): New. (__common_pool_base): New. (__per_type_pool): New. (__per_type_pool_base): New. * src/mt_allocator.cc: Same. * config/linker-map.gnu (__pool<true>::_M_initialize()): Add. 2005-09-11 Jakub Jelinek <jakub@redhat.com> PR libstdc++/19265 PR libstdc++/22309 * src/mt_allocator.cc (__gnu_internal::freelist_mutex): Make static. (__gnu_internal::__freelist): New type. (__gnu_internal::freelist): New variable. (__gnu_internal::_M_destroy_thread_key): New function. (__gnu_cxx::__pool<true>::_M_destroy): Don't delete _M_thread_freelist_initial. (__gnu_cxx::__pool<true>::_M_initialize): Make argument nameless. Don't use _M_thread_freelist and _M_thread_freelist_initial __pool<true> fields, instead use __gnu_internal::freelist fields, call gthread_key_create just once. Use __gnu_internal::_M_destroy_thread_key as key destructor. (__gnu_cxx::__pool<true>::_M_get_thread_id): Store size_t id rather than _Thread_record* in the thread specific value. Don't use _M_thread_freelist __pool<true> field, instead use __gnu_internal::freelist fields. (__gnu_cxx::__pool<true>::_M_destroy_thread_key): Do nothing. 2005-09-11 Benjamin Kosnik <bkoz@redhat.com> Jakub Jelinek <jakub@redhat.com> PR libstdc++/19265 PR libstdc++/22309 * testsuite/testsuite_shared.cc: New. * testsuite/lib/dg-options.exp (dg-require-sharedlib): New. * testsuite/lib/libstdc++.exp (libstdc++_init): Look for shared library, and set v3-sharedlib based on this. (check_v3_target_sharedlib): New. (proc v3-build_support): Build shared objects. * testsuite/ext/mt_allocator/22309_thread.cc: New, use above. From-SVN: r104161
Benjamin Kosnik committed -
* decl2.c (build_anon_union_vars): Copy attributes from the base addr. * pt.c (tsubst_decl): Substitute in DECL_VALUE_EXPR. * g++.dg/other/error8.C: Update expected diagnostic text. From-SVN: r104160
Richard Henderson committed -
* config/rs6000/rs6000.c (get_next_active_insn): Rewrite using CALL_P, JUMP_P and NONJUMP_INSN_P, so that barriers and labels are omitted. Exclude stack_tie insn too. From-SVN: r104159
Alan Modra committed -
[[Split portion of a mixed commit.]] From-SVN: r104147.2
GCC Administrator committed
-
- 11 Sep, 2005 7 commits
-
-
PR rtl-optimization/23098 * config/rs6000/predicates.md (easy_fp_constant): SFmode constant 0.0f is easy. * config/rs6000/rs6000.md (movdf splitter): Use const_double_operand predicate for TARGET_POWERPC64. * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Expand SYMBOL_REF method to ABI_V4. * config/rs6000/altivec.md (build_vector_mask_for_load): Use replace_equiv_address. * config/rs6000/rs6000.c (rs6000_emit_eh_reg_restore): Mark MEM as rs6000_sr_alias_set and MEM_NOTRAP. (rs6000_aix_emit_builtin_unwind_init): Use gen_frame_mem(). From-SVN: r104145
David Edelsohn committed -
* tree.c (contains_placeholder_p) <tcc_expression>: Properly handle CALL_EXPR again. From-SVN: r104144
Eric Botcazou committed -
PR libfortran/19872 * gfortran.dg/overwrite_1.f: New test. From-SVN: r104143
Francois-Xavier Coudert committed -
PR libfortran/20179 * io/unix.c (is_preconnected): Add function to test if a stream corresponds to a preconnected unit. * io/io.h: Add prototype for is_preconnected. * io/transfer.c (data_transfer_init): Do not truncate preconnected units. From-SVN: r104141
Francois-Xavier Coudert committed -
2005-09-11 Paolo Carlini <pcarlini@suse.de> PR libstdc++/23781 * include/bits/stl_list.h (_List_iterator<>:: _List_iterator(_List_node_base*), _List_const_iterator<>:: _List_const_iterator(const _List_node_base*)): Make explicit. (list<>::begin(), list<>::end(), list<>::pop_back()): Adjust consistently. * include/bits/list.tcc (list<>::insert, list<>::erase): Adjust consistently. * include/bits/stl_tree.h (_Rb_tree_iterator<>:: _Rb_tree_iterator(_Link_type), _Rb_tree_const_iterator<>:: _Rb_tree_const_iterator(_Link_type)): Make explicit. (_Rb_tree<>::begin(), _Rb_tree<>::end()): Adjust consistently. * include/ext/slist (_Slist_iterator<>::_Slist_iterator(_Node*)): Make explicit. (slist<>::erase(iterator), slist<>::erase(iterator, iterator)): Adjust consistently. * include/tr1/hashtable (hashtable_iterator<>:: hashtable_iterator(hash_node<>**)): Make explicit. * testsuite/23_containers/list/23781.cc: New. * testsuite/23_containers/map/23781.cc: Likewise. * testsuite/23_containers/multimap/23781.cc: Likewise. * testsuite/23_containers/multiset/23781.cc: Likewise. * testsuite/23_containers/set/23781.cc: Likewise. * testsuite/ext/slist/23781.cc: Likewise. * testsuite/tr1/6_containers/unordered/23781.cc: Likewise. * testsuite/23_containers/map/operators/1_neg.cc: Adjust dg-error line numbers. * testsuite/23_containers/set/operators/1_neg.cc: Likewise. * include/tr1/array (array<>::begin(), array<>::end()): Adjust stylistically for consistency with the other containers. From-SVN: r104139
Paolo Carlini committed -
From-SVN: r104138
Richard Earnshaw committed -
[[Split portion of a mixed commit.]] From-SVN: r104133.2
GCC Administrator committed
-
- 10 Sep, 2005 6 commits
-
-
PR debug/23806 * dbxout.c (dbxout_expand_expr): New. (dbxout_symbol): Use it. From-SVN: r104129
Richard Henderson committed -
2005-09-10 Janne Blomqvist <jblomqvi@cc.hut.fi> * io/unix.c: Remove mmap code. From-SVN: r104127
Janne Blomqvist committed -
* testsuite/26_numerics/cmath/c99_classification_macros_c.cc: XFAIL on *-*-linux*, not *-*-linux-gnu. From-SVN: r104125
Joseph Myers committed -
* arm.c (arm_gen_rotated_half_load): Delete. (vfp_emit_fstmx, arm_set_return_address): Use gen_frame_mem. (emit_multi_reg_push, emit_sfm, arm_expand_prologue) (thumb_set_return_address): Likewise. (thumb_load_double_from_address): Use adjust_address. * arm.md (splits calling arm_gen_rotated_half_load): Delete. (extendhsisi2_mem, movhi_bytes): Use change_address. (movhi): Use widen_memory_access. (reload_out_df): Use replace_equiv_address. * arm-protos.h (arm_gen_rotated_half_load): Delete prototype. From-SVN: r104124
Richard Earnshaw committed -
* g++.dg/init/pr23180-1.C: Removed. * g++.dg/init/pr23180-2.C: Removed. From-SVN: r104122
Josh Conner committed -
[[Split portion of a mixed commit.]] From-SVN: r104119.2
GCC Administrator committed
-
- 09 Sep, 2005 8 commits
-
-
2005-09-09 David Daney <ddaney@avtrex.com> * gcc.c-torture/execute/20010124-1.c: Removed and split into two new files which are ... * gcc.c-torture/execute/builtins/20010124-1: ... here and ... * gcc.c-torture/execute/builtins/20010124-1-lib.c: ... here. From-SVN: r104116
David Daney committed -
* parser.c (cp_parser_translation_unit): Simplify. The while-block was actually executed at most once. From-SVN: r104115
Gabriel Dos Reis committed -
From-SVN: r104110
Francois-Xavier Coudert committed -
PR libfortran/23784 * io/close.c (st_close): Call library_end even in case of error. From-SVN: r104108
Francois-Xavier Coudert committed -
* dbxout.c: Include expr.h. (dbxout_global_decl): Don't suppress for DECL_RTL unset. (dbxout_symbol): Handle DECL_VALUE_EXPR. * Makefile.in (dbxout.o): Add EXPR_H. cp/ * cp-tree.def (ALIAS_DECL): Remove. * cp-lang.c (cp_init_ts): Remove support for it. * error.c (dump_decl): Likewise. * name-lookup.c (pushdecl): Likewise. * semantics.c (finish_id_expression): Likewise. * decl2.c (build_anon_union_vars): Use a VAR_DECL with DECL_VALUE_EXPR instead. From-SVN: r104106
Richard Henderson committed -
gfortran.texi: Document IOSTAT= specifier. From-SVN: r104104
Thomas Koenig committed -
PR c++/22252 * decl.c (start_preparsed_function): Do not pay attention to #pragma interface for implicitly-defined methods. * decl2.c (cp_finish_file): Do not complain about uses of inline functions that have bodies, even if we decided not to emit the body in this translation unit. * semantics.c (note_decl_for_pch): Do not mess with linkage. (expand_or_defer_fn): Make inline, non-template functions COMDAT at this point. PR c++/22252 * g++.dg/ext/interface1.C: New test. * g++.dg/ext/interface1.h: Likewise. * g++.dg/ext/interface1a.cc: Likewise. From-SVN: r104103
Mark Mitchell committed -
2005-09-09 Thomas Koenig <Thomas.Koenig@online.de> * gfortran.h: Add iomsg to gfc_open, gfc_close, gfc_filepos, gfc_inquire and gfc_dt. * dump-parse-tree.c (gfc_show_code_node): Add iomsg for open, close, file positioning, inquire and namelist. * io.c (io_tag): Add tag_iomsg. (resolve_tag): Add standards warning for iomsg. (match_open_element): Add iomsg. (gfc_free_open): Add iomsg. (gfc_resolve_open): Add iomsg. (gfc_free_close): Add iomsg. (match_close_element): Add iomsg. (gfc_resolve_close): Add iomsg. (gfc_free_filepos): Add iomsg. (match_file_element): Add iomsg. (gfc_resolve_filepos): Add iostat and iomsg. (match-dt_element): Add iomsg. (gfc_free_dt): Add iomsg. (gfc_resolve_dt): Add iomsg. (gfc_free_inquire): Add iomsg. (match_inquire_element): Add iomsg. (gfc_resolve_inquire): Add iomsg. * trans_io.c: Add ioparm_iomsg and ioparm_iomsg_len. (gfc_build_io_library_fndecls): Add iomsg as last field. (gfc_trans_open): Add iomsg. (gfc_trans_close): Add iomsg. (build_fileos): Call set_string for iomsg. (gfc_trans_inquire): Add iomsg. (build_dt): Add iomsg. 2005-09-09 Thomas Koenig <Thomas.Koenig@online.de> * io/io.h: Add iomsg as last field of st_parameter. * runtime/error.c (generate_error): If iomsg is present, copy the message there. 2005-09-09 Thomas Koenig <Thomas.Koenig@online.de> * gfortran.dg/iomsg_1.f90: New test case. From-SVN: r104102
Thomas Koenig committed
-