Age | Commit message (Collapse) | Author | Files | Lines |
|
* 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
|
|
From-SVN: r66694
|
|
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
|
|
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
|
|
From-SVN: r66665
|
|
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
|
|
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
|
|
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
|
|
* init.c (build_new_1): Don't reuse a TARGET_EXPR in an
expression. Undo some of the recent reorg.
From-SVN: r66594
|
|
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
|
|
result_type.
* call.c (build_conditional_expr): Don't assume that the folded
expression has result_type.
From-SVN: r66561
|
|
pointer-to-member earlier.
* typeck.c (build_unary_op): Deal with const qualifier in
invalid pointer-to-member earlier.
From-SVN: r66522
|
|
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
|
|
From-SVN: r66494
|
|
From-SVN: r66484
|
|
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
|
|
From-SVN: r66477
|
|
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
|
|
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
|
|
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
|
|
* 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
|
|
From-SVN: r66337
|
|
* 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
|
|
* decl2.c (comdat_linkage): Don't externalize explicit
instantiations.
From-SVN: r66331
|
|
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
|
|
* 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
|
|
PR c++/8772
* pt.c (convert_template_argument): Correct diagnostic.
* g++.dg/template/ttp5.C: New test.
From-SVN: r66324
|
|
PR c++/9432, c++/9528
* decl2.c (validate_nonmember_using_decl): Handle SCOPE_REF.
* g++.dg/lookup/using4.C: New test.
From-SVN: r66298
|
|
* 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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
* 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
|
|
From-SVN: r66206
|
|
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
|
|
From-SVN: r66154
|
|
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
|
|
* decl.c (maybe_commonize_var): Make the code match the comments.
* pt.c (instantiate_decl): Move call to import_export_decl.
From-SVN: r66135
|
|
From-SVN: r66114
|
|
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
|
|
From-SVN: r66043
|
|
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
|
|
PR c++/10471
* call.c (build_cxx_call): Robustify.
PR c++/10471
* g++.dg/template/defarg2.C: New test.
From-SVN: r66032
|
|
* 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
|
|
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
|
|
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
|
|
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
|
|
From-SVN: r65933
|