aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/cp-tree.h
AgeCommit message (Collapse)Author
2005-12-13 * Revert 2005-12-07 Devang Patel <dpatel@apple.com> Radar 4137741apple/gcc-5309Mike Stump
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/apple-local-200502-branch@108484 138bc75d-0d04-0410-961f-82ee72b054a4
2005-12-07[gcc/ChangeLog.apple-ppc]Devang Patel
2005-06-19 Ziemowit Laski <zlaski@apple.com> Radar 4137741 * Makefile.in (c-lex.o): Revert langhooks.h dependency. (langhooks.o): Revert debug.h dependency. * c-lex.c: Do not include langhooks.h. (fe_file_change): Revert lang_hooks calls; issue debug_hooks calls only if defer_file_change_debug_hooks flag is cleared. (c_lex_with_flags): Propagate line number information for CPP_BINCL and CPP_EINCL tokens. * langhooks-def.h: Revert Radar 4133801 changes. * langhooks.c: Likewise. * langhooks.h: Likewise. [gcc/cp/ChangeLog.apple-ppc] 2005-06-19 Ziemowit Laski <zlaski@apple.com> Radar 4137741 * cp-objcp-common.h: Revert Radar 4133801 changes. * cp-tree.h: Likewise. * decl2.c: Likewise. * parser.c: Likewise. (cp_lexer_handle_pragma): Rename to cp_lexer_handle_pragma_etc(); handle CPP_BINCL and CPP_EINCL tokens in addition to CPP_PRAGMA. (cp_lexer_new_main): Set defer_file_change_debug_hooks flag in preprocessor. (cp_parser_statement, cp_parser_declaration_seq_opt, cp_parser_member_specification_opt, cp_parser_cw_asm_declaration_seq_opt, cp_parser_cw_asm_statement, cp_parser_objc_interstitial_code): Call cp_lexer_handle_pragma_etc() for CPP_BINCL and CPP_EINCL tokens also. [libcpp/ChangeLog.apple-ppc] 2005-06-19 Ziemowit Laski <zlaski@apple.com> Radar 4137741 * directives.c (_cpp_do_file_change): If preprocessor defer_file_change_debug_hooks flag is set, synthesize CPP_BINCL and CPP_EINCL tokens. * init.c (cpp_create_reader): Initialize token run (and associated pointers) for storing CPP_EINCL tokens. * internal.h (struct cpp_reader): Add new fields for storing CPP_EINCL tokens. (_cpp_next_tokenrun): Add declaration. * lex.c (next_tokenrun): Make externally visible and rename to _cpp_next_tokenrun(). (_cpp_temp_token): Call _cpp_next_tokenrun() instead of next_tokenrun(). (_cpp_lex_token): Likewise; return any pending CPP_EINCL tokens before returning token actually read. * include/cpplib.h (TTYPE_TABLE): Define new CPP_BINCL and CPP_EINCL token types, similar to CPP_PRAGMA. (cpp_options): Define new defer_file_change_debug_hooks flag. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/apple-local-200502-branch@108177 138bc75d-0d04-0410-961f-82ee72b054a4
2005-10-03Radar 4248228 MS asms: GCC errors on some intel assembly referencing C valuesMike Stump
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/apple-local-200502-branch@104908 138bc75d-0d04-0410-961f-82ee72b054a4
2005-08-042005-07-25 Fariborz Jahanian <fjahanian@apple.com>Fariborz Jahanian
Radar 4187916 * cp-tree.h (can_convert_arg, fn_type_unification): New argument. * call.c (add_template_candidate_real): Pass down 'flags' to fn_type_unification. (can_convert_arg): New 'flags' argument. Pass it to call to implicit_conversion instead of LOOKUP_NORMAL. * class.c (resolve_address_of_overloaded_function): Add LOOKUP_NORMAL in call to can_convert_arg. (resolve_address_of_overloaded_function): Ditto. * decl.c (reshape_init, check_default_argument): Ditto. * typeck.c (build_ptrmemfunc): Ditto. * typeck2.c (digest_init): Ditto. (unify): Add LOOKUP_NORMAL to call to type_unification_real. * pt.c (type_unification_real): Add 'flags' argument. (fn_type_unification): Pass 'flags' to type_unification_real. (type_unification_real): Pass new 'flags' argument to call to can_convert_arg. Oked by Devang. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/apple-local-200502-branch@102748 138bc75d-0d04-0410-961f-82ee72b054a4
2005-08-03 PR c++/22132Mark Mitchell
* call.c (implicit_conversion): Add c_cast_p parameter. (standard_conversion): Likewise. Allow conversions between differently-qualified pointer types when performing a C-style cast. (add_function_candidate): Adjust callee. (build_builtin_candidate): Likewise. (build_user_type_conversion_1): Likewise. (conditional_conversion): Likewise. (can_convert_arg): Likewise. (can_convert_arg_bad): Likewise. (perform_implicit_conversion): Likewise. * cp-tree.h (comp_ptr_ttypes_const): Declare. * typeck.c (comp_ptr_ttypes_const): Give it external linkage. Return bool. Radar 4076725 git-svn-id: https://gcc.gnu.org/svn/gcc/branches/apple-local-200502-branch@102678 138bc75d-0d04-0410-961f-82ee72b054a4
2005-07-26 Radar 4184203Devang Patel
Undo PR c++/1016 patch. 2005-03-13 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> * cp-tree.h (pushtag): Adjust declaration. * decl.c (lookup_and_check_tag): Call lookup_type_scope if lookup_name fails. (xref_tag): Adjust call to pushtag. Make hidden class visible. (start_enum): Adjust call to pushtag. * name-lookup.c (ambiguous_decl): Ignore hidden names. (qualify_lookup): Change return type to bool. (hidden_name_p): New function. (lookup_namespace_name, unqualified_namespace_lookup, lookup_name_real): Use it. (lookup_type_scope): Update comments. (maybe_process_template_type_declaration): Change parameter name from globalize to is_friend. (pushtag): Change globalize parameter of type int to tag_scope. Hide name if introduced by friend declaration. * name-lookup.h (hidden_name_p): Add declaration. * parser.c (cp_parser_lookup_name): Don't deal with hidden name here. * pt.c (push_template_decl_real): Make hidden class template visible. (lookup_template_class, instantiate_class_template): Adjust call to pushtag. * semantics.c (begin_class_definition): Likewise. * rtti.c (init_rtti_processing, build_dynamic_cast_1, tinfo_base_init, emit_support_tinfos): Use ts_current instead of ts_global. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/apple-local-200502-branch@102402 138bc75d-0d04-0410-961f-82ee72b054a4
2005-07-22 Radar 4167759Devang Patel
* common.opt (flimit-debug-info): New. * doc/invoke.texi: Document -flimit-debug-info. * class.c (finish_struct_1): Limit debug info for ctors/dtors. (cp_set_decl_ignore_flag): New. * cp-tree.h (cp_set_decl_ignore_flag): New. * search.c (note_debug_info_needed): Limit debug info for ctors/dtors. * gcc.apple/flimit-debug-info.c: New. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/apple-local-200502-branch@102297 138bc75d-0d04-0410-961f-82ee72b054a4
2005-07-09Merge in gcc_4_0_0_release to gcc_4_0_1_releaseMike Stump
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/apple-local-200502-branch@101836 138bc75d-0d04-0410-961f-82ee72b054a4
2005-06-10Merge in karma.Mike Stump
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/apple-local-200502-branch@100826 138bc75d-0d04-0410-961f-82ee72b054a4
2005-04-26Merge to tag gcc_4_0_0_release.Geoffrey Keating
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/apple-local-200502-branch@98787 138bc75d-0d04-0410-961f-82ee72b054a4
2005-04-09Merge to tag apple-local-merge-20050406.Geoffrey Keating
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/apple-local-200502-branch@97889 138bc75d-0d04-0410-961f-82ee72b054a4
2005-03-08rdar://4025978 objc++ needs to be updated for gcc-5000Ziemowit Laski
rdar://4039885 Need to re-do lvalue cast patch for C++ Approved by Mike Stump. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/apple-local-200502-branch@96140 138bc75d-0d04-0410-961f-82ee72b054a4
2005-03-04Merge changes between apple-ppc-merge-20041026 and apple-gcc-4049Geoffrey Keating
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/apple-local-200502-branch@95897 138bc75d-0d04-0410-961f-82ee72b054a4
2005-02-12 PR c++/14479Kriang Lerdsuwanakij
PR c++/19487 * pt.c (maybe_check_template_type): Remove. * cp-tree.h (maybe_check_template_type): Remove prototype. * name-lookup.c (maybe_process_template_type_declaration): Don't use maybe_check_template_type. * g++.dg/template/enum5.C: New test. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@94941 138bc75d-0d04-0410-961f-82ee72b054a4
2005-02-09 PR c++/19733Mark Mitchell
* class.c (add_method): Don't set TYPE_HAS_DESTRUCTOR. (check_bases): Give warnings about a base class with a non-virtual destructor, even if it is implicit. (finish_struct_bits): Don't copy TYPE_HAS_DESTRUCTOR. (maybe_warn_about_overly_private_class): Don't use TYPE_HAS_DESTRUCTOR. (finish_struct_methods): Don't set TYPE_HAS_DESTRUCTOR. (check_for_override): Give it external linkage. (add_implicitly_declared_members): Generate destructors lazily. (check_field_decls): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR, not TYPE_HAS_DESTRUCTOR. (check_bases_and_members): Call check_methods before check_field_decls. (check_bases_and_members): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR, not TYPE_HAS_DESTRUCTOR. (finish_struct_1): Do not use TYPE_HAS_DESTRUCTOR. * cp-tree.def (PSEUDO_DTOR_EXPR): Document. * cp-tree.h (TYPE_HAS_DESTRUCTOR): Remove. (lang_type_class): Add lazy_destructor. (CLASSTYPE_LAZY_DESTRUCTOR): New macro. (CLASSTYPE_DESTRUCTORS): Robustify. (TYPE_HAS_DESTRUCTOR): Remove. (check_for_override): Declare. (build_vbase_delete): Remove. * cvt.c (convert_to_void): Issue errors about pseudo-destructor expressions. * decl.c (cxx_maybe_build_cleanup): Remove dead code. * except.c (dtor_nothrow): Lazily create destructors if necessary. (build_throw): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. * init.c (build_delete): Lazily create destructors, if necessary. (build_vbase_delete): Remove. * method.c (locate_dtor): Simplify. (implicitly_declare_fn): Add support for destructors. * parser.c (cp_parser_lookup_name): Lazily create destructors, if necessary. * pt.c (check_explicit_specialization): Don't use TYPE_HAS_DESTRUCTOR. (instantiate_class_template): Likewise. * ptree.c (cxx_print_type): Don't print TYPE_HAS_DESTRUCTOR. * rtti.c (emit_support_tinfos): Robustify. * search.c (lookup_fnfields_1): Lazily create destructors. * typeck.c (build_class_member_access_expr): Remove PSEUDO_DTOR_EXPR handling. (lookup_destructor): Likewise. PR c++/19733 * g++.dg/parse/crash23.C: New test. * g++.dg/warn/Weff1.C: New test. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@94759 138bc75d-0d04-0410-961f-82ee72b054a4
2005-02-03PR c++/19628Matt Austern
* cp-tree.h (builtin_valid_in_constant_expr_p): Declare. * parser.c (cp_parser_postfix_expression): Accept function call in constant expression if builtin_valid_in_constant_expr_p is true for that function. * pt.c (value_dependent_expression_p): Handle CALL_EXPRs properly. * semantics.c (finish_id_expression): Accept function call in constant expression if builtin_valid_in_constant_expr_p is true for that function. * tree.c (builtin_valid_in_constant_expr_p): New. * g++/ext/builtin7.C: New. * g++/ext/builtin8.C: New. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@94635 138bc75d-0d04-0410-961f-82ee72b054a4
2005-02-02 * cp-tree.h (complete_type_or_else): Remove macro.Volker Reichelt
(complete_type_or_diagnostic): Rename to complete_type_or_else and remove last argument. * typeck.c (complete_type_or_diagnostic): Rename to complete_type_or_else and remove last argument. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@94614 138bc75d-0d04-0410-961f-82ee72b054a4
2005-02-02 * cp-tree.h (commonparms): Remove prototype.Volker Reichelt
(convert_arguments): Likewise. (PFN_FROM_PTRMEMFUNC): Remove. * typeck.c (commonparms): Make static. (convert_arguments): Add prototype. Make static. (PFN_FROM_PTRMEMFUNC): Replace by pfn_from_ptrmemfunc. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@94613 138bc75d-0d04-0410-961f-82ee72b054a4
2005-01-31 PR c++/19555Mark Mitchell
* cp-tree.h (DECL_USE_TEMPLATE): Expand documentation. * decl.c (duplicate_decls): Do not discard DECL_IMPLICIT_INSTANTIATION when merging declarations. (start_decl): Do not SET_DECL_TEMPLATE_SPECIALIZATION for variables that do not have DECL_USE_TEMPLATE. PR c++/19555 * g++.dg/template/static10.C: New test. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@94469 138bc75d-0d04-0410-961f-82ee72b054a4
2005-01-31 PR c++/19457Mark Mitchell
* call.c (convert_like_real): Inline call to dubious_conversion_warnings here. * cp-tree.h (dubious_conversion_warnings): Remove. * semantics.c (finish_unary_op_expr): Copy INTEGER_CSTs before setting TREE_NEGATED_INT. * typeck.c (dubious_conversion_warnings): Remove. PR c++/19349 * name-lookup.c (pushdecl_namespace_level): Avoid accessing free'd memory. PR c++/19457 * g++.dg/warn/conv3.C: New test. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@94463 138bc75d-0d04-0410-961f-82ee72b054a4
2005-01-20 * typeck.c (more_qualified_p): Remove.Kazu Hirata
* cp-tree.h: Remove the corresponding prototype. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@93949 138bc75d-0d04-0410-961f-82ee72b054a4
2005-01-19 * cp-tree.h, name-lookup.h: Remove unused prototypes.Kazu Hirata
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@93920 138bc75d-0d04-0410-961f-82ee72b054a4
2005-01-18 * tree.c (count_functions, bound_pmf_p, cp_is_overload_p,Kazu Hirata
cp_update_decl_after_saving, name_p): Remove. * cp-tree.h: Remove the corresponding prototypes. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@93869 138bc75d-0d04-0410-961f-82ee72b054a4
2005-01-18 * decl.c (vtable_decl_p, vtype_decl_p, walk_globals_data,Kazu Hirata
walk_vtables_r, walk_vtables, walk_globals_r, walk_globals): Remove. * cp-tree.h: Remove the corresponding prototypes. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@93867 138bc75d-0d04-0410-961f-82ee72b054a4
2005-01-18 * decl.c (delete_block): Remove.Kazu Hirata
* cp-tree.h: Remove the corresponding prototype. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@93866 138bc75d-0d04-0410-961f-82ee72b054a4
2005-01-17 * tree.c (hash_chainon): Remove.Kazu Hirata
* cp-tree.h: Remove the corresponding prototypes. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@93757 138bc75d-0d04-0410-961f-82ee72b054a4
2005-01-17 * pt.c (tinst_for_decl): Remove.Kazu Hirata
* cp-tree.h: Remove the corresponding prototypes. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@93756 138bc75d-0d04-0410-961f-82ee72b054a4
2005-01-17 * cvt.c (convert_lvalue): Remove.Kazu Hirata
* cp-tree.h: Remove the corresponding prototype. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@93755 138bc75d-0d04-0410-961f-82ee72b054a4
2005-01-17 * class.c (get_enclosing_class): Remove.Kazu Hirata
* cp-tree.h: Remove the corresponding prototypes. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@93754 138bc75d-0d04-0410-961f-82ee72b054a4
2005-01-10 * cp-tree.h: Fix a comment typo.Kazu Hirata
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@93154 138bc75d-0d04-0410-961f-82ee72b054a4
2005-01-05cp:Nathan Sidwell
PR c++/19030 * cp-tree.h (start_decl): Take pointer to pushed scope, not bool. * name-lookup.h (push_scope): Return pushed scope, not flag. * name-lookup.c (push_scope): Return scope that should be popped, not a flag. * decl.c (start_decl): Adjust. (grokfndecl): Adjust scope push and pop. * decl2.c (check_classfn): Likewise. * parser.c (cp_parser_condition, cp_parser_conversion_function_id, cp_parser_init_declarator, cp_parser_direct_declarator, cp_parser_class_specifier, cp_parser_class_head, cp_parser_lookup_name, cp_parser_constructor_declarator_p): Likewise. * pt.c (instantiate_class_template, resolve_typename_type): Likewise. testsuite: PR c++/19030 * g++.dg/parse/crash22.C: New git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@92946 138bc75d-0d04-0410-961f-82ee72b054a4
2004-12-30 * cp-tree.h (cp_declarator): Split "name" field intoMark Mitchell
qualifying_scope and unqualified_name. * decl.c (get_scope_of_declarator): Adjust accordingly. (grokdeclarator): Likewise. * decl2.c (grokfield): Likewise, and adjust call to do_class_using_decl. * name-lookup.c (do_class_using_decl): Split "decl" into "scope" and "name". Remove unnecessary code. * name-lookup.h (do_class_using_decl): Adjust declaration. * parser.c (make_id_declarator): Split "id" into qualifying_scope and unqualified_name. (cp_parser_using_declaration): Adjust call to do_class_using_decl. (cp_parser_direct_declarator): Adjust to handle the fact that cp_parser_declarator_id no longer returns a SCOPE_REF. (cp_parser_direct_declarator): Likewise. (cp_parser_declarator_id): Do not create a SCOPE_REF for qualified names. (cp_parser_member_declaration): Adjust call to make_id_declarator. (cp_parser_check_declarator_template_parameters): Do not expect a SCOPE_REF. * decl.c (duplicate_decls): Call ggc_free on declarations we will not be needing any longer. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@92746 138bc75d-0d04-0410-961f-82ee72b054a4
2004-12-21cp:Nathan Sidwell
PR c++/14075 * decl.c (check_initializer): Check string initializer of array is not parenthesized. * cp-tree.h (PAREN_STRING_LITERAL_P): New. * semantics.c (finish_parenthesized_expr): Mark a STRING_CST. * error.c (dump_expr): <STRING_CST case> Add parens, if needed. testsuite: PR c++/14075 * g++.dg/init/string1.C: New. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@92464 138bc75d-0d04-0410-961f-82ee72b054a4
2004-12-21 * system.c (IN_RANGE): Use plain unsigned, not unsignedNathan Sidwell
HOST_WIDE_INT. * tree.def (VOID_TYPE, INTEGER_TYPE, REAL_TYPE, COMPLEX_TYPE, VECTOR_TYPE, OFFSET_TYPE, ENUMERAL_TYPE, BOOLEAN_TYPE, CHAR_TYPE, POINTER_TYPE, REFERENCE_TYPE, METHOD_TYPE, FUNCTION_TYPE, FILE_TYPE, ARRAY_TYPE, RECORD_TYPE, UNION_TYPE, QUAL_UNION_TYPE): Reorder for better code efficiency. (CONST_DECL, TYPE_DECL, VAR_DECL, FIELD_DECL, PARM_DECL): Likewise. (INDIRECT_REF, ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF): Likewise. * tree.h (INDIRECT_REF_P): Reorder checks for better optimization. (IS_EXPR_CODE_CLASS): Use IN_RANGE. (INTEGRAL_TYPE_P, FLOAT_TYPE_P): Reorder checks for better optimization. * cp/cp-tree.def (TEMPLATE_TYPE_PARM, BOUND_TEMPLATE_TEMPLATE_PARM, TYPE_OF_TYPE, TYPENAME_TYPE): Reorder for better code efficiency. * cp/cp-tree.h (CLASS_TYPE_P): Short circuit IS_AGGR_TYPE check. (CAN_HAVE_FULL_LANG_DECL_P): Reorder for better optimization. (INTEGRAL_CODE_P, CP_INTEGRAL_TYPE_P, INTEGRAL_OR_ENUMERATION_TYPE_P, SCALAR_TYPE_P, CP_AGGREGATE_TYPE_P, TYPE_PTROB_P, TYPE_REF_OBJ_P, TYPE_PTROBV_P): Likewise. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@92463 138bc75d-0d04-0410-961f-82ee72b054a4
2004-12-20 * cp-tree.h (note_decl_for_pch): New function.Mark Mitchell
* class.c (build_clone): Call note_decl_for_pch. * semantics.c (finish_member_declaration): Likewise. (note_decl_for_pch): New function. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@92402 138bc75d-0d04-0410-961f-82ee72b054a4
2004-12-17cp:Nathan Sidwell
PR c++/17821 * class.c (add_method): Do not push conversion operators into a binding level. * cp-tree.h (CLASSTYPE_PRIMARY_TEMPLATE_TYPE): Reformat. * error.c (dump_decl): <TYPE_DECL case> Remove extraneous braces. testsuite: PR c++/17821 * g++.dg/lookup/conv-5.C: New. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@92316 138bc75d-0d04-0410-961f-82ee72b054a4
2004-12-16cp:Nathan Sidwell
PR c++/18905 * cp-tree.h (integral_constant_value): Declare. * call.c (null_ptr_cst_p): Use integral_constant_value, not decl_constant_value. (convert_like_real): Likewise. * class.c (check_bitfield_decl): Likewise. * cvt.c (ocp_convert): Likewise. (convert): Remove unnecessary decl_constant_value call. * decl.c (compute_array_index_type): Use integral_constant_value, not decl_constant_value. (build_enumerator): Likewise. * decl2.c (grokfield): Likewise. * init.c (decl_constant_value): Simplify. (integral_constant_value): New. * pt.c (fold_decl_constant_value): Use integral_constant_value, remove subsequent check. (tsubst): Use integral_constant_value, not decl_constant_value. (tsubst_copy, unify): Likewise. * typeck.c (decay_conversion): Likewise. (build_compound_expr): Remove unnecessary decl_constant_value calls. (build_static_cast_1, build_reinterpret_cast_1): (convert_for_assignment): Remove comment about not calling decl_constant_value. testsuite: PR c++/18905 * g++.dg/template/init4.C: New. * g++.dg/opt/static3.C: Enable optimizer. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@92257 138bc75d-0d04-0410-961f-82ee72b054a4
2004-12-08cp:Nathan Sidwell
PR c++/18803 * cp-tree.h (REFERENCE_REF_P): New. (CPTI_TYPE_INFO_TYPE): Rename to ... (CPTI_CONST_TYPE_INFO_TYPE): ... here. (CPTI_TYPE_INFO_REF_TYPE): Remove. (type_info_type_node): Rename to ... (const_type_info_type_node): ... here. (type_info_ref_type): Remove. * call.c (build_user_type_conversion): Reformat. (resolve_args): Do not convert_from_reference. (build_object_call): Call convert_from_reference. (prep_operand): Do not convert_from_reference. (build_new_method_call): Likewise. * class.c (build_vfield_ref): Likewise. * cvt.c (convert_to_reference): Likewise. (convert_from_reference): Build INDIRECT_REF here, not with build_indirect_ref. (convert_force): Do not convert_from_reference. (build_expr_type_conversion): Likewise. * decl.c (grok_reference_init): Likewise. * decl2.c (delete_sanity): Likewise. * except.c (initialize_handler_parm): Use POINTER_TYPE_P. * init.c (build_dtor_call): Do not convert_from_reference. * parser.c (cp_parser_template_argument): Unwrap indirected reference. Allow TEMPLATE_PARM_INDEX as an object parm. * pt.c (tsubst_copy_and_build) <case INDIRECT_REF>: Use convert_from_reference, if indicated. <case CALL_EXPR>: Do not convert_from_reference. <case PARM_DECL, VAR_DECL>: Convert_from_reference if needed. (tsubst_initializer_list): Do not convert_from_reference. * rtti.c (init_rtti_processing): Adjust node creation. (throw_bad_typeid): Use const_type_info_type_node. Do not convert_from_reference. (typeid_ok_p): Use const_type_info_type_node. (build_typeid, get_typeid): Always return type_info typed node. (build_dynamic_cast_1): Dont convert_from_reference. Refactor. * semantics.c (finish_stmt_expr_expr): Do not convert_from_reference. (finish_id_expression): Convert_from_reference as appropriate. * typeck.c (decay_conversion): Do not convert_from_reference. (finish_class_member_access_expr): Likewise. (build_indirect_ref): Use POINTER_TYPE_P. (convert_arguments): Do not convert_from_reference. (build_modify_expr): Likewise. (convert_for_initialization): Likewise. * typeck2.c (build_x_arrow): Likewise. testsuite: PR c++/18803 * g++.dg/template/operator5.C: New. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@91863 138bc75d-0d04-0410-961f-82ee72b054a4
2004-12-07[gcc/ChangeLog]Ziemowit Laski
2004-12-07 Ziemowit Laski <zlaski@apple.com> * c-tree.h (struct lang_type): Rename 'objc_protocols' field to 'objc_info'. [gcc/cp/ChangeLog] 2004-12-07 Ziemowit Laski <zlaski@apple.com> * cp-tree.h (struct lang_type_class): Rename 'objc_protocols' field to 'objc_info'. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@91833 138bc75d-0d04-0410-961f-82ee72b054a4
2004-12-07[gcc/ChangeLog]Ziemowit Laski
2004-12-06 Ziemowit Laski <zlaski@apple.com> * c-tree.h (struct lang_type): Add 'objc_protocols' field. [gcc/cp/ChangeLog] 2004-12-06 Ziemowit Laski <zlaski@apple.com> * cp-tree.h (struct lang_type_class): Add 'objc_protocols' field. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@91803 138bc75d-0d04-0410-961f-82ee72b054a4
2004-11-29 PR c++/18368Mark Mitchell
* parser.c (cp_parser_check_for_definition_in_return_type): Take the defined type as a parameter, and inform the user about the possibility of a missing semicolon. (cp_parser_explicit_instantiation): Adjust call to cp_parser_check_for_definition_in_return_type. (cp_parser_init_declarator): Likewise. (cp_parser_member_declaration): Likewise. PR c++/18674 * cp-tree.def (TYPENAME_TYPE): Remove discussion of implicit typename from comments. * cp-tree.h (TYPENAME_IS_ENUM_P): New macro. (TYPENAME_IS_CLASS_P): Likewise. (make_typename_type): Change prototype. * decl.c (struct_typename_info): New type. (typename_compare): Expect the second argument to be a typename_info, not a tree. (build_typename_type): Add tag_type parameter. Do not create a new type until necessary. (make_typename_type): Add tag_type parameter. * error.c (TYPENAME_TYPE): Print tags other than "typename" if appropriate. * friend.c (make_friend_class): Adjust call to make_typename_type. * parser.c (cp_parser_make_typename_type): Likewise. (cp_parser_primary_expression): Adjust call to cp_parser_lookup_name. (cp_parser_unqualified_id): Adjust calls to cp_parser_class_name. (cp_parser_class_or_namespace_name): Likewise. (cp_parser_postfix_expression): Adjust calls to make_typename_type. (cp_parser_mem_initializer_id): Adjust calls to cp_parser_class_name. (cp_parser_type_parameter): Adjust calls to cp_parser_lookup_name. (cp_parser_template_name): Likewise. (cp_parser_template_argument): Likewise. (cp_parser_type_name): Adjust call to cp_parser_class_name. (cp_parser_elaborated_type_specifier): Adjust calls to make_typename_type and cp_parser_lookup_name. (cp_parser_namespace_name): Likewise. (cp_parser_class_name): Replace type_p parameter with tag_type. Adjust calls to make_typename_type and cp_parser_lookup_name. (cp_parser_class_head): Adjust calls to cp_parser_class_name. (cp_parser_base_specifier): Likewise. (cp_parser_lookup_name): Replace is_type parameter with tag_type. Adjust calls to make_typename_type and lookup_qualified_name. (cp_parser_lookup_name_simple): Adjust call to cp_parser_lookup_name. (cp_parser_constructor_declarator_p): Adjust call to cp_parser_class_name. * pt.c (convert_template_argument): Adjust all to make_typename_type. (tsubst_decl): Do not pre-substitute the type of the declaration. (tsubst): Hand off declarations more quickly. Adjust call to make_typename_type. PR c++/18512 * parser.c (cp_parser_postfix_dot_deref_expression): Robustify. PR c++/18674 * g++.old-deja/g++.brendan/crash16.C: Adjust error messages. * g++.old-deja/g++.law/ctors5.C: Likewise. * g++.old-deja/g++.other/crash25.C: Likewise. PR c++/18674 * g++.dg/template/error16.C: New test. PR c++/18512 * g++.dg/template/crash29.C: New test. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@91483 138bc75d-0d04-0410-961f-82ee72b054a4
2004-11-29 PR c++/18652Kriang Lerdsuwanakij
* name-lookup.c (pushtag): Change return type to tree. * cp-tree.h (pushtag): Adjust declaration. * decl.c (xref_tag, start_enum): Use return value of pushtag. * pt.c (push_template_decl_real): Return immediately if pushdecl_namespace_level returns error_mark_node. * g++.dg/lookup/crash6.C: New test. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@91470 138bc75d-0d04-0410-961f-82ee72b054a4
2004-11-26 Friend class name lookup 4/nKriang Lerdsuwanakij
* class.c (pushclass): Don't call cxx_remember_type_decls. * cp-tree.h (clear_anon_tags): Remove declaration. * decl.c (grokdeclarator): Don't call lookup_tag_reverse. * name-lookup.c (binding_entry_free, binding_table_free): Comment out functions. (binding_table_find_anon_type, binding_table_reverse_maybe_remap, binding_table_remove_anonymous_types, cxx_remember_type_decls, bt_print_entry, clear_anon_tags, follow_tag_typedef, lookup_tag, lookup_tag_reverse): Remove (begin_scope, leave_scope, kept_level_p, print_binding_level): Don't use type_decls field in cp_binding_level. (maybe_process_template_type_declaration, pushtag): Set CLASSTYPE_NESTED_UTDS directly. * name-lookup.h (binding_table_remove_anonymous_types, cxx_remember_type_decls, lookup_tag, lookup_tag_reverse): Remove declaration. (cp_binding_level): Remove type_decls field. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@91342 138bc75d-0d04-0410-961f-82ee72b054a4
2004-11-25 PR c++/18001Mark Mitchell
* c-common.h (lvalue_use): Move here from c-ctypeck.c. (lvalue_or_else): Declare. * c-common.c (lvalue_or_else): Move here from c-typeck.c. * c-typeck.c (lvalue_use): Remove. (lvalue_or_else): Remove. PR c++/18556 * toplev.c (check_global_declarations): Set DECL_IGNORED_P on unemitted variables with static storage duration. PR c++/18445 * class.c (instantiate_type): Treat NON_DEPENDENT_EXPRs with unknown_type as non matching. Tidy up. * pt.c (build_non_dependent_expr): Do not build a NON_DEPENDENT_EXPR for a VAR_DECL. PR c++/18001 * cp-tree.h (lvalue_or_else): Remove declaration. * tree.c (lvalue_or_else): Remove. * typeck.c (build_unary_op): Adjust call to lvalue_or_else. (build_modify_expr): Likewise. PR c++/18625 * decl.c (duplicate_decls): Return error_mark_node on error, as specified. PR c++/18466 * decl.c (grokvardecl): Keep track of whether or not a there was explicit qualification. * name-lookup.c (set_decl_namespace): Complain about explicit qualification of a name within its own namespace. PR c++/18545 * typeck.c (check_return_expr): Robustify. PR c++/18445 * g++.dg/template/crash28.C: Likewise. PR c++/18001 * g++.dg/expr/unary2.C: Adjust lvalue messages. * g++.dg/ext/lvaddr.C: Likewise. * g++.dg/opt/pr7503-3.C: Likewise. PR c++/18466 * g++.dg/parse/qualified3.C: New test. * g++.old-deja/g++.other/friend7.C: Remove bogus qualification. PR c++/18545 * g++.dg/expr/return1.C: New test. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@91301 138bc75d-0d04-0410-961f-82ee72b054a4
2004-11-25 Friend class name lookup 2/n, PR c++/14513, c++/15410Kriang Lerdsuwanakij
* name-lookup.c (lookup_name_real): Simplify. (lookup_type_scope): Add SCOPE parameter. Handle friend class lookup. * name-lookup.h (tag_scope): New enum type. (lookup_type_scope): Adjust declaration. * decl.c (lookup_and_check_tag, xref_tag, xref_tag_from_type): Change bool parameter GLOBALIZED to TAG_SCOPE parameter SCOPE. (start_enum): Likewise. Add assertion test that NAME is IDENTIFIER_NODE. Use anonymous name for dummy ENUMERAL_TYPE in case of error. * cp-tree.h (xref_tag, xref_tag_from_type): Adjust declarations. * parser.c (cp_parser_elaborated_type_specifier, cp_parser_class_head): Adjust call to xref_tag. * pt.c (lookup_template_class, instantiate_class_template): Likewise. * rtti.c (init_rtti_processing, build_dynamic_cast_1, tinfo_base_init, emit_support_tinfos): Likewise. * g++.dg/lookup/friend2.C: New test. * g++.dg/template/friend31.C: Likewise. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@91299 138bc75d-0d04-0410-961f-82ee72b054a4
2004-11-24 PR c++/18530Mark Mitchell
* cp-tree.h (CTOR_NAME): Remove. (DTOR_NAME): Remove. * decl.c (initialize_predefined_identifiers): Add spaces to the end of constructor and destructor names. PR c++/18530 * g++.dg/warn/Wshadow-3.C: New test. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@91179 138bc75d-0d04-0410-961f-82ee72b054a4
2004-11-24 * cp-tree.h (context_as_string): Remove extern.Ben Elliston
* error.c (context_as_string): Remove. * cp-tree.h (cp_type_qual_from_rid): Remove extern. * lex.c (cp_type_qual_from_rid): Remove. * cp-tree.h (do_poplevel): Remove extern. (check_multiple_declarators): Likewise. * semantics.c (do_poplevel): Make static. (check_multiple_declarators): Remove. * cp-tree.h (check_final_overrider): Remove extern. * search.c (check_final_overrider): Make static. * cp-tree.h (build_artificial_parm): Remove extern. * decl2.c (build_artificial_parm): Make static. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@91134 138bc75d-0d04-0410-961f-82ee72b054a4
2004-11-10.:Nathan Sidwell
* tree.c (tree_check_failed): Emit general error if the list of node types is empty. cp: PR c++/18143 * cp-tree.h (NON_THUNK_FUNCTION_CHECK, THUNK_FUNCTION_CHECK): New. (struct lang_decl_flags): Add thunk_p flag. (struct lang_decl): Remove separate fixed_offset. Place cloned_function and fixed_offset into union. (DECL_CLONED_FUNCTION_P, DECL_CLONED_FUNCTION): Adjust. (DECL_THUNK_P, SET_DECL_THUNK_P): Adjust. (THUNK_FIXED_OFFSET): Adjust. * method.c (make_thunk): Adjust. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@90399 138bc75d-0d04-0410-961f-82ee72b054a4
2004-11-04 DR 49, 100Giovanni Bajo
* cp-tree.h (TYPE_REF_OBJ_P): New macro. (TYPE_PTR_P, TYPE_PTROB_P, TYPE_PTROBV_P, TYPE_PTRFN_P, TYPE_REFFN_P): Document. (fold_decl_constant_value): New prototype. * pt.c (convert_nontype_argument_function): Rewrite and extract parts into... (fold_decl_constant_value, convert_nontype_argument_function): New. (lookup_template_class): Add comment about useless double call. * mangle.c (write_expression): Strip conversions before lowering pointer to members. * cvt.c (ocp_convert): Check LOOKUP_COMPLAIN for a pedwarn. Disallow enum to enum conversion. * g++.dg/template/nontype7.C: New test. * g++.dg/template/nontype8.C: Likewise. * g++.dg/template/nontype9.C: Likewise. * g++.dg/template/nontype10.C: Likewise. * g++.dg/tc1/dr49.C: Likewise. * g++.dg/template/ptrmem8.C: Relax dg-error checks. * g++.old-deja/g++.other/null1.C: Remove a buggy error check git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@90059 138bc75d-0d04-0410-961f-82ee72b054a4
2004-10-30 PR c++/17542Matt Austern
* cp-tree.h (class_key_or_enum_as_string): Declare. * error.c (class_key_or_enum): Rename to class_key_or_enum_as_string and remove static qualifier. * decl.c (shadow_tag): Warn about ignored attributes in class/struct/ union/enum declaration. * g++.dg/ext/attrib18.C: New test. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@89898 138bc75d-0d04-0410-961f-82ee72b054a4