/cp
[official-gcc.git] / gcc / cp / ChangeLog
blobd90b9881c313959392b28412f9f8e41dc5c32ba6
1 2014-03-13  Paolo Carlini  <paolo.carlini@oracle.com>
3         PR c++/60383
4         * pt.c (maybe_process_partial_specialization): Check return value
5         of check_specialization_namespace.
7 2014-03-13  Paolo Carlini  <paolo.carlini@oracle.com>
9         PR c++/60254
10         * semantics.c (finish_static_assert): Call cxx_constant_value only
11         if require_potential_rvalue_constant_expression returns true.
13 2014-03-11  Paolo Carlini  <paolo.carlini@oracle.com>
15         PR c++/60389
16         * method.c (get_inherited_ctor): New.
17         * cp-tree.h (get_inherited_ctor): Declare it.
18         * semantics.c (is_valid_constexpr_fn): Use it.
20 2014-03-10  Jason Merrill  <jason@redhat.com>
22         PR c++/60367
23         * call.c (convert_default_arg): Remove special handling for
24         CONSTRUCTOR.
26         PR c++/53492
27         * parser.c (cp_parser_class_head): Also check PRIMARY_TEMPLATE_P
28         when deciding whether to call push_template_decl for a member class.
29         * pt.c (push_template_decl_real): Return after wrong levels error.
31 2014-03-08  Adam Butcher  <adam@jessamine.co.uk>
33         PR c++/60033
34         * pt.c (tsubst_copy): When retrieving a capture pack from a generic
35         lambda, remove the lambda's own template argument list prior to fetching
36         the specialization.
38         PR c++/60393
39         * parser.c (cp_parser_parameter_declaration_clause): Move generic
40         function template unwinding on error into a more general location, ...
41         (cp_parser_skip_to_end_of_statement): ... here.
43 2014-03-07  Jason Merrill  <jason@redhat.com>
45         * Make-lang.in (check_g++_parallelize): Split dg.exp.
47         * parser.c (cp_parser_type_id_1): Only allow 'auto' in C++1y if
48         we're in a trailing return type.
50         * typeck.c (comp_template_parms_position): 'auto' and
51         'decltype(auto)' are different from real template parms.
53         * parser.c (cp_parser_using_declaration): Consume the semicolon
54         after bare parameter pack error.
56         * cp-tree.h (REF_PARENTHESIZED_P): New.
57         * semantics.c (force_paren_expr): Set it.
58         * pt.c (do_auto_deduction): Check it.
59         (tsubst) [COMPONENT_REF]: Copy it.
60         * typeck.c (maybe_warn_about_useless_cast): Don't strip dereference.
62         * decl.c (create_array_type_for_decl): Only warn about invalid
63         C++1y VLA if flag_iso or warn_vla>0.
64         (grokdeclarator): Likewise.
65         * pt.c (tsubst): Likewise.
66         * semantics.c (finish_decltype_type): Likewise.
67         * typeck.c (cxx_sizeof_or_alignof_type): Likewise.
68         (cp_build_addr_expr_1): Likewise.
69         * init.c (build_new_1): Improve diagnostics.
71 2014-03-07  Paolo Carlini  <paolo.carlini@oracle.com>
73         PR c++/58609
74         * decl.c (check_initializer): Return NULL_TREE after error;
75         consistently use inform.
77 2014-03-07  Paolo Carlini  <paolo.carlini@oracle.com>
79         * decl.c (check_initializer): Remove dead code.
81 2014-03-06  Marek Polacek  <polacek@redhat.com>
83         PR c/60197
84         * typeck.c (check_return_expr): Call contains_cilk_spawn_stmt instead
85         of checking tree code.
87 2014-03-06  Paolo Carlini  <paolo.carlini@oracle.com>
89         * parser.c (cp_lexer_set_source_position): New.
90         (cp_parser_mem_initializer): Use it.
91         (cp_parser_postfix_open_square_expression): Likewise.
92         (cp_parser_parenthesized_expression_list): Likewise.
93         (cp_parser_new_initializer): Likewise.
94         (cp_parser_jump_statement): Likewise.
95         (cp_parser_initializer): Likewise.
96         (cp_parser_functional_cast): Likewise.
98 2014-03-05  Jason Merrill  <jason@redhat.com>
100         PR c++/60409
101         * semantics.c (force_paren_expr): Only add a PAREN_EXPR to a
102         dependent expression.
104         PR c++/60361
105         * parser.c (cp_parser_template_id): Don't set up a CPP_TEMPLATE_ID
106         if re-parsing might succeed.
107         * semantics.c (finish_id_expression): Use of a parameter outside
108         the function body is a parse error.
110         * parser.c (cp_parser_mem_initializer): Set input_location
111         properly for init-list warning.
112         (cp_parser_postfix_open_square_expression): Likewise.
113         (cp_parser_parenthesized_expression_list): Likewise.
114         (cp_parser_new_initializer): Likewise.
115         (cp_parser_jump_statement): Likewise.
116         (cp_parser_initializer): Likewise.
117         (cp_parser_functional_cast): Likewise.
119 2014-03-04  Jason Merrill  <jason@redhat.com>
121         PR c++/60417
122         * typeck2.c (process_init_constructor_record): Set
123         CONSTRUCTOR_IS_DIRECT_INIT on {} for omitted initializers.
125         PR c++/60415
126         PR c++/54359
127         * parser.c (cp_parser_direct_declarator): Set declarator to
128         cp_error_declarator on invalid qualified-id.
130 2014-03-04  Paolo Carlini  <paolo.carlini@oracle.com>
132         PR c++/60376
133         * parser.c (cp_parser_using_declaration): Early return when
134         cp_parser_nested_name_specifier errors out.
136 2014-03-01  Adam Butcher  <adam@jessamine.co.uk>
138         PR c++/60377
139         * parser.c (cp_parser_parameter_declaration_clause): Unwind generic
140         function scope on parse error in function parameter list.
142 2014-03-01  Paolo Carlini  <paolo.carlini@oracle.com>
144         * method.c (implicitly_declare_fn): Remove redundant
145         DECL_TEMPLATE_RESULT and STRIP_TEMPLATE uses.
146         * semantics.c (is_instantiation_of_constexpr): Likewise.
147         * error.c (dump_function_decl): Likewise.
149 2014-03-01  Jason Merrill  <jason@redhat.com>
151         PR c++/60379
152         * semantics.c (begin_maybe_infinite_loop): Use
153         fold_non_dependent_expr_sfinae.
155 2014-02-28  Jason Merrill  <jason@redhat.com>
157         PR c++/58845
158         * typeck.c (cp_build_binary_op): Sorry on vector&&vector.
160 2014-02-28  Paolo Carlini  <paolo.carlini@oracle.com>
162         PR c++/58610
163         * cp-tree.h (DECL_DELETED_FN): Use LANG_DECL_FN_CHECK.
164         * call.c (print_z_candidate): Remove STRIP_TEMPLATE use.
165         * lambda.c (maybe_add_lambda_conv_op): Likewise.
167 2014-02-27  Paolo Carlini  <paolo.carlini@oracle.com>
169         PR c++/60253
170         * call.c (convert_arg_to_ellipsis): Return error_mark_node after
171         error_at.
173 2014-02-27  Jason Merrill  <jason@redhat.com>
175         PR c++/60353
176         PR c++/55877
177         * decl2.c (tentative_decl_linkage): Don't mess with functions that
178         are not yet defined.
180 2014-02-26  Jason Merrill  <jason@redhat.com>
182         PR c++/60347
183         PR lto/53808
184         * class.c (clone_function_decl): Don't note_vague_linkage_fn.
185         * init.c (build_vtbl_address): Do it here.
187         PR c++/59231
188         PR c++/11586
189         PR c++/14710
190         PR c++/57132
191         * pt.c (struct warning_sentinel): New.
192         (tsubst_copy_and_build): Use it instead of
193         c_inhibit_evaluation_warnings.
194         * typeck.c (maybe_warn_about_useless_cast): Remove
195         c_inhibit_evaluation_warnings check.
197         PR c++/54440
198         * pt.c (get_template_parm_index): New.
199         (fixed_parameter_pack_p_1, fixed_parameter_pack_p): New.
200         (process_template_parm): Allow bare packs in template template
201         parm template parms.
202         (coerce_template_parameter_pack): Handle fixed template template
203         parm packs and fixed packs not at the end of the parm list.
204         (coerce_template_parms): Handle template parm packs not at the end
205         of the parm list.
206         (gen_elem_of_pack_expansion_instantiation): Handle a decl expansion.
208         PR c++/60182
209         * pt.c (unify): Ignore alias templates when deducing a template
210         template parameter.
212         PR c++/60345
213         Revert:
214         DR 1571
215         * call.c (reference_binding): Recurse on user-defined conversion.
216         (convert_like_real) [ck_ref_bind]: Explain cv-qual mismatch.
218 2014-02-25  Jason Merrill  <jason@redhat.com>
220         DR 1571
221         * call.c (reference_binding): Recurse on user-defined conversion.
222         (convert_like_real) [ck_ref_bind]: Explain cv-qual mismatch.
224         * call.c (print_conversion_rejection): Handle n_arg of -2.
225         (build_user_type_conversion_1): Pass it.
227         PR c++/55877
228         * decl2.c (no_linkage_error): Handle C++98 semantics.
229         (reset_type_linkage): Move from decl.c.
230         (reset_type_linkage_1, reset_type_linkage_2, bt_reset_linkage_1)
231         (bt_reset_linkage_2, reset_decl_linkage): New.
232         (tentative_decl_linkage): Factor out of expand_or_defer_fn_1.
233         (cp_write_global_declarations): Move condition into no_linkage_error.
234         * decl.c (grokfndecl, grokvardecl): Use no_linkage_error.
235         * semantics.c (expand_or_defer_fn_1): Factor out
236         tentative_decl_linkage.
237         * cp-tree.h: Adjust.
239         * decl2.c (finish_static_data_member_decl): Diagnose static data
240         member in unnamed class.
241         * class.c (finish_struct_anon_r): Avoid redundant diagnostic.
243         PR lto/53808
244         * class.c (clone_function_decl): Call note_vague_linkage_fn for
245         defaulted virtual dtor.
247         DR 1286
248         PR c++/60328
249         * pt.c (get_underlying_template): Fix equivalence calculation.
251 2014-02-25  Adam Butcher  <adam@jessamine.co.uk>
253         PR c++/60311
254         * parser.c (function_being_declared_is_template_p): Return false when
255         processing a template parameter list.
256         (cp_parser_parameter_declaration_clause): Don't set
257         auto_is_implicit_function_template_parm_p when processing a
258         template parameter list.
260         * parser.c (synthesize_implicit_template_parm): Inject new template
261         argument list appropriately when a generic member function
262         of a class template is declared out-of-line.
264         PR c++/60065
265         * parser.c (cp_parser_direct_declarator): Don't save and
266         restore num_template_parameter_lists around call to
267         cp_parser_parameter_declaration_list.
268         (function_being_declared_is_template_p): New predicate.
269         (cp_parser_parameter_declaration_list): Use
270         function_being_declared_is_template_p as predicate for
271         inspecting current function template parameter list length
272         rather than num_template_parameter_lists.
274 2014-02-24  Jason Merrill  <jason@redhat.com>
276         PR c++/60146
277         * pt.c (tsubst_omp_for_iterator): Don't let substitution of the
278         DECL_EXPR initialize a non-class iterator.
280         PR c++/60312
281         * parser.c (cp_parser_template_type_arg): Check for invalid 'auto'.
283 2014-02-21  Jason Merrill  <jason@redhat.com>
285         PR c++/58170
286         * parser.c (cp_parser_type_name): Always check dependency.
287         (cp_parser_type_specifier_seq): Call
288         cp_parser_parse_and_diagnose_invalid_type_name.
290         PR c++/60108
291         * semantics.c (expand_or_defer_fn_1): Check DECL_DEFAULTED_FN.
293         PR c++/60185
294         * parser.c (cp_parser_default_argument): Clear
295         current_class_ptr/current_class_ref like tsubst_default_argument.
297         PR c++/60252
298         * lambda.c (maybe_resolve_dummy): Check lambda_function rather
299         than current_binding_level.
301         PR c++/60186
302         * typeck2.c (massage_init_elt): Call fold_non_dependent_expr_sfinae.
304         PR c++/60187
305         * parser.c (cp_parser_enum_specifier): Call
306         check_for_bare_parameter_packs.
308         PR c++/59347
309         * pt.c (tsubst_decl) [TYPE_DECL]: Don't try to instantiate an
310         erroneous typedef.
312         PR c++/60241
313         * pt.c (lookup_template_class_1): Update DECL_TEMPLATE_INSTANTIATIONS
314         of the partial instantiation, not the most general template.
315         (maybe_process_partial_specialization): Reassign everything on
316         that list.
318         PR c++/60216
319         * pt.c (register_specialization): Copy DECL_DELETED_FN to clones.
320         (check_explicit_specialization): Don't clone.
322         PR c++/60219
323         * pt.c (coerce_template_parms): Bail if argument packing fails.
325         PR c++/60224
326         * decl.c (cp_complete_array_type, maybe_deduce_size_from_array_init):
327         Don't get confused by a CONSTRUCTOR that already has a type.
329         PR c++/60227
330         * call.c (build_array_conv): Don't crash on VLA.
332         PR c++/60248
333         * mangle.c (mangle_decl): Don't make an alias for a TYPE_DECL.
335         PR c++/60252
336         * lambda.c (maybe_resolve_dummy): Don't try to capture this
337         in declaration context.
339         DR 1591
340         PR c++/60051
341         * pt.c (unify): Only unify if deducible.  Handle 0-length list.
343         PR c++/60250
344         * parser.c (cp_parser_direct_declarator): Don't wrap a
345         type-dependent expression in a NOP_EXPR.
347         PR c++/60251
348         * lambda.c (is_normal_capture_proxy): Handle VLA capture.
350         PR c++/60167
351         PR c++/60222
352         PR c++/58606
353         * parser.c (cp_parser_template_argument): Restore dereference.
354         * pt.c (template_parm_to_arg): Dereference non-pack expansions too.
355         (process_partial_specialization): Handle deref.
356         (unify): Likewise.
358 2014-02-21  Adam Butcher  <adam@jessamine.co.uk>
360         PR c++/60052
361         PR c++/60053
362         * parser.c (cp_parser_parameter_declaration_list): Correctly reset
363         implicit_template_scope upon leaving an out-of-line generic member
364         function definition.
366 2014-02-20  Kai Tietz  <ktietz@redhat.com>
368         PR c++/58873
369         * parser.c (cp_parser_functional_cast): Treat NULL_TREE
370         valued type argument as error_mark_node.
372         PR c++/58835
373         * semantics.c (finish_fname): Handle error_mark_node.
375 2014-02-19  Jason Merrill  <jason@redhat.com>
377         PR c++/60046
378         * pt.c (maybe_instantiate_noexcept): Don't instantiate exception
379         spec from template context.
381 2014-02-19  Jakub Jelinek  <jakub@redhat.com>
383         PR debug/56563
384         * cp-objcp-common.c (cp_function_decl_explicit_p): Remove
385         FUNCTION_FIRST_USER_PARMTYPE (decl) != void_list_node check.
387         PR c++/60267
388         * pt.c (tsubst_expr): Handle ANNOTATE_EXPR.
390 2014-02-18  Paolo Carlini  <paolo.carlini@oracle.com>
392         PR c++/60225
393         * semantics.c (ensure_literal_type_for_constexpr_object): Use
394         strip_array_types.
396 2014-02-18  Paolo Carlini  <paolo.carlini@oracle.com>
398         PR c++/60215
399         * semantics.c (cxx_eval_constant_expression, [COMPONENT_REF]):
400         During error recovery allow_non_constant may be false.
402 2014-02-18  Adam Butcher  <adam@jessamine.co.uk>
404         PR c++/60190
405         * parser.c (cp_parser_lambda_declarator_opt): Pop template parameter
406         scope whenever a template parameter list has been started, independent
407         of whether the function call operator was well-formed or not.
409         PR c++/60064
410         * parser.c (cp_parser_member_declaration): Pop fully implicit template
411         scope for generic friend declarations as well as for non-friends.
413 2014-02-12  Paolo Carlini  <paolo.carlini@oracle.com>
415         PR c++/60047
416         * method.c (implicitly_declare_fn): A constructor of a class with
417         virtual base classes isn't constexpr (7.1.5p4).
419 2014-02-05  Jan Hubicka  <hubicka@ucw.cz
421         * parser.c (synthesize_implicit_template_parm): Use grow_tree_vec.
423 2014-02-05  Jakub Jelinek  <jakub@redhat.com>
425         PR c++/58703
426         * parser.c (cp_parser_omp_declare_reduction): Save and free
427         declarator_obstack.
429 2014-02-03  Marc Glisse  <marc.glisse@inria.fr>
431         PR c++/53017
432         PR c++/59211
433         * tree.c (handle_init_priority_attribute): Call default_conversion on
434         the attribute argument.
436 2014-02-03  Paolo Carlini  <paolo.carlini@oracle.com>
438         PR c++/58871
439         * method.c (synthesized_method_walk): If vbases is non-null but
440         is_empty is true, likewise don't worry about the virtual bases.
442 2014-02-01  Paolo Carlini  <paolo.carlini@oracle.com>
444         PR c++/51219
445         * typeck2.c (process_init_constructor_record): Just skip unnamed
446         bit-fields.
448 2014-01-31  Jason Merrill  <jason@redhat.com>
450         PR c++/59469
451         * pt.c (mark_decl_instantiated): Call mark_needed.
453         PR c++/58672
454         * decl2.c (handle_tls_init): Handle null init fn.
456         PR c++/55800
457         * decl2.c (get_tls_init_fn): Copy DECL_EXTERNAL from the variable.
459 2014-01-31  Paolo Carlini  <paolo.carlini@oracle.com>
461         PR c++/59082
462         * class.c (build_vfield_ref): Early return error_mark_node if
463         TYPE_VFIELD (type) is null.
464         (build_base_path): Check return value of build_vfield_ref.
466 2014-01-31  Jason Merrill  <jason@redhat.com>
468         PR c++/59646
469         * call.c (convert_like_real) [ck_aggr]: Set TARGET_EXPR_LIST_INIT_P.
470         [ck_list]: Check for error_mark_node.
471         (build_aggr_conv): Set LOOKUP_NO_NARROWING and check_narrowing.
473         PR c++/57043
474         * pt.c (fn_type_unification): Don't do DEDUCE_EXACT check
475         during partial ordering.
477 2014-01-31  Marek Polacek  <polacek@redhat.com>
479         PR c/59963
480         * typeck.c (build_function_call_vec): Add dummy arg_loc parameter.
482 2014-01-30  Jason Merrill  <jason@redhat.com>
484         PR c++/57899
485         * cp-tree.h (struct saved_scope): Add x_local_specializations.
486         (local_specializations): New macro.
487         * pt.c (local_specializations): Remove variable.
489 2014-01-30  Richard Sandiford  <rdsandiford@googlemail.com>
491         PR c++/58708
492         * parser.c (make_string_pack): Use double_int::from_buffer.
494 2014-01-30  Marek Polacek  <polacek@redhat.com>
496         PR c/59940
497         * typeck.c (build_ptrmemfunc1): Call convert_and_check with
498         input_location.
499         * cvt.c (cp_convert_and_check): Call warnings_for_convert_and_check
500         with input_location.
501         * call.c (build_conditional_expr_1): Call unsafe_conversion_p with
502         loc parameter.
504 2014-01-30  Paolo Carlini  <paolo.carlini@oracle.com>
506         PR c++/58843
507         * typeck.c (lookup_destructor): Check dtor_type for error_mark_node.
509 2014-01-30  Paolo Carlini  <paolo.carlini@oracle.com>
511         PR c++/58649
512         * pt.c (lookup_template_class_1): Check start_enum return value
513         for error_mark_node.
515 2014-01-30  Paolo Carlini  <paolo.carlini@oracle.com>
517         * decl.c (duplicate_decls, typename_hash, typename_compare):
518         Use TYPE_IDENTIFIER.
519         * error.c (dump_type): Likewise.
520         * mangle.c (dump_substitution_candidates): Likewise.
522 2014-01-30  Jason Merrill  <jason@redhat.com>
524         PR c++/59633
525         * decl2.c (attributes_naming_typedef_ok): New.
526         * cp-tree.h: Declare it.
527         * decl.c (grokdeclarator): Check it.
528         * tree.c (no_linkage_check): Handle VECTOR_TYPE.
530 2014-01-29  Jason Merrill  <jason@redhat.com>
532         PR c++/59707
533         * call.c (add_builtin_candidate): Catch dependent types.
535         PR c++/59989
536         * pt.c (expand_template_argument_pack): Correct
537         non_default_args_count calculation.
539         PR c++/58466
540         * pt.c (unify_pack_expansion): Call expand_template_argument_pack.
542         PR c++/59956
543         * friend.c (do_friend): Pass the TEMPLATE_DECL to add_friend if we
544         have a friend template in a class template.
545         * pt.c (tsubst_friend_function): Look through it.
546         (push_template_decl_real): A friend member template is
547         primary.
549 2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
551         PR c++/58846
552         * decl.c (get_dso_handle_node): Don't crash if dso_handle_node
553         == error_mark_node.
555 2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
557         PR c++/58674
558         * pt.c (instantiate_template_1): Check for error_mark_node the second
559         argument too.
561 2014-01-29  Jason Merrill  <jason@redhat.com>
563         PR c++/59916
564         * optimize.c (maybe_thunk_body): Build a RETURN_EXPR for
565         cdtor_returns_this case.
567         PR c++/59315
568         * decl.c (cxx_maybe_build_cleanup): Call mark_used.
570 2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
572         PR c++/58702
573         * semantics.c (finish_omp_reduction_clause): Check type for
574         error_mark_node.
576 2014-01-28  Jason Merrill  <jason@redhat.com>
578         PR c++/59791
579         * pt.c (tsubst_decl) [VAR_DECL]: Allow in unevaluated context.
580         (tsubst_copy): Use it if lookup fails.
582         PR c++/59818
583         * pt.c (tsubst_function_type): Make sure we keep the same function
584         quals.
586         PR c++/58701
587         * semantics.c (build_anon_member_initialization): Stop walking
588         when we run out of COMPONENT_REFs.
590         PR c++/58632
591         * decl.c (lookup_and_check_tag): Ignore template parameters if
592         scope == ts_current.
593         * pt.c (check_template_shadow): Don't complain about the injected
594         class name.
596         * decl.c (duplicate_decls): Tweak.
598         PR c++/53756
599         * mangle.c (write_unqualified_name): Handle operator auto.
601 2014-01-27  Jason Merrill  <jason@redhat.com>
603         PR c++/59823
604         Core DR 1138
605         * call.c (reference_binding): Pass LOOKUP_NO_TEMP_BIND for
606         list-initialization.  A conversion to rvalue ref that involves
607         an lvalue-rvalue conversion is bad.
608         (convert_like_real): Give helpful error message.
610         PR c++/54652
611         * decl.c (duplicate_decls): Always use oldtype for TYPE_DECL.
613         PR c++/58504
614         * pt.c (tsubst_copy_and_build) [TRAIT_EXPR]: Use tsubst for
615         types.
617         PR c++/58606
618         * pt.c (template_parm_to_arg): Call convert_from_reference.
619         (tsubst_template_arg): Don't strip reference refs.
621         PR c++/58639
622         * call.c (build_aggr_conv): Reject value-initialization of reference.
624         PR c++/58812
625         PR c++/58651
626         * call.c (convert_like_real): Give helpful error about excess braces
627         for ck_rvalue of scalar type.
629         Core DR 1288
630         * call.c (reference_binding): Only elide braces if the single
631         element is reference-related.
633         PR c++/58814
634         * typeck.c (cp_build_modify_expr): Make the RHS an rvalue before
635         stabilizing.
637         PR c++/58837
638         * typeck.c (cp_truthvalue_conversion): Use explicit comparison for
639         FUNCTION_DECL.
641         PR c++/59097
642         * decl.c (compute_array_index_type): Don't call
643         maybe_constant_value for a non-integral expression.
645 2014-01-24  Balaji V. Iyer  <balaji.v.iyer@intel.com>
647         * call.c (magic_varargs_p): Replaced flag_enable_cilkplus with
648         flag_cilkplus.
649         * cp-gimplify.c (cp_genericize): Likewise.
650         * decl.c (grokfndecl): Likewise.
651         * parser.c (cp_parser_postfix_expression): Likewise.
652         (cp_parser_postfix_open_square_expression): Likewise.
653         (cp_parser_direct_declarator): Likewise.
654         (is_cilkplus_vector_p): Likewise.
655         (cp_parser_omp_clause_name): Likewise.
656         (cp_parser_omp_all_clauses): Likewise.
657         * pt.c (apply_late_template_attributes): Likewise.
658         * typeck.c (cp_build_array_ref): Likewise.
659         (cp_build_compound_expr): Likewise.
660         (check_return_expr): Likewise.
662 2014-01-24  Jason Merrill  <jason@redhat.com>
664         PR c++/58550
665         * decl.c (grokdeclarator): Turn pedwarn about auto return type in
666         c++11 into error.
668         PR c++/59886
669         PR c++/59659
670         * typeck2.c (process_init_constructor_array): Don't create
671         RANGE_EXPR yet.
673 2014-01-24  Jakub Jelinek  <jakub@redhat.com>
675         * typeck2.c (split_nonconstant_init_1): Fix num_split_elts
676         handling for RANGE_ARRAY case.
678 2014-01-24  Paolo Carlini  <paolo.carlini@oracle.com>
680         PR c++/57524
681         * name-lookup.c (push_using_directive): Use timevar_cond_start.
683 2014-01-23  Marek Polacek  <polacek@redhat.com>
685         PR c/59846
686         * typeck.c (cp_build_binary_op): Pass location to shorten_compare.
688 2014-01-23  Marek Polacek  <polacek@redhat.com>
690         PR c/58346
691         * typeck.c (pointer_diff): Give an error on arithmetic on pointer to
692         an empty aggregate.
694 2014-01-23  Jason Merrill  <jason@redhat.com>
696         PR c++/55189
697         * cp-tree.h (struct language_function): Add infinite_loop and
698         infinite_loops.
699         (current_function_infinite_loop): New.
700         * semantics.c (begin_maybe_infinite_loop, end_maybe_infinite_loop)
701         (break_maybe_infinite_loop): New.
702         (finish_while_stmt_cond, finish_while_stmt, begin_do_stmt)
703         (finish_do_stmt, finish_for_cond, finish_for_stmt)
704         (begin_range_for_stmt): Use them.
705         * decl.c (finish_function): Don't warn about missing return
706         if current_function_infinite_loop.
707         * pt.c (instantiate_decl): Copy current_function_infinite_loop.
708         * parser.c (cp_parser_jump_statement): Call break_maybe_infinite_loop.
710         * call.c (build_op_delete_call): Use make_tree_vector and
711         release_tree_vector.
713 2014-01-23  Paolo Carlini  <paolo.carlini@oracle.com>
715         PR c++/58980
716         * parser.c (cp_parser_enum_specifier): Handle TYPENAME_TYPE as
717         nested_name_specifier.
719 2014-01-23  Balaji V. Iyer  <balaji.v.iyer@intel.com>
721         * parser.c (cp_parser_direct_declarator): When Cilk Plus is enabled
722         see if there is an attribute after function decl.  If so, then
723         parse them now.
724         (cp_parser_late_return_type_opt): Handle parsing of Cilk Plus SIMD
725         enabled function late parsing.
726         (cp_parser_gnu_attribute_list): Parse all the tokens for the vector
727         attribute for a SIMD-enabled function.
728         (cp_parser_omp_all_clauses): Skip parsing to the end of pragma when
729         the function is used by SIMD-enabled function (indicated by NULL
730         pragma token).   Added 3 new clauses: PRAGMA_CILK_CLAUSE_MASK,
731         PRAGMA_CILK_CLAUSE_NOMASK and PRAGMA_CILK_CLAUSE_VECTORLENGTH
732         (cp_parser_cilk_simd_vectorlength): Modified this function to handle
733         vectorlength clause in SIMD-enabled function and #pragma SIMD's
734         vectorlength clause.  Added a new bool parameter to differentiate
735         between the two.
736         (cp_parser_cilk_simd_fn_vector_attrs): New function.
737         (is_cilkplus_vector_p): Likewise.
738         (cp_parser_late_parsing_elem_fn_info): Likewise.
739         (cp_parser_omp_clause_name): Added a check for "mask", "nomask"
740         and "vectorlength" clauses when Cilk Plus is enabled.
741         (cp_parser_omp_clause_linear): Added a new parameter of type bool
742         and emit a sorry message when step size is a parameter.
743         * parser.h (cp_parser::cilk_simd_fn_info): New field.
744         * decl.c (grokfndecl): Added flag_enable_cilkplus along with
745         flag_openmp.
746         * pt.c (apply_late_template_attributes): Likewise.
748 2014-01-23  Jakub Jelinek  <jakub@redhat.com>
750         PR middle-end/58809
751         * semantics.c (finish_omp_reduction_clause): Reject
752         BIT_AND_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR on COMPLEX_TYPEs.
754 2014-01-22  Ville Voutilainen  <ville.voutilainen@gmail.com>
756         PR c++/59482
757         * parser.c (cp_parser_class_head): Push the class before parsing
758         the base-clause, pop after it.
760 2014-01-20  Eric Botcazou  <ebotcazou@adacore.com>
762         * decl2.c (cpp_check): Revert prototype change.
764 2014-01-17  Paolo Carlini  <paolo.carlini@oracle.com>
766         PR c++/59270
767         PR c++/58811
768         * init.c (build_value_init_noctor): Don't pass error_mark_node to
769         build_value_init.
771 2014-01-17  Paolo Carlini  <paolo.carlini@oracle.com>
773         PR c++/59269
774         * init.c (build_value_init_noctor): Assert !TYPE_HAS_COMPLEX_DFLT
775         only when errorcount == 0.
777 2014-01-17  Marek Polacek  <polacek@redhat.com>
779         PR c++/59838
780         * cvt.c (ocp_convert): Don't segfault on non-existing
781         ENUM_UNDERLYING_TYPE.
783 2014-01-16  Jason Merrill  <jason@redhat.com>
785         PR c++/59821
786         * tree.c (bot_manip): Update the location of builtin_LINE and
787         builtin_FILE calls.
789 2014-01-14  Jason Merrill  <jason@redhat.com>
791         PR c++/59659
792         * typeck2.c (massage_init_elt): New.
793         (process_init_constructor_record)
794         (process_init_constructor_union): Use it.
795         (process_init_constructor_array): Use it.  Use RANGE_EXPR.
796         (split_nonconstant_init_1): Handle it.
797         * semantics.c (cxx_eval_vec_init_1): Use force_rvalue.
799 2014-01-09  Balaji V. Iyer  <balaji.v.iyer@intel.com>
801         PR c++/59631
802         * parser.c (cp_parser_postfix_expression): Added a new if-statement
803         and replaced an existing if-statement with else-if statement.
804         Changed an existing error message wording to match the one from the C
805         parser.
807 2014-01-08  Jason Merrill  <jason@redhat.com>
809         PR c++/59614
810         * class.c (abi_tag_data): Add tags field.
811         (check_abi_tags): Initialize it.
812         (find_abi_tags_r): Support collecting missing tags.
813         (mark_type_abi_tags): Don't look at template args.
814         (inherit_targ_abi_tags): New.
815         (check_bases_and_members): Use it.
816         * cp-tree.h (ABI_TAG_IMPLICIT): New.
817         * mangle.c (write_abi_tags): Check it.
819 2014-01-07  Jason Merrill  <jason@redhat.com>
821         PR c++/58856
822         * pt.c (num_innermost_template_parms): New.
823         (get_underlying_template): Use it.
825         PR c++/58965
826         * mangle.c (write_guarded_var_name): Handle null DECL_NAME.
828 2014-01-07  Paolo Carlini  <paolo.carlini@oracle.com>
830         * semantics.c (trait_expr_value, [CPTK_IS_BASE_OF]): Implement
831         the letter of 20.11.6 about Base and Derived naming the same
832         class type modulo cv-qualifiers.
834 2014-01-06  Adam Butcher  <adam@jessamine.co.uk>
836         PR c++/59635
837         * lambda.c (maybe_add_lambda_conv_op): Handle marking conversion
838         function as unimplemented for generic lambdas with varargs.
840         PR c++/59636
841         * parser.c (cp_parser_template_parameter): Early out with
842         error_mark_node if parameter declaration was not parsed.
844         PR c++/59629
845         * parser.c (cp_parser_lambda_expression): Save/reset/restore
846         auto_is_implicit_function_template_parm_p around lambda body.
848         PR c++/59638
849         * parser.c (cp_parser_init_declarator): Undo fully implicit
850         template parameter list when declarator is not a function.
852 2014-01-03  Marc Glisse  <marc.glisse@inria.fr>
854         PR c++/58950
855         * cvt.c (convert_to_void): Handle VEC_PERM_EXPR and VEC_COND_EXPR.
857 2014-01-03  Tobias Burnus  <burnus@net-b.de>
859         PR c++/58567
860         * pt.c (tsubst_omp_for_iterator): Early return for error_mark_node.
862 2014-01-03  Paolo Carlini  <paolo.carlini@oracle.com>
864         Core DR 1442
865         PR c++/59165
866         * parser.c (cp_parser_perform_range_for_lookup): Don't pass true
867         as include_std to perform_koenig_lookup.
868         (cp_parser_postfix_expression): Adjust.
869         * pt.c (tsubst_copy_and_build): Likewise.
870         * semantics.c (perform_koenig_lookup): Remove bool parameter.
871         (omp_reduction_lookup): Adjust.
872         * name-lookup.c (lookup_arg_dependent_1): Remove bool parameter.
873         (lookup_arg_dependent): Likewise.
874         (lookup_function_nonclass): Adjust.
875         * name-lookup.h: Adjust declaration.
876         * cp-tree.h: Likewise.
878 2014-01-02  Marc Glisse  <marc.glisse@inria.fr>
880         PR c++/59087
881         * parser.c (cp_parser_userdef_numeric_literal): Mention
882         -fext-numeric-literals in the message.
884 2014-01-02  Marc Glisse  <marc.glisse@inria.fr>
886         PR c++/59641
887         * call.c (build_conditional_expr_1): Check the return value of
888         force_rvalue.
890 2014-01-02  Marc Glisse  <marc.glisse@inria.fr>
892         * call.c (convert_like_real): Check complain.
894 2014-01-02  Marc Glisse  <marc.glisse@inria.fr>
896         PR c++/59378
897         * typeck.c (build_x_vec_perm_expr): Handle non-dependent arguments
898         in templates.
900 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
902         Update copyright years
904 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
906         * cp-array-notation.c, cp-cilkplus.c, vtable-class-hierarchy.c: Use
907         the standard form for the copyright notice.
909 Copyright (C) 2014 Free Software Foundation, Inc.
911 Copying and distribution of this file, with or without modification,
912 are permitted in any medium without royalty provided the copyright
913 notice and this notice are preserved.