mirror of
https://github.com/Stichting-MINIX-Research-Foundation/netbsd.git
synced 2025-09-14 09:39:20 -04:00
1406 lines
40 KiB
Plaintext
1406 lines
40 KiB
Plaintext
2015-06-23 Release Manager
|
||
|
||
* GCC 4.8.5 released.
|
||
|
||
2015-04-23 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/65727
|
||
* semantics.c (maybe_resolve_dummy): Handle null return.
|
||
|
||
2015-04-23 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/65721
|
||
* name-lookup.c (do_class_using_decl): Complain about specifying
|
||
the current class even if there are dependent bases.
|
||
|
||
2015-01-13 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/64487
|
||
* semantics.c (finish_offsetof): Handle templates here.
|
||
* parser.c (cp_parser_builtin_offsetof): Not here.
|
||
|
||
PR c++/64251
|
||
* decl2.c (mark_used): Don't mark if in_template_function.
|
||
|
||
PR c++/64297
|
||
* typeck.c (apply_memfn_quals): Correct wrong TYPE_CANONICAL.
|
||
|
||
2014-12-19 Release Manager
|
||
|
||
* GCC 4.8.4 released.
|
||
|
||
2014-10-15 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/63455
|
||
Revert:
|
||
* parser.c (cp_parser_abort_tentative_parse): Make sure we haven't
|
||
committed to this tentative parse.
|
||
|
||
PR c++/63415
|
||
* pt.c (value_dependent_expression_p) [CONSTRUCTOR]: Check the type.
|
||
(iterative_hash_template_arg): Likewise.
|
||
|
||
PR c++/56710
|
||
* semantics.c (finish_member_declaration): Don't push closure
|
||
members.
|
||
|
||
PR c++/58624
|
||
* pt.c (tsubst_copy_and_build) [VAR_DECL]: Use TLS wrapper.
|
||
* semantics.c (finish_id_expression): Don't call TLS wrapper in a
|
||
template.
|
||
|
||
2014-08-07 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/61959
|
||
* semantics.c (cxx_eval_bare_aggregate): Handle POINTER_PLUS_EXPR.
|
||
|
||
PR c++/58714
|
||
* tree.c (stabilize_expr): A stabilized prvalue is an xvalue.
|
||
|
||
2014-01-27 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/59823
|
||
Core DR 1138
|
||
* call.c (reference_binding): Pass LOOKUP_NO_TEMP_BIND for
|
||
list-initialization. A conversion to rvalue ref that involves
|
||
an lvalue-rvalue conversion is bad.
|
||
(convert_like_real): Give helpful error message.
|
||
|
||
2014-01-29 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/59956
|
||
* friend.c (do_friend): Pass the TEMPLATE_DECL to add_friend if we
|
||
have a friend template in a class template.
|
||
* pt.c (tsubst_friend_function): Look through it.
|
||
(push_template_decl_real): A friend member template is
|
||
primary.
|
||
|
||
2014-02-21 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/60241
|
||
* pt.c (lookup_template_class_1): Update DECL_TEMPLATE_INSTANTIATIONS
|
||
of the partial instantiation, not the most general template.
|
||
(maybe_process_partial_specialization): Reassign everything on
|
||
that list.
|
||
|
||
2014-03-05 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/60361
|
||
* parser.c (cp_parser_template_id): Don't set up a CPP_TEMPLATE_ID
|
||
if re-parsing might succeed.
|
||
* semantics.c (finish_id_expression): Use of a parameter outside
|
||
the function body is a parse error.
|
||
|
||
2014-06-30 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/61647
|
||
* pt.c (type_dependent_expression_p): Check BASELINK_OPTYPE.
|
||
|
||
PR c++/61539
|
||
* pt.c (unify_one_argument): Type/expression mismatch just causes
|
||
deduction failure.
|
||
|
||
PR c++/61500
|
||
* tree.c (lvalue_kind): Handle MEMBER_REF and DOTSTAR_EXPR.
|
||
|
||
2014-06-17 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/60605
|
||
* pt.c (check_default_tmpl_args): Check DECL_LOCAL_FUNCTION_P.
|
||
|
||
2014-06-02 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/61134
|
||
* pt.c (pack_deducible_p): Handle canonicalization.
|
||
|
||
2014-05-22 Release Manager
|
||
|
||
* GCC 4.8.3 released.
|
||
|
||
2014-05-13 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/60708
|
||
* call.c (build_array_conv): Call complete_type.
|
||
|
||
PR c++/60713
|
||
* typeck2.c (PICFLAG_SIDE_EFFECTS): New.
|
||
(picflag_from_initializer): Return it.
|
||
(process_init_constructor): Handle it.
|
||
|
||
PR c++/60628
|
||
* decl.c (create_array_type_for_decl): Complain about array of auto.
|
||
|
||
PR c++/60367
|
||
* call.c (convert_default_arg): Remove special handling for
|
||
CONSTRUCTOR.
|
||
|
||
2014-04-28 Daniel Gutson <daniel.gutson@tallertechnologies.com>
|
||
|
||
* typeck.c (build_reinterpret_cast_1): Pass proper argument to
|
||
warn() in pedantic.
|
||
|
||
2014-02-28 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/58845
|
||
* typeck.c (cp_build_binary_op): Sorry on vector&&vector.
|
||
|
||
2014-02-26 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/60182
|
||
* pt.c (unify): Ignore alias templates when deducing a template
|
||
template parameter.
|
||
|
||
2014-02-24 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/60146
|
||
* pt.c (tsubst_omp_for_iterator): Don't let substitution of the
|
||
DECL_EXPR initialize a non-class iterator.
|
||
|
||
2014-02-24 Fabien Chêne <fabien@gcc.gnu.org>
|
||
PR c++/37140
|
||
* parser.c (cp_parser_nonclass_name): Call strip_using_decl and
|
||
move the code handling dependent USING_DECLs...
|
||
* name-lookup.c (strip_using_decl): ...Here.
|
||
|
||
2014-02-21 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/60108
|
||
* semantics.c (expand_or_defer_fn_1): Check DECL_DEFAULTED_FN.
|
||
|
||
PR c++/60187
|
||
* parser.c (cp_parser_enum_specifier): Call
|
||
check_for_bare_parameter_packs.
|
||
|
||
PR c++/60216
|
||
* pt.c (register_specialization): Copy DECL_DELETED_FN to clones.
|
||
|
||
PR c++/60219
|
||
* pt.c (coerce_template_parms): Bail if argument packing fails.
|
||
|
||
PR c++/60248
|
||
* mangle.c (mangle_decl): Don't make an alias for a TYPE_DECL.
|
||
|
||
2014-02-20 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/60274
|
||
Revert:
|
||
PR c++/58606
|
||
* pt.c (template_parm_to_arg): Call convert_from_reference.
|
||
(tsubst_template_arg): Don't strip reference refs.
|
||
|
||
2014-02-20 Kai Tietz <ktietz@redhat.com>
|
||
|
||
PR c++/58873
|
||
* parser.c (cp_parser_functional_cast): Treat NULL_TREE
|
||
valued type argument as error_mark_node.
|
||
|
||
PR c++/58835
|
||
* semantics.c (finish_fname): Handle error_mark_node.
|
||
|
||
2014-02-19 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/60046
|
||
* pt.c (maybe_instantiate_noexcept): Don't instantiate exception
|
||
spec from template context.
|
||
|
||
2014-01-31 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/58672
|
||
* decl2.c (handle_tls_init): Handle null init fn.
|
||
|
||
PR c++/55800
|
||
* decl2.c (get_tls_init_fn): Copy DECL_EXTERNAL from the variable.
|
||
|
||
PR c++/59646
|
||
* call.c (convert_like_real) [ck_aggr]: Set TARGET_EXPR_LIST_INIT_P.
|
||
[ck_list]: Check for error_mark_node.
|
||
|
||
PR c++/57043
|
||
* pt.c (fn_type_unification): Don't do DEDUCE_EXACT check
|
||
during partial ordering.
|
||
|
||
2014-01-30 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/57899
|
||
* pt.c (instantiate_template_1): Save/restore local_specializations.
|
||
|
||
2014-01-29 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/59989
|
||
* pt.c (expand_template_argument_pack): Correct
|
||
non_default_args_count calculation.
|
||
|
||
PR c++/58466
|
||
* pt.c (unify_pack_expansion): Call expand_template_argument_pack.
|
||
|
||
2014-01-28 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/58632
|
||
* decl.c (lookup_and_check_tag): Ignore template parameters if
|
||
scope == ts_current.
|
||
* pt.c (check_template_shadow): Don't complain about the injected
|
||
class name.
|
||
|
||
2014-01-27 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/54652
|
||
* decl.c (duplicate_decls): Always use oldtype for TYPE_DECL.
|
||
|
||
PR c++/58504
|
||
* pt.c (tsubst_copy_and_build) [TRAIT_EXPR]: Use tsubst for
|
||
types.
|
||
|
||
PR c++/58606
|
||
* pt.c (template_parm_to_arg): Call convert_from_reference.
|
||
(tsubst_template_arg): Don't strip reference refs.
|
||
|
||
PR c++/58639
|
||
* call.c (build_aggr_conv): Reject value-initialization of reference.
|
||
|
||
PR c++/58812
|
||
* call.c (convert_like_real): Give helpful error about excess braces
|
||
for reference binding, too.
|
||
|
||
PR c++/58814
|
||
* typeck.c (cp_build_modify_expr): Make the RHS an rvalue before
|
||
stabilizing.
|
||
|
||
PR c++/58837
|
||
* typeck.c (cp_truthvalue_conversion): Use explicit comparison for
|
||
FUNCTION_DECL.
|
||
|
||
PR c++/59097
|
||
* decl.c (compute_array_index_type): Don't call
|
||
maybe_constant_value for a non-integral expression.
|
||
|
||
PR c++/58965
|
||
* mangle.c (write_guarded_var_name): Handle null DECL_NAME.
|
||
|
||
2014-01-24 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/57524
|
||
* name-lookup.c (push_using_directive): Use timevar_cond_start.
|
||
|
||
2014-01-23 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/58809
|
||
* semantics.c (finish_omp_clauses): Reject MIN_EXPR, MAX_EXPR,
|
||
BIT_AND_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR on COMPLEX_TYPEs.
|
||
|
||
2014-01-20 Marek Polacek <polacek@redhat.com>
|
||
|
||
Backported from mainline
|
||
2014-01-17 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/59838
|
||
* cvt.c (ocp_convert): Don't segfault on non-existing
|
||
ENUM_UNDERLYING_TYPE.
|
||
|
||
2014-01-10 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/56060
|
||
PR c++/59730
|
||
* pt.c (type_dependent_expression_p): Handle EXPR_PACK_EXPANSION.
|
||
|
||
2013-12-12 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/58954
|
||
* pt.c (resolve_overloaded_unification): Discard access checks.
|
||
|
||
2013-12-05 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/59044
|
||
PR c++/59052
|
||
* pt.c (most_specialized_class): Use the partially instantiated
|
||
template for deduction. Drop the TMPL parameter.
|
||
|
||
2013-12-04 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/59268
|
||
* pt.c (tsubst_copy_and_build): Handle POINTER_PLUS_EXPR.
|
||
|
||
2013-11-27 Tom de Vries <tom@codesourcery.com>
|
||
Marc Glisse <marc.glisse@inria.fr>
|
||
|
||
PR c++/59032
|
||
* typeck.c (cp_build_unary_op): Allow vector increment and decrement.
|
||
|
||
2013-11-27 Tom de Vries <tom@codesourcery.com>
|
||
Marc Glisse <marc.glisse@inria.fr>
|
||
|
||
PR middle-end/59037
|
||
* semantics.c (cxx_fold_indirect_ref): Don't create out-of-bounds
|
||
BIT_FIELD_REF.
|
||
|
||
2013-11-28 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/59297
|
||
* semantics.c (finish_omp_atomic): Call finish_expr_stmt
|
||
rather than add_stmt.
|
||
|
||
2013-11-23 Easwaran Raman <eraman@google.com>
|
||
|
||
PR c++/59031
|
||
* call.c (build_new_method_call_1): Comnpare function context
|
||
with BASELINK_BINFO type rather than instance type before
|
||
marking the call with LOOKUP_NONVIRTUAL.
|
||
|
||
2013-10-31 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/58162
|
||
* parser.c (cp_parser_late_parse_one_default_arg): Set
|
||
TARGET_EXPR_DIRECT_INIT_P.
|
||
|
||
2013-11-11 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
* cvt.c (cp_convert_to_pointer): Call build_ptrmemfunc before
|
||
maybe_warn_zero_as_null_pointer_constant to avoid duplicate
|
||
-Wzero-as-null-pointer-constant diagnostics.
|
||
|
||
* typeck.c (build_ptrmemfunc): Use cp_build_c_cast.
|
||
|
||
2013-10-25 Tom de Vries <tom@codesourcery.com>
|
||
|
||
PR c++/58282
|
||
* except.c (build_must_not_throw_expr): Handle
|
||
flag_exceptions.
|
||
|
||
2013-10-17 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/58596
|
||
* semantics.c (lambda_expr_this_capture): Handle NSDMIs in the
|
||
cp_unevaluated_operand case.
|
||
|
||
2013-10-16 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/58633
|
||
* parser.c (cp_parser_pseudo_destructor_name): Revert r174385 changes.
|
||
|
||
2013-10-16 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/57850
|
||
* decl2.c (dump_tu): Split out from...
|
||
(cp_write_global_declarations): ...here. Call it in PCH mode.
|
||
|
||
2013-10-16 Release Manager
|
||
|
||
* GCC 4.8.2 released.
|
||
|
||
2013-10-08 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/58568
|
||
* semantics.c (begin_lambda_type): Check return value of xref_tag
|
||
for error_mark_node; tidy.
|
||
* decl.c (grokdeclarator): Tweak error message.
|
||
|
||
2013-10-02 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/58535
|
||
* parser.c (cp_parser_function_specifier_opt): Upon error about
|
||
virtual templates don't set ds_virtual.
|
||
|
||
2013-09-18 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/58457
|
||
* class.c (instantiate_type): Loosen a bit the gcc_assert.
|
||
|
||
2013-09-13 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/58273
|
||
* pt.c (any_type_dependent_elements_p): Actually check for
|
||
type-dependence, not value-dependence.
|
||
|
||
2013-09-09 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/58325
|
||
* init.c (build_vec_delete): Call mark_rvalue_use on base.
|
||
|
||
2013-08-20 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/58119
|
||
* cp-tree.h (WILDCARD_TYPE_P): Split out from...
|
||
(MAYBE_CLASS_TYPE_P): ...here.
|
||
* cvt.c (build_expr_type_conversion): Don't complain about a
|
||
template that can't match the desired type category.
|
||
|
||
2013-08-17 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/58083
|
||
* name-lookup.c (push_class_level_binding_1): It's OK to push a
|
||
lambda type after the enclosing type is complete.
|
||
|
||
2013-08-06 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/57825
|
||
* tree.c (strip_typedefs) [METHOD_TYPE]: Preserve ref-qualifier.
|
||
|
||
2013-07-29 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/57901
|
||
* semantics.c (build_data_member_initialization, constexpr_fn_retval):
|
||
Use break_out_target_exprs instead of unshare_expr.
|
||
|
||
PR c++/58022
|
||
* typeck2.c (abstract_virtuals_error_sfinae): Don't remember
|
||
lookup in SFINAE context.
|
||
|
||
2013-07-25 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/57981
|
||
* decl.c (check_default_argument): Take a tsubst_flags_t parameter.
|
||
(grokparms): Adjust.
|
||
* parser.c (cp_parser_late_parse_one_default_arg): Likewise.
|
||
* pt.c (tsubst_default_argument, tsubst_default_arguments): Take
|
||
a tsubst_flags_t parameter.
|
||
(tsubst_decl): Adjust.
|
||
* call.c (convert_default_arg): Likewise.
|
||
* cp-tree.h (check_default_argument, tsubst_default_argument):
|
||
Update declarations.
|
||
|
||
2013-07-12 Jason Merrill <jason@redhat.com>
|
||
|
||
* init.c (build_vec_init): Value-initialize the rest of the array.
|
||
|
||
2013-07-09 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/57526
|
||
* semantics.c (lambda_capture_field_type): Build a DECLTYPE_TYPE
|
||
if the variable type uses 'auto'.
|
||
|
||
PR c++/57437
|
||
* typeck.c (check_return_expr): Lambda proxies aren't eligible
|
||
for nrv or return by move.
|
||
|
||
PR c++/57532
|
||
* parser.c (cp_parser_ref_qualifier_opt): Don't tentatively parse
|
||
a ref-qualifier in C++98 mode.
|
||
|
||
PR c++/57545
|
||
* pt.c (convert_nontype_argument) [INTEGER_CST]: Force the
|
||
argument to have the exact type of the parameter.
|
||
|
||
PR c++/57551
|
||
* semantics.c (cxx_eval_indirect_ref): Don't try to look through
|
||
a POINTER_PLUS_EXPR for type punning diagnostic.
|
||
|
||
PR c++/57831
|
||
* pt.c (tsubst_copy): Handle USING_DECL.
|
||
|
||
2013-07-08 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/57550
|
||
* pt.c (fn_type_unification): Only defer during substitution.
|
||
(type_unification_real): Defer during defarg substitution,
|
||
add checks parm to pass back deferred checks.
|
||
(unify, do_auto_deduction): Adjust.
|
||
* semantics.c (reopen_deferring_access_checks): New.
|
||
* cp-tree.h: Declare it.
|
||
|
||
2013-07-05 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/57645
|
||
* class.c (deduce_noexcept_on_destructors): Save, set, and restore
|
||
TYPE_HAS_NONTRIVIAL_DESTRUCTOR (t) around the main loop over the
|
||
destructors.
|
||
|
||
2013-07-03 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/57771
|
||
* parser.c (cp_parser_postfix_expression) <case RID_STATCAST>
|
||
Temporarily set parser->greater_than_is_operator_p for
|
||
cp_parser_expression and restore from saved value afterwards.
|
||
|
||
2013-06-21 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/53211
|
||
* pt.c (type_dependent_expression_p): Handle an array of unknown
|
||
bound depending on a variadic parameter.
|
||
* parser.c (cp_parser_range_for): Revert PR56794 changes.
|
||
|
||
2013-05-31 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/57319
|
||
* class.c (vbase_has_user_provided_move_assign): New.
|
||
* method.c (synthesized_method_walk): Check it.
|
||
* cp-tree.h: Declare it.
|
||
|
||
PR c++/56930
|
||
* call.c (convert_like_real): Use cp_convert_and_check.
|
||
* cvt.c (cp_convert_and_check): Use maybe_constant_value.
|
||
* semantics.c (cxx_eval_constant_expression): Handle LTGT_EXPR.
|
||
(potential_constant_expression_1): Handle OMP_ATOMIC*.
|
||
|
||
2013-05-31 Release Manager
|
||
|
||
* GCC 4.8.1 released.
|
||
|
||
2013-05-24 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/57388
|
||
* tree.c (build_ref_qualified_type): Clear
|
||
FUNCTION_RVALUE_QUALIFIED for lvalue ref-qualifier.
|
||
|
||
PR c++/57016
|
||
* pt.c (instantiation_dependent_r) [TRAIT_EXPR]: Only check type2
|
||
if there is one.
|
||
|
||
2013-05-20 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/57325
|
||
* tree.c (build_cplus_array_type): Copy layout info if element
|
||
type is complete.
|
||
|
||
PR c++/57317
|
||
* decl2.c (determine_visibility): Use PRIMARY_TEMPLATE_P to decide
|
||
whether a template has its own args.
|
||
|
||
2013-05-16 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/57279
|
||
* decl.c (grokdeclarator): Allow member function qualifiers in
|
||
TYPENAME context in C++11 mode.
|
||
|
||
2013-05-16 Dodji Seketeli <dodji@redhat.com>
|
||
|
||
PR c++/56782 - Regression with empty pack expansions
|
||
* pt.c (use_pack_expansion_extra_args_p): When at least a
|
||
parameter pack has an empty argument pack, and another parameter
|
||
pack has no argument pack at all, use the PACK_EXPANSION_EXTRA
|
||
mechanism.
|
||
|
||
2013-05-14 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/57243
|
||
* parser.c (cp_parser_range_for): Call complete_type.
|
||
|
||
PR c++/57041
|
||
* pt.c (tsubst_copy_and_build): Don't recur into a designator.
|
||
|
||
2013-05-13 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/56998
|
||
* semantics.c (potential_constant_expression_1): Make sure the
|
||
called function is potentially constant.
|
||
|
||
PR c++/57041
|
||
* decl.c (reshape_init_class): Handle error_mark_node.
|
||
|
||
PR c++/57254
|
||
* typeck.c (merge_types): Propagate ref-qualifier
|
||
in METHOD_TYPE case.
|
||
|
||
PR c++/57253
|
||
* decl.c (grokdeclarator): Apply ref-qualifier
|
||
in the TYPENAME case.
|
||
|
||
PR c++/57252
|
||
* decl.c (decls_match): Compare ref-qualifiers.
|
||
|
||
PR c++/57196
|
||
* pt.c (convert_template_argument): Use dependent_template_arg_p,
|
||
not uses_template_parms.
|
||
|
||
2013-05-10 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/57047
|
||
* semantics.c (cxx_fold_indirect_ref): Fix thinko.
|
||
|
||
2013-05-09 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/57222
|
||
* pt.c (lookup_template_class_1): Handle getting a template
|
||
template parameter as D1.
|
||
|
||
2013-05-08 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/57068
|
||
* decl.c (grokdeclarator): Warn about ref-qualifiers here.
|
||
* parser.c (cp_parser_ref_qualifier_seq_opt): Not here.
|
||
* error.c (maybe_warn_cpp0x): s/0x/11/.
|
||
|
||
2013-05-08 Marc Glisse <marc.glisse@inria.fr>
|
||
|
||
* typeck.c (cp_build_binary_op): Call save_expr before
|
||
build_vector_from_val.
|
||
|
||
2013-05-06 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/57183
|
||
* decl.c (cp_finish_decl): After do_auto_deduction copy the
|
||
qualifers with cp_apply_type_quals_to_decl.
|
||
|
||
2013-05-01 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/57092
|
||
* semantics.c (finish_decltype_type): Handle instantiated template
|
||
non-type arguments.
|
||
|
||
2013-04-29 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/56450
|
||
* semantics.c (finish_decltype_type): Handle COMPOUND_EXPR.
|
||
|
||
2013-04-25 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/57064
|
||
* call.c (add_function_candidate): Strip ref-to-ptr conversion.
|
||
|
||
PR c++/56859
|
||
* typeck.c (cxx_alignas_expr): Handle value-dependence properly.
|
||
|
||
PR c++/50261
|
||
* init.c (perform_member_init): Call reshape_init.
|
||
|
||
2013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/56970
|
||
* init.c (build_offset_ref): Add tsubst_flags_t parameter.
|
||
* semantics.c (finish_qualified_id_expr): Likewise.
|
||
(finish_id_expression): Update.
|
||
* typeck.c (cp_build_addr_expr_1): Likewise.
|
||
* pt.c (tsubst_qualified_id, resolve_nondeduced_context): Likewise.
|
||
* cp-tree.h: Update declarations.
|
||
|
||
2013-04-17 Jason Merrill <jason@redhat.com>
|
||
|
||
DR 941
|
||
* decl.c (duplicate_decls): Don't propagate DECL_DELETED_FN to
|
||
template specializations.
|
||
|
||
2013-04-15 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/52748
|
||
* pt.c (tsubst) [DECLTYPE_TYPE]: If ~id is an expression
|
||
rather than a destructor name, it isn't an unqualified-name.
|
||
(tsubst_copy_and_build): Pass down decltype_flag to operator
|
||
handling code, too.
|
||
|
||
PR c++/56388
|
||
* semantics.c (insert_capture_proxy): Just use index 1 in the
|
||
stmt_list_stack.
|
||
|
||
2013-04-11 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/52748
|
||
* parser.c (complain_flags): New.
|
||
(cp_parser_postfix_expression): Use it.
|
||
(cp_parser_unary_expression): Likewise.
|
||
(cp_parser_binary_expression): Likewise.
|
||
(cp_parser_assignment_expression): Likewise.
|
||
(cp_parser_expression): Likewise.
|
||
(cp_parser_postfix_open_square_expression): Take decltype_p.
|
||
(cp_parser_builtin_offsetof): Adjust.
|
||
(cp_convert_range_for): Pass complain to finish_unary_op_expr.
|
||
* decl2.c (grok_array_decl): Add decltype_p parm.
|
||
* cp-tree.h: Adjust prototype.
|
||
* semantics.c (finish_unary_op_expr): Add complain parm.
|
||
|
||
2013-04-11 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/56895
|
||
* call.c (null_ptr_cst_p): Call fold_non_dependent_expr_sfinae before
|
||
calling maybe_constant_value for C++98.
|
||
|
||
2013-04-11 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/56913
|
||
* typeck2.c (build_m_component_ref): Protect error calls with
|
||
(complain & tf_error).
|
||
|
||
2013-04-10 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/56895
|
||
* typeck.c (cp_build_binary_op): Call fold_non_dependent_expr_sfinae
|
||
first before calling maybe_constant_value for warn_for_div_by_zero
|
||
or invalid shift count warning purposes.
|
||
|
||
2013-04-06 Jason Merrill <jason@redhat.com>
|
||
|
||
* parser.c (cp_parser_std_attribute): Treat [[noreturn]] like GNU
|
||
noreturn attribute.
|
||
|
||
2013-04-03 Jason Merrill <jason@redhat.com>
|
||
|
||
* cp-tree.h (FUNCTION_OR_METHOD_TYPE_CHECK): Remove.
|
||
(FUNCTION_REF_QUALIFIED): Use FUNC_OR_METHOD_CHECK instead.
|
||
(FUNCTION_RVALUE_QUALIFIED): Likewise.
|
||
|
||
2013-04-03 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR debug/56819
|
||
* tree.c (strip_typedefs): Copy NON_DEFAULT_TEMPLATE_ARGS_COUNT
|
||
from args to new_args.
|
||
(strip_typedefs_expr): Copy NON_DEFAULT_TEMPLATE_ARGS_COUNT from t to
|
||
r instead of doing {S,G}ET_NON_DEFAULT_TEMPLATE_ARGS_COUNT.
|
||
|
||
2013-04-02 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/56821
|
||
* mangle.c (write_function_type): Mangle ref-qualifier.
|
||
(write_nested_name): Likewise.
|
||
(canonicalize_for_substitution): Preserve ref-qualifier.
|
||
(write_type): Likewise.
|
||
|
||
2013-04-01 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/55951
|
||
* decl.c (check_array_designated_initializer): Handle CONST_DECL
|
||
as ce->index.
|
||
|
||
2013-04-01 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/56772
|
||
* init.c (build_new): Don't try to process an array initializer
|
||
at template definition time.
|
||
|
||
2013-04-01 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/56793
|
||
* typeck.c (finish_class_member_access_expr): Handle enum scope.
|
||
|
||
2013-04-01 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/56794
|
||
* parser.c (cp_parser_range_for): Don't try to do auto deduction
|
||
in a template if the type of the range is incomplete.
|
||
|
||
2013-04-01 Bronek Kozicki <b.kozicki@gmail.com>
|
||
Jason Merrill <jason@redhat.com>
|
||
|
||
Implement N2439 (ref-qualifiers for 'this')
|
||
* cp-tree.h (FUNCTION_REF_QUALIFIED): New.
|
||
(FUNCTION_RVALUE_QUALIFIED): New.
|
||
(FUNCTION_OR_METHOD_TYPE_CHECK): New.
|
||
(cpp0x_warn_str): Add CPP0X_REF_QUALIFIER.
|
||
(cp_ref_qualifier): New enum.
|
||
(cp_declarator): Add ref_qualifier.
|
||
* parser.c (cp_parser_ref_qualifier_seq_opt): New.
|
||
(cp_parser_direct_declarator): Use it.
|
||
(make_call_declarator): Adjust.
|
||
(cp_parser_lambda_declarator_opt): Adjust.
|
||
* call.c (add_function_candidate): Handle ref-qualifier overload
|
||
resolution semantics.
|
||
(standard_conversion): Adjust.
|
||
* class.c (add_method, same_signature_p): Compare ref-qualifiers.
|
||
* decl.c (grokdeclarator): Handle ref-qualifiers.
|
||
(grokfndecl): Check for invalid ref-qualifiers.
|
||
(static_fn_type, revert_static_member_fn): Adjust.
|
||
* decl2.c (build_memfn_type): Handle ref-qualifiers.
|
||
(check_classfn): Check them.
|
||
(cp_reconstruct_complex_type): Retain them.
|
||
* error.c (dump_ref_qualifier): New.
|
||
(dump_type_suffix, dump_function_decl): Use it.
|
||
(maybe_warn_cpp0x): Handle CPP0X_REF_QUALIFIER.
|
||
* pt.c (tsubst, tsubst_function_type): Instantiate ref-quals.
|
||
(unify): Retain them.
|
||
* tree.c (cp_check_qualified_type): New.
|
||
(cp_build_qualified_type_real): Keep exception spec and ref-qual.
|
||
(build_ref_qualified_type): New.
|
||
(strip_typedefs, build_exception_variant): Keep ref-qualifier.
|
||
(cp_build_type_attribute_variant): Keep ref-qualifier.
|
||
* typeck.c (merge_types): Keep ref-qualifier.
|
||
(structural_comptypes): Compare ref-qualifier.
|
||
(type_memfn_rqual): New.
|
||
(apply_memfn_quals): Take ref-qual argument.
|
||
* typeck2.c (build_m_component_ref): Check ref-qualifier.
|
||
|
||
2013-03-29 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/56774
|
||
PR c++/35722
|
||
* pt.c (unify_pack_expansion): Fix indexing.
|
||
|
||
2013-03-28 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/56728
|
||
* semantics.c (cxx_eval_indirect_ref): Use the folded operand if
|
||
we still think this might be constant.
|
||
|
||
2013-03-27 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/56749
|
||
* semantics.c (finish_qualified_id_expr): Return early
|
||
for enum scope.
|
||
|
||
2013-03-26 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/45282
|
||
* typeck2.c (build_m_component_ref): Handle prvalue object.
|
||
|
||
2013-03-25 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/56699
|
||
* semantics.c (maybe_resolve_dummy): Make sure that the enclosing
|
||
class is derived from the type of the object.
|
||
|
||
PR c++/56692
|
||
* search.c (lookup_base): Handle NULL_TREE.
|
||
|
||
2013-03-25 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/56722
|
||
* decl.c (cp_finish_decl): Check DECL_LANG_SPECIFIC before
|
||
DECL_TEMPLATE_INSTANTIATION.
|
||
|
||
2013-03-25 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/52014
|
||
* semantics.c (lambda_expr_this_capture): Don't capture 'this' in
|
||
unevaluated context.
|
||
|
||
2013-03-23 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/54359
|
||
* parser.c (cp_parser_direct_declarator): Fix late return
|
||
for out-of-class defn of member function.
|
||
|
||
2013-03-22 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/56582
|
||
* semantics.c (cxx_eval_array_reference): Check for negative index.
|
||
|
||
2013-03-22 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/56646
|
||
* parser.c (cp_parser_late_return_type_opt): Save and restore
|
||
current_class_ptr/ref.
|
||
|
||
N3276
|
||
PR c++/52748
|
||
* cp-tree.h (tsubst_flags): Add tf_decltype.
|
||
* call.c (build_cxx_call): Don't build a temporary if it's set.
|
||
(build_over_call): Make sure it's only passed to build_cxx_call.
|
||
* parser.c (cp_parser_primary_expression): Add decltype_p parm.
|
||
(cp_parser_unary_expression): Likewise.
|
||
(cp_parser_cast_expression): Likewise.
|
||
(cp_parser_binary_expression): Likewise.
|
||
(cp_parser_assignment_expression): Likewise.
|
||
(cp_parser_postfix_expression): Likewise. Pass tf_decltype.
|
||
(cp_parser_explicit_instantiation): Add decltype_p. Force a
|
||
temporary for a call on the LHS of a comma.
|
||
(cp_parser_decltype): Pass true to decltype_p parms.
|
||
* pt.c (tsubst) [DECLTYPE_TYPE]: Pass tf_decltype.
|
||
(tsubst_copy_and_build): Pass tf_decltype down only for
|
||
CALL_EXPR and the RHS of COMPOUND_EXPR.
|
||
* tree.c (build_cplus_new): Call complete_type_or_maybe_complain.
|
||
|
||
DR 657
|
||
* pt.c (tsubst_function_type): Call abstract_virtuals_error_sfinae.
|
||
(tsubst_arg_types): Likewise.
|
||
|
||
PR c++/54277
|
||
* semantics.c (lambda_capture_field_type): Don't build a
|
||
magic decltype for pointer types.
|
||
(lambda_proxy_type): Likewise.
|
||
(finish_non_static_data_member): Get the quals from
|
||
the object.
|
||
|
||
PR c++/52374
|
||
* pt.c (tsubst_qualified_id): Use current_nonlambda_class_type.
|
||
|
||
PR c++/54764
|
||
PR c++/55972
|
||
* name-lookup.h (tag_scope): Add ts_lambda.
|
||
* semantics.c (begin_lambda_type): Use it.
|
||
* decl.c (xref_tag_1): Set CLASSTYPE_LAMBDA_EXPR.
|
||
* pt.c (check_default_tmpl_args): Ignore lambdas.
|
||
(push_template_decl_real): Handle lambdas.
|
||
* tree.c (no_linkage_check): Adjust lambda check.
|
||
|
||
PR c++/56039
|
||
* tree.c (strip_typedefs_expr): Complain about lambda, don't abort.
|
||
|
||
PR c++/56447
|
||
PR c++/55532
|
||
* pt.c (instantiate_class_template_1): Instantiate lambda capture
|
||
list here.
|
||
(tsubst_copy_and_build): Not here.
|
||
|
||
2013-03-22 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Backported from mainline
|
||
2013-03-16 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/56607
|
||
* typeck.c (cp_build_binary_op): When calling warn_for_div_by_zero,
|
||
pass op1 through maybe_constant_value first.
|
||
|
||
* tree.c (cp_tree_equal): Fix a pasto.
|
||
|
||
2013-03-22 Release Manager
|
||
|
||
* GCC 4.8.0 released.
|
||
|
||
2013-03-14 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/56614
|
||
* decl.c (local_variable_p_walkfn): Check DECL_ARTIFICIAL again.
|
||
|
||
PR c++/56346
|
||
* decl.c (register_dtor_fn): Pass null to __cxa_thread_atexit
|
||
dso_handle parm on targets without __cxa_atexit.
|
||
|
||
2013-03-11 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/56567
|
||
* typeck.c (check_return_expr): Disallow returning init list here.
|
||
* semantics.c (apply_deduced_return_type): Not here.
|
||
|
||
2013-03-08 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/51412
|
||
* cxx-pretty-print.c (pp_cxx_expression): Handle LAMBDA_EXPR.
|
||
* error.c (dump_expr): Likewise.
|
||
|
||
2013-03-08 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/51884
|
||
* class.c (modify_all_vtables): Mangle the vtable name before
|
||
entering dfs_walk.
|
||
|
||
* semantics.c (lambda_expr_this_capture): In unevaluated context,
|
||
just return the nearest 'this'.
|
||
|
||
PR c++/51494
|
||
PR c++/52183
|
||
PR c++/56222
|
||
* tree.c (maybe_dummy_object): Don't capture 'this'.
|
||
* semantics.c (maybe_resolve_dummy): New.
|
||
(finish_non_static_data_member): Use it.
|
||
(finish_qualified_id_expr): Don't test is_dummy_object.
|
||
* cp-tree.h: Declare maybe_resolve_dummy.
|
||
* call.c (build_new_method_call_1): Use it.
|
||
|
||
PR c++/56567
|
||
* semantics.c (apply_deduced_return_type): Don't allow returning
|
||
std::initializer_list.
|
||
|
||
2013-03-06 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/56534
|
||
* parser.c (cp_parser_elaborated_type_specifier): Don't call
|
||
check_elaborated_type_specifier when TREE_CODE (decl) != TYPE_DECL.
|
||
* decl.c (check_elaborated_type_specifier): Tidy.
|
||
|
||
2013-03-06 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/56543
|
||
* tree.c (strip_typedefs): Don't copy args if they are NULL.
|
||
|
||
2013-03-05 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* parser.c (cp_parser_braced_list): For {} initialize
|
||
*non_constant_p to false.
|
||
|
||
2013-03-04 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/56464
|
||
PR c++/54383
|
||
* semantics.c (lambda_expr_this_capture): Handle NSDMI
|
||
and non-class scopes.
|
||
|
||
2013-03-01 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
* decl.c (grokdeclarator): Remove dead code.
|
||
|
||
2013-02-28 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/56481
|
||
* semantics.c (potential_constant_expression_1): Use
|
||
cxx_eval_outermost_constant_expr rather than maybe_constant_value.
|
||
|
||
PR c++/56243
|
||
* call.c (build_over_call): Avoid virtual lookup in a template.
|
||
|
||
2013-02-27 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/56358
|
||
PR c++/56323
|
||
* name-lookup.c (do_class_using_decl): Use ctor_identifier instead
|
||
of the base name for inheriting ctors.
|
||
(push_class_level_binding_1): Remove inheriting ctor handling.
|
||
* pt.c (tsubst_decl) [USING_DECL]: Likewise.
|
||
* class.c (add_implicitly_declared_members): Adjust.
|
||
|
||
2013-02-26 David Binderman <dcb314@hotmail.com>
|
||
|
||
PR c++/55632
|
||
* decl.c (grokdeclarator): Tidy publicp assignment.
|
||
|
||
2013-02-25 Aldy Hernandez <aldyh@redhat.com>
|
||
|
||
PR c++/56419
|
||
* semantics.c (begin_transaction_stmt): Set TREE_SIDE_EFFECTS.
|
||
(build_transaction_expr): Same.
|
||
|
||
2013-02-25 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/56377
|
||
* pt.c (fn_type_unification): Wait to call push_tinst_level until
|
||
we know what args we're looking at.
|
||
|
||
PR c++/56438
|
||
* semantics.c (potential_constant_expression_1): In C++98, a cast
|
||
to non-integral type can't be a constant expression.
|
||
|
||
2013-02-24 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/56403
|
||
* init.c (build_zero_init_1): Use RECORD_OR_UNION_CODE_P instead
|
||
of CLASS_TYPE_P.
|
||
|
||
2013-02-22 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/40405
|
||
* pt.c (push_template_decl_real): Set DECL_INTERFACE_KNOWN
|
||
if we got the wrong number of template parms.
|
||
|
||
PR c++/56377
|
||
* pt.c (fn_type_unification): Use explicit args in template
|
||
instantiation context.
|
||
|
||
PR c++/56359
|
||
* call.c (can_convert_arg): Discard access checks.
|
||
|
||
PR c++/56395
|
||
* tree.c (strip_typedefs): Strip typedefs from TYPENAME_TYPE template
|
||
args.
|
||
|
||
2013-02-20 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/56373
|
||
* tree.c (maybe_warn_zero_as_null_pointer_constant): Add.
|
||
* cvt.c (ocp_convert): Use the latter.
|
||
(cp_convert_to_pointer): Likewise.
|
||
* decl.c (check_default_argument): Likewise.
|
||
* typeck.c (cp_build_binary_op): Likewise.
|
||
* cp-tree.h (maybe_warn_zero_as_null_pointer_constant): Declare.
|
||
|
||
2013-02-15 Jonathan Wakely <jwakely.gcc@gmail.com>
|
||
Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/51242
|
||
* decl2.c (grokbitfield): Allow scoped enumeration types.
|
||
|
||
2013-02-15 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/54276
|
||
* semantics.c (finish_id_expression): Also return the identifier
|
||
for an outer local static.
|
||
|
||
PR c++/56343
|
||
* class.c (check_bases_and_members): Deduce noexcept after
|
||
checking bases.
|
||
|
||
PR c++/52026
|
||
* semantics.c (finish_id_expression): In a template, return
|
||
the identifier for a constant variable.
|
||
|
||
2013-02-14 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/54922
|
||
* semantics.c (build_anon_member_initialization): New.
|
||
(build_data_member_initialization): Use it.
|
||
|
||
PR c++/55003
|
||
* decl.c (cp_finish_decl): Force instantiation of an
|
||
auto static data member.
|
||
|
||
PR c++/55220
|
||
* pt.c (unify): A pack expansion that is not the last template
|
||
argument makes the entire template argument list non-deduced.
|
||
|
||
PR c++/56323
|
||
* name-lookup.c (do_class_using_decl): Handle typedefs with
|
||
inheriting constructors.
|
||
(push_class_level_binding_1): Allow inheriting from template
|
||
template parameter, too.
|
||
* pt.c (tsubst_decl) [USING_DECL]: Likewise.
|
||
|
||
PR c++/55223
|
||
* pt.c (tsubst_copy_and_build) [LAMBDA_EXPR]: Fix handling of
|
||
default argument scope.
|
||
* mangle.c (write_name): Likewise.
|
||
|
||
PR c++/55232
|
||
* error.c (find_typenames_r): Don't walk into a pack expansion.
|
||
|
||
2013-02-13 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/55670
|
||
* parser.c (cp_parser_member_declaration): Check the declarator
|
||
form when detecting a function declaration via typedef.
|
||
|
||
PR c++/55680
|
||
* pt.c (maybe_process_partial_specialization): A lambda
|
||
isn't what's being specialized.
|
||
|
||
PR c++/55710
|
||
* semantics.c (maybe_add_lambda_conv_op): Mark static thunk
|
||
TREE_USED.
|
||
|
||
PR c++/55879
|
||
* semantics.c (cxx_bind_parameters_in_call): Undo DECL_BY_REFERENCE.
|
||
|
||
PR c++/55993
|
||
* semantics.c (cxx_fold_indirect_ref): Handle empty bases at
|
||
non-zero offsets, too.
|
||
|
||
PR c++/56155
|
||
* decl.c (build_enumerator): Always convert the value to a
|
||
fixed underlying type.
|
||
|
||
PR c++/56135
|
||
* pt.c (tsubst_copy_and_build): Don't forget any new
|
||
captures that arose from use of dependent names.
|
||
|
||
2013-02-13 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/56302
|
||
* semantics.c (finish_asm_stmt): If input constraints allow
|
||
neither register nor memory, try maybe_constant_value to get
|
||
a constant if possible.
|
||
|
||
2013-02-12 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/56285
|
||
* method.c (add_one_base_init): Handle base constructor
|
||
taking rvalue reference parm.
|
||
|
||
PR c++/56291
|
||
* semantics.c (sort_constexpr_mem_initializers): Handle
|
||
vptr out of order.
|
||
|
||
2013-02-09 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/56268
|
||
* semantics.c (classtype_has_nothrow_assign_or_copy_p): Call
|
||
maybe_instantiate_noexcept.
|
||
|
||
PR c++/56247
|
||
* pt.c (eq_specializations): Set comparing_specializations.
|
||
* tree.c (cp_tree_equal): Check it.
|
||
* cp-tree.h: Declare it.
|
||
|
||
* decl.c (decls_match): Check versions later.
|
||
|
||
PR c++/56238
|
||
* pt.c (build_non_dependent_expr): Don't try to fold
|
||
instantiation-dependent expressions.
|
||
(instantiation_dependent_r) [TRAIT_EXPR]: Split out.
|
||
[BIND_EXPR]: Treat as dependent.
|
||
|
||
2013-02-07 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/56241
|
||
* init.c (build_vec_init): Don't append NULL values into new_vec.
|
||
(build_zero_init_1): Don't push anything into v if recursive call
|
||
returned NULL_TREE.
|
||
(build_value_init_noctor): Don't push anything into v if
|
||
build_value_init call returned NULL_TREE.
|
||
|
||
PR c++/56239
|
||
* parser.c (cp_parser_token_starts_cast_expression): Renamed to...
|
||
(cp_parser_tokens_start_cast_expression): ... this. Change parameter
|
||
to cp_parser *, call cp_lexer_peek_token first. For CPP_OPEN_PAREN,
|
||
return true only if 2nd token isn't CPP_CLOSE_PAREN.
|
||
(cp_parser_cast_expression): Adjust caller.
|
||
|
||
PR c++/56237
|
||
* decl.c (push_local_name): Look at DECL_DISCRIMINATOR (t)
|
||
only if DECL_DISCRIMINATOR_SET_P (t) rather than just
|
||
DECL_LANG_SPECIFIC (t).
|
||
|
||
2013-02-07 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/56235
|
||
* method.c (do_build_copy_constructor): Don't bother turning
|
||
scalars from lvalues to xvalues.
|
||
(do_build_copy_assign): Likewise.
|
||
|
||
2013-02-06 Jason Merrill <jason@redhat.com>
|
||
|
||
* parser.c (cp_parser_enum_specifier): Check for error_mark_node.
|
||
|
||
2013-02-05 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/54122
|
||
* tree.c (lvalue_kind) [INDIRECT_REF]: Don't check for
|
||
METHOD_TYPE.
|
||
|
||
PR c++/56177
|
||
* decl.c (start_preparsed_function): Update restype if we change
|
||
decl1.
|
||
|
||
PR c++/56208
|
||
* pt.c (fn_type_unification): Discard any access checks from
|
||
substituting explicit args.
|
||
|
||
2013-01-31 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/56162
|
||
PR c++/56104
|
||
* typeck.c (get_member_function_from_ptrfunc): Fix
|
||
ptrmemfunc_vbit_in_delta case.
|
||
|
||
2013-01-29 Jason Merrill <jason@redhat.com>
|
||
|
||
PR libstdc++/54314
|
||
* class.c (build_ctor_vtbl_group): Give construction vtables
|
||
hidden visibility.
|
||
|
||
2013-01-25 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/56095
|
||
* pt.c (convert_nontype_argument_function): Handle invalid input.
|
||
(convert_nontype_argument): Likewise.
|
||
|
||
PR c++/56104
|
||
* typeck.c (get_member_function_from_ptrfunc): Optimize if the
|
||
dynamic type has no virtual functions.
|
||
|
||
2013-01-22 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/55944
|
||
* decl.c (check_initializer): Use TARGET_EXPR_DIRECT_INIT_P only
|
||
on TARGET_EXPR nodes.
|
||
|
||
2013-01-22 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/56071
|
||
* pt.c (maybe_instantiate_noexcept): Don't defer access checks.
|
||
|
||
2013-01-22 Dodji Seketeli <dodji@redhat.com>
|
||
|
||
PR c++/53609
|
||
* pt.c (argument_pack_element_is_expansion_p)
|
||
(make_argument_pack_select, use_pack_expansion_extra_args_p)
|
||
(gen_elem_of_pack_expansion_instantiation): New static functions.
|
||
(tsubst): When looking through an ARGUMENT_PACK_SELECT tree node,
|
||
look through the possibly resulting pack expansion as well.
|
||
(tsubst_pack_expansion): Use use_pack_expansion_extra_p to
|
||
generalize when to use the PACK_EXPANSION_EXTRA_ARGS mechanism.
|
||
Use gen_elem_of_pack_expansion_instantiation to build the
|
||
instantiation piece-wise. Don't use arg_from_parm_pack_p anymore,
|
||
as gen_elem_of_pack_expansion_instantiation and the change in
|
||
tsubst above generalize this particular case.
|
||
(arg_from_parm_pack_p): Remove this for it's not used by
|
||
tsubst_pack_expansion anymore.
|
||
|
||
2013-01-21 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/56059
|
||
* tree.c (strip_typedefs_expr) [TREE_VEC]: Preserve non-default
|
||
template args count.
|
||
|
||
2013-01-18 Jason Merrill <jason@redhat.com>
|
||
|
||
PR target/54908
|
||
* decl2.c (get_local_tls_init_fn): New.
|
||
(get_tls_init_fn): Handle flag_extern_tls_init. Don't bother
|
||
with aliases for internal variables. Don't use weakrefs if
|
||
the variable needs destruction.
|
||
(generate_tls_wrapper): Mark the wrapper as const if no
|
||
initialization is needed.
|
||
(handle_tls_init): Don't require aliases.
|
||
|
||
2013-01-15 Dodji Seketeli <dodji@redhat.com>
|
||
|
||
PR c++/55663
|
||
* pt.c (coerce_innermost_template_parms): New static function.
|
||
(instantiate_alias_template): Use it here.
|
||
|
||
2013-01-09 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/55878
|
||
* rtti.c (build_typeid, get_typeid): Add complain parm.
|
||
(get_tinfo_decl_dynamic): Likewise.
|
||
* cp-tree.h, parser.c, pt.c: Adjust.
|
||
|
||
PR c++/55893
|
||
* decl.c (cp_finish_decl): Clear TREE_READONLY if the variable
|
||
needs destruction.
|
||
|
||
2013-01-09 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c/48418
|
||
* typeck.c (cp_build_binary_op): For LSHIFT_EXPR and RSHIFT_EXPR,
|
||
call maybe_constant_value for the negative or too big shift
|
||
count warnings.
|
||
|
||
2013-01-09 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/55801
|
||
* decl2.c (var_needs_tls_wrapper): Return false when error_operand_p
|
||
of the argument is true.
|
||
|
||
2013-01-08 Joel Brobecker <brobecker@adacore.com>
|
||
|
||
* parser.c (cp_parser_initializer_list): Move declaration
|
||
of variable non_const to start of lexical block.
|
||
|
||
2013-01-07 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/55753
|
||
* tree.c (build_aggr_init_expr): Do nothing in a template.
|
||
* pt.c (tsubst_copy_and_build) [CALL_EXPR]: Strip an ADDR_EXPR off
|
||
a FUNCTION_DECL before tsubsting.
|
||
|
||
2013-01-04 Dodji Seketeli <dodji@redhat.com>
|
||
|
||
PR c++/52343
|
||
* pt.c (check_instantiated_arg): Allow type template arguments.
|
||
|
||
2013-01-04 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/55877
|
||
* decl.c (reset_type_linkage, bt_reset_linkage): New.
|
||
(grokdeclarator): Use reset_type_linkage.
|
||
* name-lookup.c (binding_table_foreach): Handle null table.
|
||
* tree.c (decl_anon_ns_mem_p): Check TYPE_MAIN_DECL, not TYPE_NAME.
|
||
|
||
2013-01-04 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/54526 (again)
|
||
* parser.c (cp_parser_template_id): Revert core of previous change
|
||
(keep adjusted inform message).
|
||
|
||
2013-01-03 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/55419
|
||
PR c++/55753
|
||
* pt.c (tsubst_copy_and_build) [TARGET_EXPR]: Don't touch
|
||
TREE_CONSTANT.
|
||
|
||
PR c++/55842
|
||
* semantics.c (trait_expr_value): Call maybe_instantiate_noexcept.
|
||
|
||
PR c++/55856
|
||
* semantics.c (build_data_member_initialization): Handle DECL_EXPR.
|
||
|
||
PR c++/53650
|
||
* call.c (type_has_extended_temps): New.
|
||
* cp-tree.h: Declare it.
|
||
* decl.c (check_initializer): Use build_aggr_init for arrays
|
||
if it is false.
|
||
* init.c (build_vec_init): Avoid mixed signed/unsigned arithmetic.
|
||
|
||
2013-01-02 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/54325
|
||
* call.c (build_new_method_call_1): Don't use build_value_init for
|
||
user-provided default constructors.
|
||
|
||
* decl.c (check_default_argument): Use LOOKUP_IMPLICIT.
|
||
|
||
PR c++/55032
|
||
PR c++/55245
|
||
* tree.c (build_cplus_array_type): Copy layout information
|
||
to main variant if necessary.
|
||
|
||
Copyright (C) 2013 Free Software Foundation, Inc.
|
||
|
||
Copying and distribution of this file, with or without modification,
|
||
are permitted in any medium without royalty provided the copyright
|
||
notice and this notice are preserved.
|