• mmitchel's avatar
    * Make-lang.in (po-generated): Remove parse.c. · 0a3b29ad
    mmitchel authored
    	(CXX_OBJS): Remove parse.o and spew.o.  Add parser.o.
    	($(srcdir)/cp/parse.h): Remove target.
    	($(srcdir)/cp/parse.c): Likewise.
    	(gt-cp-parse.h): Likewise.
    	(gt-cp-parser.h): New target.
    	(c++.distclean): Do not remove parse.output.
    	(c++.maintainer-clean): Do not remove parse.c or parse.h.
    	(cp/spew.o): Remove target.
    	(cp/lex.o): Adjust dependencies.
    	(cp/pt.o): Likewise.
    	(cp/parse.o): Likewise.
    	(cp/TAGS): Do not mention parse.c.
    	(cp/parser.o): New target.
    	* NEWS: Mention the new parser.
    	* call.c (build_scoped_method_call): Simplify.
    	(build_method_call): Likewise.
    	(build_new_function_call): Adjust calls to add_function_candidate
    	and add_template_candidate.
    	(build_new_op): Improve handling of erroroneous operands.
    	(convert_default_arg): Remove circular argument processing.
    	(name_as_c_string): New function.
    	(build_new_method_call): Use it.
    	(perform_implicit_conversion): Use error_operand_p.
    	* class.c (finish_struct_anon): Use constructor_name_p.
    	(check_field_decls): Likewise.
    	(pop_nested_class): Use OVL_NEXT, not OVL_CHAIN.
    	(resolve_address_of_overloaded_function): Likewise.
    	(instantiate_type): Tweak pointer-to-member handling.
    	(get_primary_binfo): Remove incorrect assertion.
    	* config-lang.in (gtfiles): Add parser.c, remove parse.c.
    	* cp-tree.h (DEFARG_TOKENS): New macro.
    	(default_arg): New structure.
    	(cp_tree_node_structure_enum): Add TS_CP_DEFAULT_ARG.
    	(lang_tree_node): Add default_arg.
    	(cp_tree_index): Add CPTI_TYPE_INFO_REF_TYPE.
    	(type_info_ref_type): New macro.
    	(saved_scope): Make processing_explicit_instantiation a boolean.
    	(check_access): New field.
    	(unparsed_text): Remove.
    	(language_function): Remove unparsed_inlines.
    	(error_operand_p): New macro.
    	(lang_decl): Adjust pending_inline_info.
    	(DEFARG_POINTER): Remove.
    	(tag_types): Add typenames.
    	(lookup_ualified_name): Declare.
    	(lookup_name_real): Likewise.
    	(shadow_tag): Adjust prototype.
    	(get_scope_of_declarator): Declare it.
    	(process_next_inline): Remove it.
    	(check_for_missing_semicolon): Likewise.
    	(maybe_get_template_decl_from_type_decl): Declare it.
    	(finish_label_stmt): Adjust prototype.
    	(finish_non_static_data_meber): Declare it.
    	(finish_pseudo_destructor_call_expr): Rename to ...
    	(finish_pseudo_destructor_expr): ... this.
    	(finish_compound_literal): Declare it.
    	(begin_inline_definitions): Remove it.
    	(init_spew): Remove.
    	(peekyylex): Likewise.
    	(arbitrate_lookup): Likewise.
    	(frob_opname): Likewise.
    	(maybe_snarf_defarg): Likewise.
    	(add_defarg_fn): Likewise.
    	(do_pending_defargs): Likewise.
    	(done_pending_defargs): Likewise.
    	(unprocessed_defarg_fn): Likewise.
    	(replace_defarg): Likewise.
    	(end_input): Likewise.
    	(get_overloaded_fn): Likewise.
    	* cvt.c (convert_to_reference): Improve error handling.
    	* decl.c (lookup_name_real): Do not declare it static.
    	(maybe_push_to_top_level): Set check_access.
    	(identifier_type_value): Adjust call to lookup_name_real.
    	(lookup_qualified_name): New method.
    	(lookup_name_real): Remove special-case parsing code.
    	(lookup_name-nonclass): Adjust call to lookup_name_real.
    	(lookup_name_namespace_only): Likewise.
    	(lookup_name): Likewise.
    	(check_tag_decl): Return the type declared.
    	(shadow_tag): Likewise.
    	(register_dtor_fn): Tweak check_access.
    	(grokfndecl): Use constructor_name_p.
    	(get_scope_of_declarator): New function.
    	(grokdeclarator): Obscure tweaks for slightly different declarator
    	representations.
    	(start_method): Return error_mark_node to indicate failure.
    	(cp_tree_node_structure_enum): Use TS_CP_DEFAULT_ARG for DEFAULT_ARGs.
    	* decl2.c (constructor_name_full): Simplify.
    	(constructor_name): Use it.
    	(build_expr_from_tree): Adjust for changes to do new parser.
    	(push_scope): Improve robustness.
    	(validate_nonmember_using_decl): Process declarations, not names.
    	(do_class_using_decl): Likewise.
    	(handle_class_head): Do not mess with CLASSTYPE_DECLARED_CLASS
    	here.
    	* error.c (dump_expr): Handle IDENTIFIER_NODEs and BASELINKs.
    	* expr.c (cxx_expand_expr): Handle BASELINKs.
    	* init.c (member_init_ok_or_else): Issue more errors.
    	(build_offset_ref): Tweak handling of FUNCTION_DECLs.
    	* lex.c: Do not include parse.h.
    	(yypring): Do not declare.
    	(yylval): Likewise.
    	(make_reference_declarator): Remove error-generating code.
    	(rid_to_yy): Remove.
    	(cxx_init): Do not call init_spew.
    	(yypring): Remove.
    	(check_for_missing_semicolon): Remove.
    	* lex.h (got_scope): Remove.
    	(got_object): Remove.
    	* method.c (hack_identifier): Use finish_non_static_data_member.
    	(implicitly_declare_fn): Adjust use of constructor_name.
    	* parser.c: New file.
    	* pt.c (parse.h): Do not include it.
    	(maybe_get_template_decl_from_template): Do not declare it.
    	(finish_member_template_decl): Tweak.
    	(begin_explicit_instantiation): Adjust for
    	processing_explicit_instantiation being boolean.
    	(end_explicit_instantiation): Likewise.
    	(maybe_process_partial_specialization): Tighten specialization
    	test.
    	(retrieve_local_specialization): Adjust ue of hash table.
    	(eq_local_specializations): New function.
    	(register_local_specialization): Likewise.
    	(push_template_decl_real): Remove unnecessary test.
    	(maybe_get_template_decl_from_type_decl): Don't make it static.
    	(for_each_template_parm_r): Handle TYPEOF_TYPE.
    	(tsubst_copy): Use retrieive_local_specialization to handle
    	PARM_DECL.  Adjust handling of CONST_DECLs.  Handle BASELINKs.
    	Handle COMPONENT_REFs with pseudo-destructor-expressions.
    	Simplify handling of CALL_EXPR and METHOD_CALL_EXPR.
    	(tsubst_expr): Pass decls, not names, to do_local_using_decl.
    	(unify): Tweak handling of CONST_DECLs.
    	(regenerate_decl_from_template): Use push_nested_class.
    	(template_for_substitution): New funciton.
    	(instantiate_decl): Use it.  Register parameters as local
    	specializations.
    	* rtti.c (init_rtti_processing): Set type_info_ref_type.
    	(build_typeid): Use it.
    	(get_typeid): Likeise.
    	* search.c (accessible_p): Use check_access, not
    	flag_access_control.
    	(adjust_result_of_qualified_name_lookup): Pay attention to the
    	context_class.
    	* semantics.c (finish_asm_stmt): Adjust error handling.
    	(finish_label_stmt): Return the statement.
    	(finish_non_static_data_member): New function.
    	(finish_class_expr): Handle BASELINKs.
    	(finish_call_expr): Handle PSEUDO_DTOR_EXPR.
    	(finish_object_call_expr): Simplify handling during templates.
    	(finish_pseudo_destructor_call_expr): Rename to ...
    	(finish_pseudo_dtor_expr): ... this.
    	(finish_compound_literal): New function.
    	(begin_inline_definitions): Remove.
    	(finish_sizeof): Remove special template handling.
    	* spew.c: Do not include parse.h.
    	* tree.c (get_overloaded_fn): Remove.
    	* typeck.c (build_class_member_access_expr): Handle
    	PSEUDO_DTOR_EXPR.  Adjust handling of static member functions.
    	(lookup_destructor): New function.
    	(finish_class_member_access_expr): Use it.
    	(convert_arguments): Simplify.
    	(build_unary_op): Handle BASELINKs.
    
    
    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@60560 138bc75d-0d04-0410-961f-82ee72b054a4
    0a3b29ad
tree.c 69.7 KB