1 2014-02-25 Jason Merrill <jason@redhat.com>
5 * pt.c (get_underlying_template): Fix equivalence calculation.
7 2014-02-25 Adam Butcher <adam@jessamine.co.uk>
10 * parser.c (function_being_declared_is_template_p): Return false when
11 processing a template parameter list.
12 (cp_parser_parameter_declaration_clause): Don't set
13 auto_is_implicit_function_template_parm_p when processing a
14 template parameter list.
16 * parser.c (synthesize_implicit_template_parm): Inject new template
17 argument list appropriately when a generic member function
18 of a class template is declared out-of-line.
21 * parser.c (cp_parser_direct_declarator): Don't save and
22 restore num_template_parameter_lists around call to
23 cp_parser_parameter_declaration_list.
24 (function_being_declared_is_template_p): New predicate.
25 (cp_parser_parameter_declaration_list): Use
26 function_being_declared_is_template_p as predicate for
27 inspecting current function template parameter list length
28 rather than num_template_parameter_lists.
30 2014-02-24 Jason Merrill <jason@redhat.com>
33 * pt.c (tsubst_omp_for_iterator): Don't let substitution of the
34 DECL_EXPR initialize a non-class iterator.
37 * parser.c (cp_parser_template_type_arg): Check for invalid 'auto'.
39 2014-02-21 Jason Merrill <jason@redhat.com>
42 * parser.c (cp_parser_type_name): Always check dependency.
43 (cp_parser_type_specifier_seq): Call
44 cp_parser_parse_and_diagnose_invalid_type_name.
47 * semantics.c (expand_or_defer_fn_1): Check DECL_DEFAULTED_FN.
50 * parser.c (cp_parser_default_argument): Clear
51 current_class_ptr/current_class_ref like tsubst_default_argument.
54 * lambda.c (maybe_resolve_dummy): Check lambda_function rather
55 than current_binding_level.
58 * typeck2.c (massage_init_elt): Call fold_non_dependent_expr_sfinae.
61 * parser.c (cp_parser_enum_specifier): Call
62 check_for_bare_parameter_packs.
65 * pt.c (tsubst_decl) [TYPE_DECL]: Don't try to instantiate an
69 * pt.c (lookup_template_class_1): Update DECL_TEMPLATE_INSTANTIATIONS
70 of the partial instantiation, not the most general template.
71 (maybe_process_partial_specialization): Reassign everything on
75 * pt.c (register_specialization): Copy DECL_DELETED_FN to clones.
76 (check_explicit_specialization): Don't clone.
79 * pt.c (coerce_template_parms): Bail if argument packing fails.
82 * decl.c (cp_complete_array_type, maybe_deduce_size_from_array_init):
83 Don't get confused by a CONSTRUCTOR that already has a type.
86 * call.c (build_array_conv): Don't crash on VLA.
89 * mangle.c (mangle_decl): Don't make an alias for a TYPE_DECL.
92 * lambda.c (maybe_resolve_dummy): Don't try to capture this
93 in declaration context.
97 * pt.c (unify): Only unify if deducible. Handle 0-length list.
100 * parser.c (cp_parser_direct_declarator): Don't wrap a
101 type-dependent expression in a NOP_EXPR.
104 * lambda.c (is_normal_capture_proxy): Handle VLA capture.
109 * parser.c (cp_parser_template_argument): Restore dereference.
110 * pt.c (template_parm_to_arg): Dereference non-pack expansions too.
111 (process_partial_specialization): Handle deref.
114 2014-02-21 Adam Butcher <adam@jessamine.co.uk>
118 * parser.c (cp_parser_parameter_declaration_list): Correctly reset
119 implicit_template_scope upon leaving an out-of-line generic member
122 2014-02-20 Kai Tietz <ktietz@redhat.com>
125 * parser.c (cp_parser_functional_cast): Treat NULL_TREE
126 valued type argument as error_mark_node.
129 * semantics.c (finish_fname): Handle error_mark_node.
131 2014-02-19 Jason Merrill <jason@redhat.com>
134 * pt.c (maybe_instantiate_noexcept): Don't instantiate exception
135 spec from template context.
137 2014-02-19 Jakub Jelinek <jakub@redhat.com>
140 * cp-objcp-common.c (cp_function_decl_explicit_p): Remove
141 FUNCTION_FIRST_USER_PARMTYPE (decl) != void_list_node check.
144 * pt.c (tsubst_expr): Handle ANNOTATE_EXPR.
146 2014-02-18 Paolo Carlini <paolo.carlini@oracle.com>
149 * semantics.c (ensure_literal_type_for_constexpr_object): Use
152 2014-02-18 Paolo Carlini <paolo.carlini@oracle.com>
155 * semantics.c (cxx_eval_constant_expression, [COMPONENT_REF]):
156 During error recovery allow_non_constant may be false.
158 2014-02-18 Adam Butcher <adam@jessamine.co.uk>
161 * parser.c (cp_parser_lambda_declarator_opt): Pop template parameter
162 scope whenever a template parameter list has been started, independent
163 of whether the function call operator was well-formed or not.
166 * parser.c (cp_parser_member_declaration): Pop fully implicit template
167 scope for generic friend declarations as well as for non-friends.
169 2014-02-12 Paolo Carlini <paolo.carlini@oracle.com>
172 * method.c (implicitly_declare_fn): A constructor of a class with
173 virtual base classes isn't constexpr (7.1.5p4).
175 2014-02-05 Jan Hubicka <hubicka@ucw.cz
177 * parser.c (synthesize_implicit_template_parm): Use grow_tree_vec.
179 2014-02-05 Jakub Jelinek <jakub@redhat.com>
182 * parser.c (cp_parser_omp_declare_reduction): Save and free
185 2014-02-03 Marc Glisse <marc.glisse@inria.fr>
189 * tree.c (handle_init_priority_attribute): Call default_conversion on
190 the attribute argument.
192 2014-02-03 Paolo Carlini <paolo.carlini@oracle.com>
195 * method.c (synthesized_method_walk): If vbases is non-null but
196 is_empty is true, likewise don't worry about the virtual bases.
198 2014-02-01 Paolo Carlini <paolo.carlini@oracle.com>
201 * typeck2.c (process_init_constructor_record): Just skip unnamed
204 2014-01-31 Jason Merrill <jason@redhat.com>
207 * pt.c (mark_decl_instantiated): Call mark_needed.
210 * decl2.c (handle_tls_init): Handle null init fn.
213 * decl2.c (get_tls_init_fn): Copy DECL_EXTERNAL from the variable.
215 2014-01-31 Paolo Carlini <paolo.carlini@oracle.com>
218 * class.c (build_vfield_ref): Early return error_mark_node if
219 TYPE_VFIELD (type) is null.
220 (build_base_path): Check return value of build_vfield_ref.
222 2014-01-31 Jason Merrill <jason@redhat.com>
225 * call.c (convert_like_real) [ck_aggr]: Set TARGET_EXPR_LIST_INIT_P.
226 [ck_list]: Check for error_mark_node.
227 (build_aggr_conv): Set LOOKUP_NO_NARROWING and check_narrowing.
230 * pt.c (fn_type_unification): Don't do DEDUCE_EXACT check
231 during partial ordering.
233 2014-01-31 Marek Polacek <polacek@redhat.com>
236 * typeck.c (build_function_call_vec): Add dummy arg_loc parameter.
238 2014-01-30 Jason Merrill <jason@redhat.com>
241 * cp-tree.h (struct saved_scope): Add x_local_specializations.
242 (local_specializations): New macro.
243 * pt.c (local_specializations): Remove variable.
245 2014-01-30 Richard Sandiford <rdsandiford@googlemail.com>
248 * parser.c (make_string_pack): Use double_int::from_buffer.
250 2014-01-30 Marek Polacek <polacek@redhat.com>
253 * typeck.c (build_ptrmemfunc1): Call convert_and_check with
255 * cvt.c (cp_convert_and_check): Call warnings_for_convert_and_check
257 * call.c (build_conditional_expr_1): Call unsafe_conversion_p with
260 2014-01-30 Paolo Carlini <paolo.carlini@oracle.com>
263 * typeck.c (lookup_destructor): Check dtor_type for error_mark_node.
265 2014-01-30 Paolo Carlini <paolo.carlini@oracle.com>
268 * pt.c (lookup_template_class_1): Check start_enum return value
271 2014-01-30 Paolo Carlini <paolo.carlini@oracle.com>
273 * decl.c (duplicate_decls, typename_hash, typename_compare):
275 * error.c (dump_type): Likewise.
276 * mangle.c (dump_substitution_candidates): Likewise.
278 2014-01-30 Jason Merrill <jason@redhat.com>
281 * decl2.c (attributes_naming_typedef_ok): New.
282 * cp-tree.h: Declare it.
283 * decl.c (grokdeclarator): Check it.
284 * tree.c (no_linkage_check): Handle VECTOR_TYPE.
286 2014-01-29 Jason Merrill <jason@redhat.com>
289 * call.c (add_builtin_candidate): Catch dependent types.
292 * pt.c (expand_template_argument_pack): Correct
293 non_default_args_count calculation.
296 * pt.c (unify_pack_expansion): Call expand_template_argument_pack.
299 * friend.c (do_friend): Pass the TEMPLATE_DECL to add_friend if we
300 have a friend template in a class template.
301 * pt.c (tsubst_friend_function): Look through it.
302 (push_template_decl_real): A friend member template is
305 2014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
308 * decl.c (get_dso_handle_node): Don't crash if dso_handle_node
311 2014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
314 * pt.c (instantiate_template_1): Check for error_mark_node the second
317 2014-01-29 Jason Merrill <jason@redhat.com>
320 * optimize.c (maybe_thunk_body): Build a RETURN_EXPR for
321 cdtor_returns_this case.
324 * decl.c (cxx_maybe_build_cleanup): Call mark_used.
326 2014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
329 * semantics.c (finish_omp_reduction_clause): Check type for
332 2014-01-28 Jason Merrill <jason@redhat.com>
335 * pt.c (tsubst_decl) [VAR_DECL]: Allow in unevaluated context.
336 (tsubst_copy): Use it if lookup fails.
339 * pt.c (tsubst_function_type): Make sure we keep the same function
343 * semantics.c (build_anon_member_initialization): Stop walking
344 when we run out of COMPONENT_REFs.
347 * decl.c (lookup_and_check_tag): Ignore template parameters if
349 * pt.c (check_template_shadow): Don't complain about the injected
352 * decl.c (duplicate_decls): Tweak.
355 * mangle.c (write_unqualified_name): Handle operator auto.
357 2014-01-27 Jason Merrill <jason@redhat.com>
361 * call.c (reference_binding): Pass LOOKUP_NO_TEMP_BIND for
362 list-initialization. A conversion to rvalue ref that involves
363 an lvalue-rvalue conversion is bad.
364 (convert_like_real): Give helpful error message.
367 * decl.c (duplicate_decls): Always use oldtype for TYPE_DECL.
370 * pt.c (tsubst_copy_and_build) [TRAIT_EXPR]: Use tsubst for
374 * pt.c (template_parm_to_arg): Call convert_from_reference.
375 (tsubst_template_arg): Don't strip reference refs.
378 * call.c (build_aggr_conv): Reject value-initialization of reference.
382 * call.c (convert_like_real): Give helpful error about excess braces
383 for ck_rvalue of scalar type.
386 * call.c (reference_binding): Only elide braces if the single
387 element is reference-related.
390 * typeck.c (cp_build_modify_expr): Make the RHS an rvalue before
394 * typeck.c (cp_truthvalue_conversion): Use explicit comparison for
398 * decl.c (compute_array_index_type): Don't call
399 maybe_constant_value for a non-integral expression.
401 2014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com>
403 * call.c (magic_varargs_p): Replaced flag_enable_cilkplus with
405 * cp-gimplify.c (cp_genericize): Likewise.
406 * decl.c (grokfndecl): Likewise.
407 * parser.c (cp_parser_postfix_expression): Likewise.
408 (cp_parser_postfix_open_square_expression): Likewise.
409 (cp_parser_direct_declarator): Likewise.
410 (is_cilkplus_vector_p): Likewise.
411 (cp_parser_omp_clause_name): Likewise.
412 (cp_parser_omp_all_clauses): Likewise.
413 * pt.c (apply_late_template_attributes): Likewise.
414 * typeck.c (cp_build_array_ref): Likewise.
415 (cp_build_compound_expr): Likewise.
416 (check_return_expr): Likewise.
418 2014-01-24 Jason Merrill <jason@redhat.com>
421 * decl.c (grokdeclarator): Turn pedwarn about auto return type in
426 * typeck2.c (process_init_constructor_array): Don't create
429 2014-01-24 Jakub Jelinek <jakub@redhat.com>
431 * typeck2.c (split_nonconstant_init_1): Fix num_split_elts
432 handling for RANGE_ARRAY case.
434 2014-01-24 Paolo Carlini <paolo.carlini@oracle.com>
437 * name-lookup.c (push_using_directive): Use timevar_cond_start.
439 2014-01-23 Marek Polacek <polacek@redhat.com>
442 * typeck.c (cp_build_binary_op): Pass location to shorten_compare.
444 2014-01-23 Marek Polacek <polacek@redhat.com>
447 * typeck.c (pointer_diff): Give an error on arithmetic on pointer to
450 2014-01-23 Jason Merrill <jason@redhat.com>
453 * cp-tree.h (struct language_function): Add infinite_loop and
455 (current_function_infinite_loop): New.
456 * semantics.c (begin_maybe_infinite_loop, end_maybe_infinite_loop)
457 (break_maybe_infinite_loop): New.
458 (finish_while_stmt_cond, finish_while_stmt, begin_do_stmt)
459 (finish_do_stmt, finish_for_cond, finish_for_stmt)
460 (begin_range_for_stmt): Use them.
461 * decl.c (finish_function): Don't warn about missing return
462 if current_function_infinite_loop.
463 * pt.c (instantiate_decl): Copy current_function_infinite_loop.
464 * parser.c (cp_parser_jump_statement): Call break_maybe_infinite_loop.
466 * call.c (build_op_delete_call): Use make_tree_vector and
469 2014-01-23 Paolo Carlini <paolo.carlini@oracle.com>
472 * parser.c (cp_parser_enum_specifier): Handle TYPENAME_TYPE as
473 nested_name_specifier.
475 2014-01-23 Balaji V. Iyer <balaji.v.iyer@intel.com>
477 * parser.c (cp_parser_direct_declarator): When Cilk Plus is enabled
478 see if there is an attribute after function decl. If so, then
480 (cp_parser_late_return_type_opt): Handle parsing of Cilk Plus SIMD
481 enabled function late parsing.
482 (cp_parser_gnu_attribute_list): Parse all the tokens for the vector
483 attribute for a SIMD-enabled function.
484 (cp_parser_omp_all_clauses): Skip parsing to the end of pragma when
485 the function is used by SIMD-enabled function (indicated by NULL
486 pragma token). Added 3 new clauses: PRAGMA_CILK_CLAUSE_MASK,
487 PRAGMA_CILK_CLAUSE_NOMASK and PRAGMA_CILK_CLAUSE_VECTORLENGTH
488 (cp_parser_cilk_simd_vectorlength): Modified this function to handle
489 vectorlength clause in SIMD-enabled function and #pragma SIMD's
490 vectorlength clause. Added a new bool parameter to differentiate
492 (cp_parser_cilk_simd_fn_vector_attrs): New function.
493 (is_cilkplus_vector_p): Likewise.
494 (cp_parser_late_parsing_elem_fn_info): Likewise.
495 (cp_parser_omp_clause_name): Added a check for "mask", "nomask"
496 and "vectorlength" clauses when Cilk Plus is enabled.
497 (cp_parser_omp_clause_linear): Added a new parameter of type bool
498 and emit a sorry message when step size is a parameter.
499 * parser.h (cp_parser::cilk_simd_fn_info): New field.
500 * decl.c (grokfndecl): Added flag_enable_cilkplus along with
502 * pt.c (apply_late_template_attributes): Likewise.
504 2014-01-23 Jakub Jelinek <jakub@redhat.com>
507 * semantics.c (finish_omp_reduction_clause): Reject
508 BIT_AND_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR on COMPLEX_TYPEs.
510 2014-01-22 Ville Voutilainen <ville.voutilainen@gmail.com>
513 * parser.c (cp_parser_class_head): Push the class before parsing
514 the base-clause, pop after it.
516 2014-01-20 Eric Botcazou <ebotcazou@adacore.com>
518 * decl2.c (cpp_check): Revert prototype change.
520 2014-01-17 Paolo Carlini <paolo.carlini@oracle.com>
524 * init.c (build_value_init_noctor): Don't pass error_mark_node to
527 2014-01-17 Paolo Carlini <paolo.carlini@oracle.com>
530 * init.c (build_value_init_noctor): Assert !TYPE_HAS_COMPLEX_DFLT
531 only when errorcount == 0.
533 2014-01-17 Marek Polacek <polacek@redhat.com>
536 * cvt.c (ocp_convert): Don't segfault on non-existing
537 ENUM_UNDERLYING_TYPE.
539 2014-01-16 Jason Merrill <jason@redhat.com>
542 * tree.c (bot_manip): Update the location of builtin_LINE and
545 2014-01-14 Jason Merrill <jason@redhat.com>
548 * typeck2.c (massage_init_elt): New.
549 (process_init_constructor_record)
550 (process_init_constructor_union): Use it.
551 (process_init_constructor_array): Use it. Use RANGE_EXPR.
552 (split_nonconstant_init_1): Handle it.
553 * semantics.c (cxx_eval_vec_init_1): Use force_rvalue.
555 2014-01-09 Balaji V. Iyer <balaji.v.iyer@intel.com>
558 * parser.c (cp_parser_postfix_expression): Added a new if-statement
559 and replaced an existing if-statement with else-if statement.
560 Changed an existing error message wording to match the one from the C
563 2014-01-08 Jason Merrill <jason@redhat.com>
566 * class.c (abi_tag_data): Add tags field.
567 (check_abi_tags): Initialize it.
568 (find_abi_tags_r): Support collecting missing tags.
569 (mark_type_abi_tags): Don't look at template args.
570 (inherit_targ_abi_tags): New.
571 (check_bases_and_members): Use it.
572 * cp-tree.h (ABI_TAG_IMPLICIT): New.
573 * mangle.c (write_abi_tags): Check it.
575 2014-01-07 Jason Merrill <jason@redhat.com>
578 * pt.c (num_innermost_template_parms): New.
579 (get_underlying_template): Use it.
582 * mangle.c (write_guarded_var_name): Handle null DECL_NAME.
584 2014-01-07 Paolo Carlini <paolo.carlini@oracle.com>
586 * semantics.c (trait_expr_value, [CPTK_IS_BASE_OF]): Implement
587 the letter of 20.11.6 about Base and Derived naming the same
588 class type modulo cv-qualifiers.
590 2014-01-06 Adam Butcher <adam@jessamine.co.uk>
593 * lambda.c (maybe_add_lambda_conv_op): Handle marking conversion
594 function as unimplemented for generic lambdas with varargs.
597 * parser.c (cp_parser_template_parameter): Early out with
598 error_mark_node if parameter declaration was not parsed.
601 * parser.c (cp_parser_lambda_expression): Save/reset/restore
602 auto_is_implicit_function_template_parm_p around lambda body.
605 * parser.c (cp_parser_init_declarator): Undo fully implicit
606 template parameter list when declarator is not a function.
608 2014-01-03 Marc Glisse <marc.glisse@inria.fr>
611 * cvt.c (convert_to_void): Handle VEC_PERM_EXPR and VEC_COND_EXPR.
613 2014-01-03 Tobias Burnus <burnus@net-b.de>
616 * pt.c (tsubst_omp_for_iterator): Early return for error_mark_node.
618 2014-01-03 Paolo Carlini <paolo.carlini@oracle.com>
622 * parser.c (cp_parser_perform_range_for_lookup): Don't pass true
623 as include_std to perform_koenig_lookup.
624 (cp_parser_postfix_expression): Adjust.
625 * pt.c (tsubst_copy_and_build): Likewise.
626 * semantics.c (perform_koenig_lookup): Remove bool parameter.
627 (omp_reduction_lookup): Adjust.
628 * name-lookup.c (lookup_arg_dependent_1): Remove bool parameter.
629 (lookup_arg_dependent): Likewise.
630 (lookup_function_nonclass): Adjust.
631 * name-lookup.h: Adjust declaration.
632 * cp-tree.h: Likewise.
634 2014-01-02 Marc Glisse <marc.glisse@inria.fr>
637 * parser.c (cp_parser_userdef_numeric_literal): Mention
638 -fext-numeric-literals in the message.
640 2014-01-02 Marc Glisse <marc.glisse@inria.fr>
643 * call.c (build_conditional_expr_1): Check the return value of
646 2014-01-02 Marc Glisse <marc.glisse@inria.fr>
648 * call.c (convert_like_real): Check complain.
650 2014-01-02 Marc Glisse <marc.glisse@inria.fr>
653 * typeck.c (build_x_vec_perm_expr): Handle non-dependent arguments
656 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
658 Update copyright years
660 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
662 * cp-array-notation.c, cp-cilkplus.c, vtable-class-hierarchy.c: Use
663 the standard form for the copyright notice.
665 Copyright (C) 2014 Free Software Foundation, Inc.
667 Copying and distribution of this file, with or without modification,
668 are permitted in any medium without royalty provided the copyright
669 notice and this notice are preserved.