aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp
AgeCommit message (Collapse)AuthorFilesLines
2003-05-13typeck.c (build_modify_expr): Don't always stabilize the lhs and rhs.Jason Merrill2-8/+9
* typeck.c (build_modify_expr): Don't always stabilize the lhs and rhs. Do stabilize the lhs of a MODIFY_EXPR used on the lhs. From-SVN: r66766
2003-05-11* method.c (synthesize_method): Call push/pop_deferring_access_checks.Kriang Lerdsuwanakij2-0/+10
From-SVN: r66694
2003-05-11PR c++/10230, c++/10481Kriang Lerdsuwanakij2-2/+17
PR c++/10230, c++/10481 * semantics.c (finish_non_static_data_member): Handle when the non-static member is not from a base of the current class type. * g++.dg/lookup/scoped5.C: New test. From-SVN: r66683
2003-05-11re PR c++/10552 (Small sample using nested templates causes internal ↵Kriang Lerdsuwanakij2-0/+28
compiler error.) PR c++/10552 * pt.c (tsubst_copy): Handle TEMPLATE_DECL that is a member class template and has dependent context. * g++.dg/template/ttp6.C: New test. From-SVN: r66682
2003-05-10* pt.c (instantiate_decl): Call push/pop_deferring_access_checks.Kriang Lerdsuwanakij2-0/+9
From-SVN: r66665
2003-05-10re PR c++/9252 ([New parser] Errors due to legally used "typename")Kriang Lerdsuwanakij12-60/+74
PR c++/9252 * cp-tree.h (saved_scope): Remove check_access field. (tsubst_flags_t): Remove tf_parsing. * decl.c (maybe_push_to_top_level): Don't initialize scope_chain->check_access. (make_typename_type, make_unbound_class_template): Don't use tf_parsing. (register_dtor_fn): Use push/pop_deferring_access_checks instead of scope_chain->check_access. * method.c (use_thunk): Likewise. * parser.c (cp_parser_explicit_instantiation (cp_parser_constructor_declarator_p): Don't call push/pop_deferring_access_checks here. (cp_parser_template_argument, cp_parser_class_name): Don't use tf_parsing. (yyparse): Check flag_access_control. * pt.c (instantiate_class_template): Call push/pop_deferring_access_checks. * semantics.c (push_deferring_access_checks): Propagate dk_no_check. (perform_or_defer_access_check): Make sure basetype_path is a type before comparison. * call.c (build_op_delete_call, build_over_call): Use perform_or_defer_access_check. * class.c (alter_access): Likewise. * init.c (build_offset_ref): Likewise. * lex.c (do_identifier): Likewise. * method.c (hack_identifier): Likewise. * search.c (lookup_member): Likewise. * semantics.c (finish_non_static_data_member): Likewise. (simplify_aggr_init_exprs_r): Use push/pop_deferring_access_checks instead of flag_access_control. * g++.dg/parse/access8.C: New test. * g++.dg/parse/access9.C: New test. From-SVN: r66660
2003-05-10re PR c++/9554 (Out of class declaration of member class template ↵Kriang Lerdsuwanakij4-50/+114
specialisation rejected) PR c++/9554 * parser.c (cp_parser_class_name): Remove check_access parameter. All caller adjusted. Update declaration. (cp_parser_lookup_name): Likewise. * semantics.c (push_deferring_access_checks): Change parameter type to enum deferring_kind. All caller adjusted. (resume_deferring_access_checks): Adjust to use new enum. (stop_deferring_access_checks): Likewise. (perform_or_defer_access_check): Likewise. * cp-tree.h (deferring_kind): New enum. (deferred_access): Adjust field type. (push_deferring_access_checks): Update declaration. * g++.dg/parse/access1.C: New test. From-SVN: r66659
2003-05-09PR c++/10555, c++/10576Kriang Lerdsuwanakij2-0/+16
PR c++/10555, c++/10576 * pt.c (lookup_template_class): Handle class template with multiple levels of parameters when one of the levels contain errors. * g++.dg/template/memclass1.C: New test. From-SVN: r66634
2003-05-08init.c (build_new_1): Don't reuse a TARGET_EXPR in an expression.Jason Merrill2-22/+37
* init.c (build_new_1): Don't reuse a TARGET_EXPR in an expression. Undo some of the recent reorg. From-SVN: r66594
2003-05-07except.c: Revert 04-01 and 04-02 forced-unwind changes.Richard Henderson3-391/+278
gcc/ * except.c: Revert 04-01 and 04-02 forced-unwind changes. * flags.h, toplev.c, doc/invoke.texi: Likewise. * unwind-dw2.c (_Unwind_GetCFA): Fix ptr->int conversion warning. * unwind.inc (_Unwind_DeleteException): Check for null exception_cleanup. * unwind-sjlj.c (_Unwind_SjLj_Resume_or_Rethrow): New. * unwind.inc (_Unwind_Resume_or_Rethrow): New. * unwind.h: Declare them. * libgcc-std.ver (GCC_3.3): Export them. gcc/cp/ * cfns.gperf: Comment out POSIX thread cancellation points, plus abort and raise. * cfns.h: Regenerate. gcc/testsuite/ * g++.dg/eh/forced1.C: Expect catch-all handlers to run. Verify exception_cleanup not called for rethrows. * g++.dg/eh/forced2.C: Test that exception_cleanup is called when exiting catch block without rethrowing. * g++.dg/eh/forced3.C: New. * g++.dg/eh/forced4.C: New. libstdc++-v3/ * libsupc++/eh_catch.cc (__cxa_begin_catch): Handle foreign exceptions. (__cxa_end_catch): Likewise. * libsupc++/eh_throw.cc (__cxa_rethrow): Likewise. Use _Unwind_Resume_or_Rethrow. * libsupc++/eh_personality.cc (empty_exception_spec): New. (PERSONALITY_FUNCTION): Don't ignore terminate or catch-all for _UA_FORCE_UNWIND. Honor empty filter spec for foreign exceptions. Don't push terminate/unexpected to cxa functions. (__cxa_call_unexpected): Remove foreign exception fixmes. From-SVN: r66583
2003-05-07call.c (build_conditional_expr): Don't assume that the folded expression has ↵Jason Merrill2-3/+11
result_type. * call.c (build_conditional_expr): Don't assume that the folded expression has result_type. From-SVN: r66561
2003-05-06typeck.c (build_unary_op): Deal with const qualifier in invalid ↵Kriang Lerdsuwanakij2-6/+12
pointer-to-member earlier. * typeck.c (build_unary_op): Deal with const qualifier in invalid pointer-to-member earlier. From-SVN: r66522
2003-05-05re PR c++/9537 ([New parser] problem handling const return types)Jason Merrill2-7/+20
PR c++/9537 * call.c (conditional_conversion): Build an RVALUE_CONV if we're just changing the cv-quals. (build_conditional_expr): Don't call convert to change cv-quals. From-SVN: r66502
2003-05-05tweak commentJason Merrill1-1/+1
From-SVN: r66494
2003-05-05Fix a typo overlooked in the previous commit.Kriang Lerdsuwanakij1-1/+1
From-SVN: r66484
2003-05-05re PR c++/10496 ([diagnostic] erroneus suggestion in diagnostic asks the ↵Kriang Lerdsuwanakij2-2/+17
user to write "&const class::memfun" which is illegal) PR c++/10496 * typeck.c (build_unary_op): Don't output const qualifier when output invalid pointer-to-member diagnostics. * g++.dg/warn/pmf1.C: New test. From-SVN: r66481
2003-05-05* decl.c: Fix typos.Kriang Lerdsuwanakij2-3/+7
From-SVN: r66477
2003-05-05re PR c++/4494 (Possible problem with compiler warnings on main())Kriang Lerdsuwanakij2-2/+9
PR c++/4494 * decl.c (start_function): Use same_type_p to check return type of main. * g++.dg/warn/main.C: New test. From-SVN: r66476
2003-05-03re PR c/10604 (-Wall includes sign conversion warning [3.3 regression])Zack Weinberg2-5/+11
PR c/10604 * c-common.c (warn_sign_compare): Initialize to -1. * c-opts.c (c_common_init_options): Don't set warn_sign_compare here. (c_common_decode_option <OPT_Wall>): Set warn_sign_compare for C++ only. (c_common_post_options): Set warn_sign_compare from extra_warnings if it's still -1 at this point. * toplev.c (maybe_warn_unused_parameter): New static variable. (set_Wextra): New static function. (W_options): Remove "extra". (decode_W_option): Call set_Wextra. (independent_decode_option): Likewise. (set_Wunused): Cooperate with set_Wextra in setting warn_unused_parameter. (rest_of_compilation): No need to check extra_warnings as well as warn_uninitialized. * c-typeck.c (build_binary_op, build_conditional_expr): No need to check extra_warnings as well as warn_sign_compare. (internal_build_compound_expr): No need to check extra_warnings as well as warn_unused_value. * function.c (expand_function_end): No need to check extra_warnings as well as warn_unused_parameter. * stmt.c (expand_expr_stmt_value): No need to check extra_warnings as well as warn_unused_value. * cp/typeck.c (build_x_compound_expr): No need to check extra_warnings as well as warn_unused_value. * doc/invoke.texi: Clarify documentation of -Wsign-compare. * gcc.dg/compare7.c, g++.dg/warn/compare1.C: New testcases. * Makefile.in: Disable -Werror for gengtype-lex.o. From-SVN: r66436
2003-05-03PR c++/9364, c++/10553, c++/10586Kriang Lerdsuwanakij2-0/+10
PR c++/9364, c++/10553, c++/10586 * decl.c (make_typename_type): Don't crash on illegal code. * g++.dg/parse/typename4.C: New test. * g++.dg/parse/typename5.C: Likewise. From-SVN: r66424
2003-05-03class.c (finish_struct): Use location_t and input_location directly.Nathan Sidwell10-98/+83
* class.c (finish_struct): Use location_t and input_location directly. * decl.c (make_label_decl): Likewise. (use_label): Likewise. * decl2.c (warn_if_unknown_interface): Likewise. (start_static_initialization_or_destruction): Likewise. (generate_ctor_or_dtor_function): Likewise. (finish_file): Likewise. * error.c (print_instantiation_full_context): Likewise. * init.c (create_temporary_var): Likewise. * method.c (synthesize_method): Likewise. * parser.c (cp_token): Likewise. (cp_lexer_set_source_position_from_token): Likewise. (cp_lexer_get_preprocessor_token): Likewise. (cp_parser_statement): Likewise. * pt.c (tsubst_friend_function): Likewise. (instantiate_class_template): Likewise. (tsubst_decl): Likewise. (tsubst): Likewise. (instantiate_decl): Likewise. * semantics.c (begin_class_definition): Likewise. (expand_body): Likewise. From-SVN: r66423
2003-05-01missed from my previous checkinNathan Sidwell1-0/+24
From-SVN: r66337
2003-05-01input.h (lineno): Rename to ...Nathan Sidwell11-67/+69
* input.h (lineno): Rename to ... (input_line): ... here. * tree.h (lineno): Rename to ... (input_line): ... here. * scan.h (lineno): Rename to ... (input_line): ... here. * toplev.c (lineno): Rename to ... (input_line): ... here. (push_srcloc, pop_srcloc): Rename lineno to input_line. * c-common.c (c_expand_start_cond, fname_decl): Likewise. * c-decl.c (poplevel, pop_label_level, lookup_label, lookup_tag, store_parm_decls, c_expand_body_1): Likewise. * c-errors.c (pedwarn_c99): Likewise. * c-format.c (status_warning): Likewise. * c-lex.c (fe_file_change, cb_def_pragma, c_lex): Likewise. * c-opts.c (c_common_post_options, c_common_parse_file): Likewise. * c-parse.in (save_filename, maybe_type_qual, ifc): Likwise. * c-semantics.c (finish_stmt_tree, build_stmt, emit_local_var, gentrtl_goto_stmt, genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt, genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt, genrtl_for_stmt, build_break_stmt, build_continue_stmt, genrtl_switch_stmt, genrtl_asm_stmt, prep_stmt, find_reachable_label, expand_unreachable_stmt): Likewise. * coverage.c (create_coverage): Likewise. * diagnostic.c (pedwarn, sorry, error, fatal_error, internal_error, warning, diagnostic_report_current_module, inform): Likewise. * expr.c (expand_expr): Likewise. * integrate.c (expand_inline_function, output_inline_function): Likewise. * rtl-error.c (file_and_line_for_asm): Likewise. * tree-inline.c (find_alloca_call, find_builtin_longjmp_call, walk_tree): Likewise. * tree.c (make_node): Likewise. * ada, cp, f, java, objc, treelang: Likewise. ada * trans.c (build_unit_elab, set_lineno): Rename lineno to input_line. * utils.c (pushdecl, create_label_decl, begin_subprog_body, end_subprog_body): Likewise. * utils2.c (build_call_raise): Likewise. cp * class.c (finish_struct): Rename lineno to input_line. * decl.c (push_binding_level, pop_binding_level, suspend_binding_level, resume_binding_level, make_label_decl, use_label, start_function): Likewise. * decl2.c (warn_if_unknown_interface, start_static_initialization_or_destruction, generate_ctor_or_dtor_function, finish_file): Likewise. * error.c (cp_line_of, print_instantiation_full_context, print_instantiation_context): Likewise. * except.c (check_handlers_1, check_handlers): Likewise. * init.c (create_temporary_var): Likewise. * method.c (use_thunk, synthesize_method): Likewise. * parser.c (cp_lexer_set_source_position_from_token, cp_lexer_get_preprocessor_token): Likewise. * pt.c (push_tinst_level, pop_tinst_level, tsubst_friend_function, instantiate_class_template, tsubst_decl, tsubst, tsubst_expr, instantiate_decl): Likewise. * semantics.c (genrtl_try_block, finish_label_stmt, begin_class_definition, expand_body, genrtl_finish_function): Likewise. * tree.c (build_min_nt, build_min): Likewise. f * ansify.c (die_unless): Rename lineno to input_line. * com.c (ffecom_subscript_check_, ffecom_do_entry_, ffecom_gen_sfuncdef_, ffecom_start_progunit_, ffecom_sym_transform_, ffecom_sym_transform_assign_, bison_rule_pushlevel_, bison_rule_compstmt_, finish_function, store_parm_decls): Likewise. * intrin.c (ffeintrin_fulfill_generic): Likewise. * lex.c (ffelex_hash_, ffelex_include_, ffelex_next_line_, ffelex_file_fixed, ffelex_file_free): Likewise. * std.c (ffestd_exec_end): Likewise. * ste.c (ffeste_emit_line_note_, ffeste_start_block_, ffeste_start_stmt_): Likewise. * ste.h (ffeste_filelinenum, ffeste_set_line): Likewise. java * lex.h (lineno): Rename to ... (input_line): ... here * parse-scan.y (lineno): Rename to ... (input_line): ... here. (reset_report): Rename lineno to input_line. * check-init.c (check_init): Likewise. * class.c (push_class): Likewise. * decl.c (complete_start_java_method, end_java_method): Likewise. * expr.c (expand_byte_code): Likewise. * jcf-parse.c (give_name_to_class, parse_class_file): Likewise. * jcf-write.c (generate_bytecode_insns): Likewise. * lex.c (java_init_lex, java_allocate_new_line, do_java_lex): Likewise. * parse.h (YYNOT_TWICE): Likewise. * parse.y (empty_statement, expression_statement, java_pop_parser_context, java_parser_context_save_global, yyerror, register_fields, method_header, safe_layout_class, find_in_imports_on_demand, create_artificial_method, source_end_java_method, start_complete_expand_method, build_thisn_assign, java_complete_lhs, maybe_absorb_scoping_block): Likewise. objc * objc-act.c (objc_init): Rename lineno to input_line. (build_module_descriptor, build_selector_translation_table, build_protocol_template, build_method_prototype_list_template, build_category_template, build_selector_table, build_class_template, build_super_template, build_ivar_template, build_ivar_list_template, build_method_list_template, build_method_template, add_instance_variable): Likewise. treelang * tree1.c (treelang_init): Rename lineno to input_line. From-SVN: r66333
2003-05-01decl2.c (comdat_linkage): Don't externalize explicit instantiations.Mark Mitchell2-1/+6
* decl2.c (comdat_linkage): Don't externalize explicit instantiations. From-SVN: r66331
2003-05-01re PR c++/10554 (ICE with illegal using declaration)Kriang Lerdsuwanakij2-0/+7
PR c++/10554 * decl2.c (do_class_using_decl): Check if operand 0 of SCOPE_REF is not NULL. * g++.dg/lookup/using5.C: New test. From-SVN: r66329
2003-05-01cp-tree.h (struct lang_id2): Remove.Steven Bosscher2-24/+22
* cp-tree.h (struct lang_id2): Remove. Move fields from here... (struct lang_identifier): ... to here. (LANG_ID_FIELD): Remove. (SET_LANG_ID): Remove. (IDENTIFIER_LABEL_VALUE): Adjust for new lang_identifier. (SET_IDENTIFIER_LABEL_VALUE): Likewise. (IDENTIFIER_IMPLICIT_DECL): Likewise. (SET_IDENTIFIERL_IMPLICIT_DECL): Likewise. (IDENTIFIER_ERROR_LOCUS): Likewise. (SET_IDENTIFIER_ERROR_LOCUS): Likewise. From-SVN: r66328
2003-05-01re PR c++/8772 (misleading diagnostic for template template parameter)Kriang Lerdsuwanakij2-0/+7
PR c++/8772 * pt.c (convert_template_argument): Correct diagnostic. * g++.dg/template/ttp5.C: New test. From-SVN: r66324
2003-04-30PR c++/9432, c++/9528Kriang Lerdsuwanakij2-0/+13
PR c++/9432, c++/9528 * decl2.c (validate_nonmember_using_decl): Handle SCOPE_REF. * g++.dg/lookup/using4.C: New test. From-SVN: r66298
2003-04-30decl.c (check_previous_goto_1): Adjust prototype.Gabriel Dos Reis2-15/+20
* decl.c (check_previous_goto_1): Adjust prototype. (check_previous_goto): Adjust use. (check_switch_goto): Likewise. (use_label): Adjust. (check_previous_goto_1): Don't use pedwarn_with_file_and_line. (struct named_label_use_list): Use location_t datatype. From-SVN: r66290
2003-04-29re PR c++/10551 (Failure to emit explicitly instantiated template ↵Mark Mitchell2-6/+18
w/--no-implicit-templates) PR c++/10551 * pt.c (mark_decl_instantiated): Defer all explicit instantiations that have not yet been written out. PR c++/10551 * g++.dg/template/explicit1.C: New test. From-SVN: r66263
2003-04-29re PR c++/10549 (ICE in store_bit_field on bitfields that exceed the ↵Mark Mitchell2-8/+16
precision of the declared type.) PR c++/10549 * class.c (layout_class_type): Mark overlong bitfields as having the maximum size permitted by their type, after layout. PR c++/10549 * g++.dg/other/bitfield1.C: New test. From-SVN: r66257
2003-04-29re PR c++/10527 (confused error message with "new int()" parameter initializer)Mark Mitchell2-2/+15
PR c++/10527 * error.c (dump_expr): Correctly handling of NEW_EXPR.4 PR c++/10527 * g++.dg/init/new7.C: New test. From-SVN: r66247
2003-04-29re PR c++/10515 (problem when initializing a field in a union)Mark Mitchell1-2/+15
PR c++/10515 * cp-tree.h (lookup_field_1): Declare it. * search.c (lookup_field_1): Make it public. * decl.c (reshape_init): Handle designated initializers. From-SVN: r66236
2003-04-29re PR c++/10515 (problem when initializing a field in a union)Mark Mitchell3-2/+7
PR c++/10515 * g++.dg/ext/desig1.C: New test. * g++.dg/ext/init1.C: Likewise. PR c++/10515 * cp-tree.h (lookup_field_1): Declare it. * search.c (lookup_field_1): Make it public. * decl.c (reshape_init): Handle designated initializers. From-SVN: r66235
2003-04-29c-pragma.c (maybe_apply_renaming_pragma): Fix typo.Kriang Lerdsuwanakij3-3/+8
* c-pragma.c (maybe_apply_renaming_pragma): Fix typo. * gcc.c (display_help): Likewise. * toplev.c (f_options): Likewise. * params.def (PARAM_MAX_INLINE_SCOPE): Likewise. * config/c4x/c4x.h (TARGET_SWITCHES): Likewise. * config/mcore/mcore.h (TARGET_SWITCHES): Likewise. * config/s390/s390.h (TARGET_SWITCHES): Likewise. * config/v850/v850.h (TARGET_SWITCHES): Likewise. * call.c (build_operator_new_call): Fix typo. * lang-options.h: Likewise. From-SVN: r66228
2003-04-29Remove accidental commitMark Mitchell1-15/+2
From-SVN: r66206
2003-04-29decl.c (maybe_commonize_var): Further tweak support for systems without weak ↵Mark Mitchell2-20/+38
symbols. * decl.c (maybe_commonize_var): Further tweak support for systems without weak symbols. * g++.old-deja/g++.pt/deduct5.C: Remove unnecessary initializer. From-SVN: r66205
2003-04-28* decl.c (maybe_commonize_var): Fix thinko in last patch.Mark Mitchell2-1/+5
From-SVN: r66154
2003-04-28re PR c++/10506 (ICE in build_new at cp/init.c with -fkeep-inline-functions ↵Mark Mitchell4-9/+33
and multiple inheritance) PR c++/10506 * method.c (use_thunk): Decrement immediate_size_expand. PR c++/10503 * cp-tree.h (DECL_VAR_MARKED_P): New macro. (DECL_MAYBE_TEMPLATE): Remove. * class.c (fixed_type_or_null): Avoid infinite recursion. PR c++/10506 * g++.dg/init/new6.C: New test. PR c++/10503 * g++.dg/init/ref6.C: New test. From-SVN: r66150
2003-04-27decl.c (maybe_commonize_var): Make the code match the comments.Mark Mitchell3-6/+14
* decl.c (maybe_commonize_var): Make the code match the comments. * pt.c (instantiate_decl): Move call to import_export_decl. From-SVN: r66135
2003-04-26* decl2.c (finish_file): Fix merge botch.Mark Mitchell2-0/+6
From-SVN: r66114
2003-04-26decl2.c (finish_file): Don't call import_export_decl for functions that are ↵Mark Mitchell3-13/+56
not defined. * decl2.c (finish_file): Don't call import_export_decl for functions that are not defined. (handle_class_head): Robustify. * pt.c (instantiate_decl): Do not call cp_finish_decl for variables that are not defined. * g++.old-deja/g++.pt/instantiate12.C: Explicit instantiate initialized static data members. From-SVN: r66095
2003-04-24* call.c (print_z_candidates): Fix off by one error.Sylvain Pion2-1/+5
From-SVN: r66043
2003-04-24re PR c++/10337 ("ambiguous overload"-error for non-ambiguous situation)Nathan Sidwell2-34/+47
cp: PR c++/10337 * call.c (joust): Don't warn about conversion ops that are exact or cv-conversions. Rearrange to avoid multiple type comparisons. testsuite: PR c++/10337 * g++.dg/warn/conv1.C: New test. * g++.old-deja/g++.other/conv7.C: Adjust. * g++.old-deja/g++.other/overload14.C: Adjust. From-SVN: r66038
2003-04-24re PR c++/10471 (SegFault in build_cxx_call)Mark Mitchell2-1/+8
PR c++/10471 * call.c (build_cxx_call): Robustify. PR c++/10471 * g++.dg/template/defarg2.C: New test. From-SVN: r66032
2003-04-23Makefile.in (c-lex.o, [...]): Update.Neil Booth4-10/+8
* Makefile.in (c-lex.o, LIBCPP_OBJS, cpplex.o): Update. * c-lex.c (MULTIBYTE_CHARS): Remove conditionals. (lex_string): Take cpp_string with full spelling. (cb_ident): Update. (c_lex): Update diagnostics. * cpplex.c (SPELL_NUMBER, SPELL_STRING): Combine into SPELL_LITERAL. (create_literal): New. (lex_string): Unterminated literals have type CPP_OTHER. (_cpp_lex_direct): Update calls to lex_string. Use create_literal for CPP_OTHER. (cpp_token_len, cpp_spell_token, cpp_output_token): Simplify. (_cpp_equiv_tokens, cpp_interpret_charconst): Update. * cpplib.c (parse_include, do_line, do_linemarker, destringize_and_run): Update for token storing full spelling. * cpplib.h: Update token spelling types. * cppmacro.c (stringify_arg, check_trad_stringification): Update for token storing full spelling. cp: * Make-lang.in (lex.o): Remove mbchar.h. * lex.c (MULTIBYTE_CHARS): Lose. * parser.c (cp_lexer_get_preprocessor_token): CPP_OTHER handled in c-lex.c. testsuite: * gcc.dg/cpp/include2.c: Update. * gcc.dg/cpp/multiline-2.c: New. * gcc.dg/cpp/multiline.c: Update. * gcc.dg/cpp/strify2.c: Update. * gcc.dg/cpp/trad/literals-2.c: Update. From-SVN: r66019
2003-04-23re PR c++/9847 (ICE on :?-operator with double class definition in expand_expr)Mark Mitchell5-75/+17
PR c++/9847 * cp-tree.h (duplicate_tag_error): Remove. * class.c (duplicate_tag_error): Remove. * semantics.c (begin_class_definition): Return immediately for a duplicate class definition. PR c++/10451 * decl.c (grokdeclarator): Correct logic for "mutable" errors. From-SVN: r65998
2003-04-22re PR c++/10446 (ICE on a definition of a nonexistent member function of a ↵Mark Mitchell2-3/+12
nested class in a class template) PR c++/10446 * search.c (lookup_fnfields_1): Handle empty slots in the method vector. PR c++/10446 * g++.dg/parse/crash3.C: New test. From-SVN: r65962
2003-04-22re PR c++/10428 (struct <typedef'ed name> causes ICE in write_unscoped_name)Mark Mitchell2-17/+49
PR c++/10428 * g++.dg/parse/elab1.C: New test. PR c++/10428 * decl.c (check_elaborated_type_specifier): New function, split out from ... (xref_tag): ... here. Use the new function in more places. From-SVN: r65956
2003-04-22* rtti.c (throw_bad_typeid): Use build_cxx_call.Mark Mitchell2-1/+5
From-SVN: r65933