/cp
[official-gcc.git] / gcc / cp / ChangeLog
blob1acfec335f642f88ca4ef3ce8ce0b85ee3d37be8
1 2014-03-21  Paolo Carlini  <paolo.carlini@oracle.com>
3         PR c++/60384
4         * name-lookup.c (push_class_level_binding_1): Check identifier_p
5         on the name argument.
7 2014-03-20  Jakub Jelinek  <jakub@redhat.com>
9         PR c++/60572
10         * init.c (build_zero_init_1): Ignore fields with error_mark_node
11         type.
13 2014-03-19  Paolo Carlini  <paolo.carlini@oracle.com>
15         PR c++/51474
16         * call.c (build_new_method_call_1): Handle pure virtuals called by
17         NSDMIs too.
19 2014-03-17  Adam Butcher  <adam@jessamine.co.uk>
21         PR c++/60390
22         * parser.c (cp_parser_member_declaration): Don't allow
23         finish_fully_implicit_template to consider friend declarations to be
24         class member templates.
25         (synthesize_implicit_template_parm): Handling winding back through class
26         scope to the class being defined in order to inject a template argument
27         list.
29         PR c++/60391
30         * parser.c (cp_parser_skip_to_end_of_block_or_statement): Unwind generic
31         function scope as per cp_parser_skip_to_end_of_statement.
33 2014-03-17  Paolo Carlini  <paolo.carlini@oracle.com>
35         PR c++/59571
36         * typeck2.c (check_narrowing): Use fold_non_dependent_expr_sfinae.
38 2014-03-14  Jason Merrill  <jason@redhat.com>
40         PR c++/60532
41         PR c++/58678
42         * search.c (get_pure_virtuals): Handle abstract dtor here.
43         (dfs_get_pure_virtuals): Not here.
45         PR c++/58678
46         * search.c (dfs_get_pure_virtuals): Treat the destructor of an
47         abstract class as pure.
49 2014-03-13  Paolo Carlini  <paolo.carlini@oracle.com>
51         PR c++/60383
52         * pt.c (maybe_process_partial_specialization): Check return value
53         of check_specialization_namespace.
55 2014-03-13  Paolo Carlini  <paolo.carlini@oracle.com>
57         PR c++/60254
58         * semantics.c (finish_static_assert): Call cxx_constant_value only
59         if require_potential_rvalue_constant_expression returns true.
61 2014-03-11  Paolo Carlini  <paolo.carlini@oracle.com>
63         PR c++/60389
64         * method.c (get_inherited_ctor): New.
65         * cp-tree.h (get_inherited_ctor): Declare it.
66         * semantics.c (is_valid_constexpr_fn): Use it.
68 2014-03-10  Jason Merrill  <jason@redhat.com>
70         PR c++/60367
71         * call.c (convert_default_arg): Remove special handling for
72         CONSTRUCTOR.
74         PR c++/53492
75         * parser.c (cp_parser_class_head): Also check PRIMARY_TEMPLATE_P
76         when deciding whether to call push_template_decl for a member class.
77         * pt.c (push_template_decl_real): Return after wrong levels error.
79 2014-03-08  Adam Butcher  <adam@jessamine.co.uk>
81         PR c++/60033
82         * pt.c (tsubst_copy): When retrieving a capture pack from a generic
83         lambda, remove the lambda's own template argument list prior to fetching
84         the specialization.
86         PR c++/60393
87         * parser.c (cp_parser_parameter_declaration_clause): Move generic
88         function template unwinding on error into a more general location, ...
89         (cp_parser_skip_to_end_of_statement): ... here.
91 2014-03-07  Jason Merrill  <jason@redhat.com>
93         * Make-lang.in (check_g++_parallelize): Split dg.exp.
95         * parser.c (cp_parser_type_id_1): Only allow 'auto' in C++1y if
96         we're in a trailing return type.
98         * typeck.c (comp_template_parms_position): 'auto' and
99         'decltype(auto)' are different from real template parms.
101         * parser.c (cp_parser_using_declaration): Consume the semicolon
102         after bare parameter pack error.
104         * cp-tree.h (REF_PARENTHESIZED_P): New.
105         * semantics.c (force_paren_expr): Set it.
106         * pt.c (do_auto_deduction): Check it.
107         (tsubst) [COMPONENT_REF]: Copy it.
108         * typeck.c (maybe_warn_about_useless_cast): Don't strip dereference.
110         * decl.c (create_array_type_for_decl): Only warn about invalid
111         C++1y VLA if flag_iso or warn_vla>0.
112         (grokdeclarator): Likewise.
113         * pt.c (tsubst): Likewise.
114         * semantics.c (finish_decltype_type): Likewise.
115         * typeck.c (cxx_sizeof_or_alignof_type): Likewise.
116         (cp_build_addr_expr_1): Likewise.
117         * init.c (build_new_1): Improve diagnostics.
119 2014-03-07  Paolo Carlini  <paolo.carlini@oracle.com>
121         PR c++/58609
122         * decl.c (check_initializer): Return NULL_TREE after error;
123         consistently use inform.
125 2014-03-07  Paolo Carlini  <paolo.carlini@oracle.com>
127         * decl.c (check_initializer): Remove dead code.
129 2014-03-06  Marek Polacek  <polacek@redhat.com>
131         PR c/60197
132         * typeck.c (check_return_expr): Call contains_cilk_spawn_stmt instead
133         of checking tree code.
135 2014-03-06  Paolo Carlini  <paolo.carlini@oracle.com>
137         * parser.c (cp_lexer_set_source_position): New.
138         (cp_parser_mem_initializer): Use it.
139         (cp_parser_postfix_open_square_expression): Likewise.
140         (cp_parser_parenthesized_expression_list): Likewise.
141         (cp_parser_new_initializer): Likewise.
142         (cp_parser_jump_statement): Likewise.
143         (cp_parser_initializer): Likewise.
144         (cp_parser_functional_cast): Likewise.
146 2014-03-05  Jason Merrill  <jason@redhat.com>
148         PR c++/60409
149         * semantics.c (force_paren_expr): Only add a PAREN_EXPR to a
150         dependent expression.
152         PR c++/60361
153         * parser.c (cp_parser_template_id): Don't set up a CPP_TEMPLATE_ID
154         if re-parsing might succeed.
155         * semantics.c (finish_id_expression): Use of a parameter outside
156         the function body is a parse error.
158         * parser.c (cp_parser_mem_initializer): Set input_location
159         properly for init-list warning.
160         (cp_parser_postfix_open_square_expression): Likewise.
161         (cp_parser_parenthesized_expression_list): Likewise.
162         (cp_parser_new_initializer): Likewise.
163         (cp_parser_jump_statement): Likewise.
164         (cp_parser_initializer): Likewise.
165         (cp_parser_functional_cast): Likewise.
167 2014-03-04  Jason Merrill  <jason@redhat.com>
169         PR c++/60417
170         * typeck2.c (process_init_constructor_record): Set
171         CONSTRUCTOR_IS_DIRECT_INIT on {} for omitted initializers.
173         PR c++/60415
174         PR c++/54359
175         * parser.c (cp_parser_direct_declarator): Set declarator to
176         cp_error_declarator on invalid qualified-id.
178 2014-03-04  Paolo Carlini  <paolo.carlini@oracle.com>
180         PR c++/60376
181         * parser.c (cp_parser_using_declaration): Early return when
182         cp_parser_nested_name_specifier errors out.
184 2014-03-01  Adam Butcher  <adam@jessamine.co.uk>
186         PR c++/60377
187         * parser.c (cp_parser_parameter_declaration_clause): Unwind generic
188         function scope on parse error in function parameter list.
190 2014-03-01  Paolo Carlini  <paolo.carlini@oracle.com>
192         * method.c (implicitly_declare_fn): Remove redundant
193         DECL_TEMPLATE_RESULT and STRIP_TEMPLATE uses.
194         * semantics.c (is_instantiation_of_constexpr): Likewise.
195         * error.c (dump_function_decl): Likewise.
197 2014-03-01  Jason Merrill  <jason@redhat.com>
199         PR c++/60379
200         * semantics.c (begin_maybe_infinite_loop): Use
201         fold_non_dependent_expr_sfinae.
203 2014-02-28  Jason Merrill  <jason@redhat.com>
205         PR c++/58845
206         * typeck.c (cp_build_binary_op): Sorry on vector&&vector.
208 2014-02-28  Paolo Carlini  <paolo.carlini@oracle.com>
210         PR c++/58610
211         * cp-tree.h (DECL_DELETED_FN): Use LANG_DECL_FN_CHECK.
212         * call.c (print_z_candidate): Remove STRIP_TEMPLATE use.
213         * lambda.c (maybe_add_lambda_conv_op): Likewise.
215 2014-02-27  Paolo Carlini  <paolo.carlini@oracle.com>
217         PR c++/60253
218         * call.c (convert_arg_to_ellipsis): Return error_mark_node after
219         error_at.
221 2014-02-27  Jason Merrill  <jason@redhat.com>
223         PR c++/60353
224         PR c++/55877
225         * decl2.c (tentative_decl_linkage): Don't mess with functions that
226         are not yet defined.
228 2014-02-26  Jason Merrill  <jason@redhat.com>
230         PR c++/60347
231         PR lto/53808
232         * class.c (clone_function_decl): Don't note_vague_linkage_fn.
233         * init.c (build_vtbl_address): Do it here.
235         PR c++/59231
236         PR c++/11586
237         PR c++/14710
238         PR c++/57132
239         * pt.c (struct warning_sentinel): New.
240         (tsubst_copy_and_build): Use it instead of
241         c_inhibit_evaluation_warnings.
242         * typeck.c (maybe_warn_about_useless_cast): Remove
243         c_inhibit_evaluation_warnings check.
245         PR c++/54440
246         * pt.c (get_template_parm_index): New.
247         (fixed_parameter_pack_p_1, fixed_parameter_pack_p): New.
248         (process_template_parm): Allow bare packs in template template
249         parm template parms.
250         (coerce_template_parameter_pack): Handle fixed template template
251         parm packs and fixed packs not at the end of the parm list.
252         (coerce_template_parms): Handle template parm packs not at the end
253         of the parm list.
254         (gen_elem_of_pack_expansion_instantiation): Handle a decl expansion.
256         PR c++/60182
257         * pt.c (unify): Ignore alias templates when deducing a template
258         template parameter.
260         PR c++/60345
261         Revert:
262         DR 1571
263         * call.c (reference_binding): Recurse on user-defined conversion.
264         (convert_like_real) [ck_ref_bind]: Explain cv-qual mismatch.
266 2014-02-25  Jason Merrill  <jason@redhat.com>
268         DR 1571
269         * call.c (reference_binding): Recurse on user-defined conversion.
270         (convert_like_real) [ck_ref_bind]: Explain cv-qual mismatch.
272         * call.c (print_conversion_rejection): Handle n_arg of -2.
273         (build_user_type_conversion_1): Pass it.
275         PR c++/55877
276         * decl2.c (no_linkage_error): Handle C++98 semantics.
277         (reset_type_linkage): Move from decl.c.
278         (reset_type_linkage_1, reset_type_linkage_2, bt_reset_linkage_1)
279         (bt_reset_linkage_2, reset_decl_linkage): New.
280         (tentative_decl_linkage): Factor out of expand_or_defer_fn_1.
281         (cp_write_global_declarations): Move condition into no_linkage_error.
282         * decl.c (grokfndecl, grokvardecl): Use no_linkage_error.
283         * semantics.c (expand_or_defer_fn_1): Factor out
284         tentative_decl_linkage.
285         * cp-tree.h: Adjust.
287         * decl2.c (finish_static_data_member_decl): Diagnose static data
288         member in unnamed class.
289         * class.c (finish_struct_anon_r): Avoid redundant diagnostic.
291         PR lto/53808
292         * class.c (clone_function_decl): Call note_vague_linkage_fn for
293         defaulted virtual dtor.
295         DR 1286
296         PR c++/60328
297         * pt.c (get_underlying_template): Fix equivalence calculation.
299 2014-02-25  Adam Butcher  <adam@jessamine.co.uk>
301         PR c++/60311
302         * parser.c (function_being_declared_is_template_p): Return false when
303         processing a template parameter list.
304         (cp_parser_parameter_declaration_clause): Don't set
305         auto_is_implicit_function_template_parm_p when processing a
306         template parameter list.
308         * parser.c (synthesize_implicit_template_parm): Inject new template
309         argument list appropriately when a generic member function
310         of a class template is declared out-of-line.
312         PR c++/60065
313         * parser.c (cp_parser_direct_declarator): Don't save and
314         restore num_template_parameter_lists around call to
315         cp_parser_parameter_declaration_list.
316         (function_being_declared_is_template_p): New predicate.
317         (cp_parser_parameter_declaration_list): Use
318         function_being_declared_is_template_p as predicate for
319         inspecting current function template parameter list length
320         rather than num_template_parameter_lists.
322 2014-02-24  Jason Merrill  <jason@redhat.com>
324         PR c++/60146
325         * pt.c (tsubst_omp_for_iterator): Don't let substitution of the
326         DECL_EXPR initialize a non-class iterator.
328         PR c++/60312
329         * parser.c (cp_parser_template_type_arg): Check for invalid 'auto'.
331 2014-02-21  Jason Merrill  <jason@redhat.com>
333         PR c++/58170
334         * parser.c (cp_parser_type_name): Always check dependency.
335         (cp_parser_type_specifier_seq): Call
336         cp_parser_parse_and_diagnose_invalid_type_name.
338         PR c++/60108
339         * semantics.c (expand_or_defer_fn_1): Check DECL_DEFAULTED_FN.
341         PR c++/60185
342         * parser.c (cp_parser_default_argument): Clear
343         current_class_ptr/current_class_ref like tsubst_default_argument.
345         PR c++/60252
346         * lambda.c (maybe_resolve_dummy): Check lambda_function rather
347         than current_binding_level.
349         PR c++/60186
350         * typeck2.c (massage_init_elt): Call fold_non_dependent_expr_sfinae.
352         PR c++/60187
353         * parser.c (cp_parser_enum_specifier): Call
354         check_for_bare_parameter_packs.
356         PR c++/59347
357         * pt.c (tsubst_decl) [TYPE_DECL]: Don't try to instantiate an
358         erroneous typedef.
360         PR c++/60241
361         * pt.c (lookup_template_class_1): Update DECL_TEMPLATE_INSTANTIATIONS
362         of the partial instantiation, not the most general template.
363         (maybe_process_partial_specialization): Reassign everything on
364         that list.
366         PR c++/60216
367         * pt.c (register_specialization): Copy DECL_DELETED_FN to clones.
368         (check_explicit_specialization): Don't clone.
370         PR c++/60219
371         * pt.c (coerce_template_parms): Bail if argument packing fails.
373         PR c++/60224
374         * decl.c (cp_complete_array_type, maybe_deduce_size_from_array_init):
375         Don't get confused by a CONSTRUCTOR that already has a type.
377         PR c++/60227
378         * call.c (build_array_conv): Don't crash on VLA.
380         PR c++/60248
381         * mangle.c (mangle_decl): Don't make an alias for a TYPE_DECL.
383         PR c++/60252
384         * lambda.c (maybe_resolve_dummy): Don't try to capture this
385         in declaration context.
387         DR 1591
388         PR c++/60051
389         * pt.c (unify): Only unify if deducible.  Handle 0-length list.
391         PR c++/60250
392         * parser.c (cp_parser_direct_declarator): Don't wrap a
393         type-dependent expression in a NOP_EXPR.
395         PR c++/60251
396         * lambda.c (is_normal_capture_proxy): Handle VLA capture.
398         PR c++/60167
399         PR c++/60222
400         PR c++/58606
401         * parser.c (cp_parser_template_argument): Restore dereference.
402         * pt.c (template_parm_to_arg): Dereference non-pack expansions too.
403         (process_partial_specialization): Handle deref.
404         (unify): Likewise.
406 2014-02-21  Adam Butcher  <adam@jessamine.co.uk>
408         PR c++/60052
409         PR c++/60053
410         * parser.c (cp_parser_parameter_declaration_list): Correctly reset
411         implicit_template_scope upon leaving an out-of-line generic member
412         function definition.
414 2014-02-20  Kai Tietz  <ktietz@redhat.com>
416         PR c++/58873
417         * parser.c (cp_parser_functional_cast): Treat NULL_TREE
418         valued type argument as error_mark_node.
420         PR c++/58835
421         * semantics.c (finish_fname): Handle error_mark_node.
423 2014-02-19  Jason Merrill  <jason@redhat.com>
425         PR c++/60046
426         * pt.c (maybe_instantiate_noexcept): Don't instantiate exception
427         spec from template context.
429 2014-02-19  Jakub Jelinek  <jakub@redhat.com>
431         PR debug/56563
432         * cp-objcp-common.c (cp_function_decl_explicit_p): Remove
433         FUNCTION_FIRST_USER_PARMTYPE (decl) != void_list_node check.
435         PR c++/60267
436         * pt.c (tsubst_expr): Handle ANNOTATE_EXPR.
438 2014-02-18  Paolo Carlini  <paolo.carlini@oracle.com>
440         PR c++/60225
441         * semantics.c (ensure_literal_type_for_constexpr_object): Use
442         strip_array_types.
444 2014-02-18  Paolo Carlini  <paolo.carlini@oracle.com>
446         PR c++/60215
447         * semantics.c (cxx_eval_constant_expression, [COMPONENT_REF]):
448         During error recovery allow_non_constant may be false.
450 2014-02-18  Adam Butcher  <adam@jessamine.co.uk>
452         PR c++/60190
453         * parser.c (cp_parser_lambda_declarator_opt): Pop template parameter
454         scope whenever a template parameter list has been started, independent
455         of whether the function call operator was well-formed or not.
457         PR c++/60064
458         * parser.c (cp_parser_member_declaration): Pop fully implicit template
459         scope for generic friend declarations as well as for non-friends.
461 2014-02-12  Paolo Carlini  <paolo.carlini@oracle.com>
463         PR c++/60047
464         * method.c (implicitly_declare_fn): A constructor of a class with
465         virtual base classes isn't constexpr (7.1.5p4).
467 2014-02-05  Jan Hubicka  <hubicka@ucw.cz
469         * parser.c (synthesize_implicit_template_parm): Use grow_tree_vec.
471 2014-02-05  Jakub Jelinek  <jakub@redhat.com>
473         PR c++/58703
474         * parser.c (cp_parser_omp_declare_reduction): Save and free
475         declarator_obstack.
477 2014-02-03  Marc Glisse  <marc.glisse@inria.fr>
479         PR c++/53017
480         PR c++/59211
481         * tree.c (handle_init_priority_attribute): Call default_conversion on
482         the attribute argument.
484 2014-02-03  Paolo Carlini  <paolo.carlini@oracle.com>
486         PR c++/58871
487         * method.c (synthesized_method_walk): If vbases is non-null but
488         is_empty is true, likewise don't worry about the virtual bases.
490 2014-02-01  Paolo Carlini  <paolo.carlini@oracle.com>
492         PR c++/51219
493         * typeck2.c (process_init_constructor_record): Just skip unnamed
494         bit-fields.
496 2014-01-31  Jason Merrill  <jason@redhat.com>
498         PR c++/59469
499         * pt.c (mark_decl_instantiated): Call mark_needed.
501         PR c++/58672
502         * decl2.c (handle_tls_init): Handle null init fn.
504         PR c++/55800
505         * decl2.c (get_tls_init_fn): Copy DECL_EXTERNAL from the variable.
507 2014-01-31  Paolo Carlini  <paolo.carlini@oracle.com>
509         PR c++/59082
510         * class.c (build_vfield_ref): Early return error_mark_node if
511         TYPE_VFIELD (type) is null.
512         (build_base_path): Check return value of build_vfield_ref.
514 2014-01-31  Jason Merrill  <jason@redhat.com>
516         PR c++/59646
517         * call.c (convert_like_real) [ck_aggr]: Set TARGET_EXPR_LIST_INIT_P.
518         [ck_list]: Check for error_mark_node.
519         (build_aggr_conv): Set LOOKUP_NO_NARROWING and check_narrowing.
521         PR c++/57043
522         * pt.c (fn_type_unification): Don't do DEDUCE_EXACT check
523         during partial ordering.
525 2014-01-31  Marek Polacek  <polacek@redhat.com>
527         PR c/59963
528         * typeck.c (build_function_call_vec): Add dummy arg_loc parameter.
530 2014-01-30  Jason Merrill  <jason@redhat.com>
532         PR c++/57899
533         * cp-tree.h (struct saved_scope): Add x_local_specializations.
534         (local_specializations): New macro.
535         * pt.c (local_specializations): Remove variable.
537 2014-01-30  Richard Sandiford  <rdsandiford@googlemail.com>
539         PR c++/58708
540         * parser.c (make_string_pack): Use double_int::from_buffer.
542 2014-01-30  Marek Polacek  <polacek@redhat.com>
544         PR c/59940
545         * typeck.c (build_ptrmemfunc1): Call convert_and_check with
546         input_location.
547         * cvt.c (cp_convert_and_check): Call warnings_for_convert_and_check
548         with input_location.
549         * call.c (build_conditional_expr_1): Call unsafe_conversion_p with
550         loc parameter.
552 2014-01-30  Paolo Carlini  <paolo.carlini@oracle.com>
554         PR c++/58843
555         * typeck.c (lookup_destructor): Check dtor_type for error_mark_node.
557 2014-01-30  Paolo Carlini  <paolo.carlini@oracle.com>
559         PR c++/58649
560         * pt.c (lookup_template_class_1): Check start_enum return value
561         for error_mark_node.
563 2014-01-30  Paolo Carlini  <paolo.carlini@oracle.com>
565         * decl.c (duplicate_decls, typename_hash, typename_compare):
566         Use TYPE_IDENTIFIER.
567         * error.c (dump_type): Likewise.
568         * mangle.c (dump_substitution_candidates): Likewise.
570 2014-01-30  Jason Merrill  <jason@redhat.com>
572         PR c++/59633
573         * decl2.c (attributes_naming_typedef_ok): New.
574         * cp-tree.h: Declare it.
575         * decl.c (grokdeclarator): Check it.
576         * tree.c (no_linkage_check): Handle VECTOR_TYPE.
578 2014-01-29  Jason Merrill  <jason@redhat.com>
580         PR c++/59707
581         * call.c (add_builtin_candidate): Catch dependent types.
583         PR c++/59989
584         * pt.c (expand_template_argument_pack): Correct
585         non_default_args_count calculation.
587         PR c++/58466
588         * pt.c (unify_pack_expansion): Call expand_template_argument_pack.
590         PR c++/59956
591         * friend.c (do_friend): Pass the TEMPLATE_DECL to add_friend if we
592         have a friend template in a class template.
593         * pt.c (tsubst_friend_function): Look through it.
594         (push_template_decl_real): A friend member template is
595         primary.
597 2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
599         PR c++/58846
600         * decl.c (get_dso_handle_node): Don't crash if dso_handle_node
601         == error_mark_node.
603 2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
605         PR c++/58674
606         * pt.c (instantiate_template_1): Check for error_mark_node the second
607         argument too.
609 2014-01-29  Jason Merrill  <jason@redhat.com>
611         PR c++/59916
612         * optimize.c (maybe_thunk_body): Build a RETURN_EXPR for
613         cdtor_returns_this case.
615         PR c++/59315
616         * decl.c (cxx_maybe_build_cleanup): Call mark_used.
618 2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
620         PR c++/58702
621         * semantics.c (finish_omp_reduction_clause): Check type for
622         error_mark_node.
624 2014-01-28  Jason Merrill  <jason@redhat.com>
626         PR c++/59791
627         * pt.c (tsubst_decl) [VAR_DECL]: Allow in unevaluated context.
628         (tsubst_copy): Use it if lookup fails.
630         PR c++/59818
631         * pt.c (tsubst_function_type): Make sure we keep the same function
632         quals.
634         PR c++/58701
635         * semantics.c (build_anon_member_initialization): Stop walking
636         when we run out of COMPONENT_REFs.
638         PR c++/58632
639         * decl.c (lookup_and_check_tag): Ignore template parameters if
640         scope == ts_current.
641         * pt.c (check_template_shadow): Don't complain about the injected
642         class name.
644         * decl.c (duplicate_decls): Tweak.
646         PR c++/53756
647         * mangle.c (write_unqualified_name): Handle operator auto.
649 2014-01-27  Jason Merrill  <jason@redhat.com>
651         PR c++/59823
652         Core DR 1138
653         * call.c (reference_binding): Pass LOOKUP_NO_TEMP_BIND for
654         list-initialization.  A conversion to rvalue ref that involves
655         an lvalue-rvalue conversion is bad.
656         (convert_like_real): Give helpful error message.
658         PR c++/54652
659         * decl.c (duplicate_decls): Always use oldtype for TYPE_DECL.
661         PR c++/58504
662         * pt.c (tsubst_copy_and_build) [TRAIT_EXPR]: Use tsubst for
663         types.
665         PR c++/58606
666         * pt.c (template_parm_to_arg): Call convert_from_reference.
667         (tsubst_template_arg): Don't strip reference refs.
669         PR c++/58639
670         * call.c (build_aggr_conv): Reject value-initialization of reference.
672         PR c++/58812
673         PR c++/58651
674         * call.c (convert_like_real): Give helpful error about excess braces
675         for ck_rvalue of scalar type.
677         Core DR 1288
678         * call.c (reference_binding): Only elide braces if the single
679         element is reference-related.
681         PR c++/58814
682         * typeck.c (cp_build_modify_expr): Make the RHS an rvalue before
683         stabilizing.
685         PR c++/58837
686         * typeck.c (cp_truthvalue_conversion): Use explicit comparison for
687         FUNCTION_DECL.
689         PR c++/59097
690         * decl.c (compute_array_index_type): Don't call
691         maybe_constant_value for a non-integral expression.
693 2014-01-24  Balaji V. Iyer  <balaji.v.iyer@intel.com>
695         * call.c (magic_varargs_p): Replaced flag_enable_cilkplus with
696         flag_cilkplus.
697         * cp-gimplify.c (cp_genericize): Likewise.
698         * decl.c (grokfndecl): Likewise.
699         * parser.c (cp_parser_postfix_expression): Likewise.
700         (cp_parser_postfix_open_square_expression): Likewise.
701         (cp_parser_direct_declarator): Likewise.
702         (is_cilkplus_vector_p): Likewise.
703         (cp_parser_omp_clause_name): Likewise.
704         (cp_parser_omp_all_clauses): Likewise.
705         * pt.c (apply_late_template_attributes): Likewise.
706         * typeck.c (cp_build_array_ref): Likewise.
707         (cp_build_compound_expr): Likewise.
708         (check_return_expr): Likewise.
710 2014-01-24  Jason Merrill  <jason@redhat.com>
712         PR c++/58550
713         * decl.c (grokdeclarator): Turn pedwarn about auto return type in
714         c++11 into error.
716         PR c++/59886
717         PR c++/59659
718         * typeck2.c (process_init_constructor_array): Don't create
719         RANGE_EXPR yet.
721 2014-01-24  Jakub Jelinek  <jakub@redhat.com>
723         * typeck2.c (split_nonconstant_init_1): Fix num_split_elts
724         handling for RANGE_ARRAY case.
726 2014-01-24  Paolo Carlini  <paolo.carlini@oracle.com>
728         PR c++/57524
729         * name-lookup.c (push_using_directive): Use timevar_cond_start.
731 2014-01-23  Marek Polacek  <polacek@redhat.com>
733         PR c/59846
734         * typeck.c (cp_build_binary_op): Pass location to shorten_compare.
736 2014-01-23  Marek Polacek  <polacek@redhat.com>
738         PR c/58346
739         * typeck.c (pointer_diff): Give an error on arithmetic on pointer to
740         an empty aggregate.
742 2014-01-23  Jason Merrill  <jason@redhat.com>
744         PR c++/55189
745         * cp-tree.h (struct language_function): Add infinite_loop and
746         infinite_loops.
747         (current_function_infinite_loop): New.
748         * semantics.c (begin_maybe_infinite_loop, end_maybe_infinite_loop)
749         (break_maybe_infinite_loop): New.
750         (finish_while_stmt_cond, finish_while_stmt, begin_do_stmt)
751         (finish_do_stmt, finish_for_cond, finish_for_stmt)
752         (begin_range_for_stmt): Use them.
753         * decl.c (finish_function): Don't warn about missing return
754         if current_function_infinite_loop.
755         * pt.c (instantiate_decl): Copy current_function_infinite_loop.
756         * parser.c (cp_parser_jump_statement): Call break_maybe_infinite_loop.
758         * call.c (build_op_delete_call): Use make_tree_vector and
759         release_tree_vector.
761 2014-01-23  Paolo Carlini  <paolo.carlini@oracle.com>
763         PR c++/58980
764         * parser.c (cp_parser_enum_specifier): Handle TYPENAME_TYPE as
765         nested_name_specifier.
767 2014-01-23  Balaji V. Iyer  <balaji.v.iyer@intel.com>
769         * parser.c (cp_parser_direct_declarator): When Cilk Plus is enabled
770         see if there is an attribute after function decl.  If so, then
771         parse them now.
772         (cp_parser_late_return_type_opt): Handle parsing of Cilk Plus SIMD
773         enabled function late parsing.
774         (cp_parser_gnu_attribute_list): Parse all the tokens for the vector
775         attribute for a SIMD-enabled function.
776         (cp_parser_omp_all_clauses): Skip parsing to the end of pragma when
777         the function is used by SIMD-enabled function (indicated by NULL
778         pragma token).   Added 3 new clauses: PRAGMA_CILK_CLAUSE_MASK,
779         PRAGMA_CILK_CLAUSE_NOMASK and PRAGMA_CILK_CLAUSE_VECTORLENGTH
780         (cp_parser_cilk_simd_vectorlength): Modified this function to handle
781         vectorlength clause in SIMD-enabled function and #pragma SIMD's
782         vectorlength clause.  Added a new bool parameter to differentiate
783         between the two.
784         (cp_parser_cilk_simd_fn_vector_attrs): New function.
785         (is_cilkplus_vector_p): Likewise.
786         (cp_parser_late_parsing_elem_fn_info): Likewise.
787         (cp_parser_omp_clause_name): Added a check for "mask", "nomask"
788         and "vectorlength" clauses when Cilk Plus is enabled.
789         (cp_parser_omp_clause_linear): Added a new parameter of type bool
790         and emit a sorry message when step size is a parameter.
791         * parser.h (cp_parser::cilk_simd_fn_info): New field.
792         * decl.c (grokfndecl): Added flag_enable_cilkplus along with
793         flag_openmp.
794         * pt.c (apply_late_template_attributes): Likewise.
796 2014-01-23  Jakub Jelinek  <jakub@redhat.com>
798         PR middle-end/58809
799         * semantics.c (finish_omp_reduction_clause): Reject
800         BIT_AND_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR on COMPLEX_TYPEs.
802 2014-01-22  Ville Voutilainen  <ville.voutilainen@gmail.com>
804         PR c++/59482
805         * parser.c (cp_parser_class_head): Push the class before parsing
806         the base-clause, pop after it.
808 2014-01-20  Eric Botcazou  <ebotcazou@adacore.com>
810         * decl2.c (cpp_check): Revert prototype change.
812 2014-01-17  Paolo Carlini  <paolo.carlini@oracle.com>
814         PR c++/59270
815         PR c++/58811
816         * init.c (build_value_init_noctor): Don't pass error_mark_node to
817         build_value_init.
819 2014-01-17  Paolo Carlini  <paolo.carlini@oracle.com>
821         PR c++/59269
822         * init.c (build_value_init_noctor): Assert !TYPE_HAS_COMPLEX_DFLT
823         only when errorcount == 0.
825 2014-01-17  Marek Polacek  <polacek@redhat.com>
827         PR c++/59838
828         * cvt.c (ocp_convert): Don't segfault on non-existing
829         ENUM_UNDERLYING_TYPE.
831 2014-01-16  Jason Merrill  <jason@redhat.com>
833         PR c++/59821
834         * tree.c (bot_manip): Update the location of builtin_LINE and
835         builtin_FILE calls.
837 2014-01-14  Jason Merrill  <jason@redhat.com>
839         PR c++/59659
840         * typeck2.c (massage_init_elt): New.
841         (process_init_constructor_record)
842         (process_init_constructor_union): Use it.
843         (process_init_constructor_array): Use it.  Use RANGE_EXPR.
844         (split_nonconstant_init_1): Handle it.
845         * semantics.c (cxx_eval_vec_init_1): Use force_rvalue.
847 2014-01-09  Balaji V. Iyer  <balaji.v.iyer@intel.com>
849         PR c++/59631
850         * parser.c (cp_parser_postfix_expression): Added a new if-statement
851         and replaced an existing if-statement with else-if statement.
852         Changed an existing error message wording to match the one from the C
853         parser.
855 2014-01-08  Jason Merrill  <jason@redhat.com>
857         PR c++/59614
858         * class.c (abi_tag_data): Add tags field.
859         (check_abi_tags): Initialize it.
860         (find_abi_tags_r): Support collecting missing tags.
861         (mark_type_abi_tags): Don't look at template args.
862         (inherit_targ_abi_tags): New.
863         (check_bases_and_members): Use it.
864         * cp-tree.h (ABI_TAG_IMPLICIT): New.
865         * mangle.c (write_abi_tags): Check it.
867 2014-01-07  Jason Merrill  <jason@redhat.com>
869         PR c++/58856
870         * pt.c (num_innermost_template_parms): New.
871         (get_underlying_template): Use it.
873         PR c++/58965
874         * mangle.c (write_guarded_var_name): Handle null DECL_NAME.
876 2014-01-07  Paolo Carlini  <paolo.carlini@oracle.com>
878         * semantics.c (trait_expr_value, [CPTK_IS_BASE_OF]): Implement
879         the letter of 20.11.6 about Base and Derived naming the same
880         class type modulo cv-qualifiers.
882 2014-01-06  Adam Butcher  <adam@jessamine.co.uk>
884         PR c++/59635
885         * lambda.c (maybe_add_lambda_conv_op): Handle marking conversion
886         function as unimplemented for generic lambdas with varargs.
888         PR c++/59636
889         * parser.c (cp_parser_template_parameter): Early out with
890         error_mark_node if parameter declaration was not parsed.
892         PR c++/59629
893         * parser.c (cp_parser_lambda_expression): Save/reset/restore
894         auto_is_implicit_function_template_parm_p around lambda body.
896         PR c++/59638
897         * parser.c (cp_parser_init_declarator): Undo fully implicit
898         template parameter list when declarator is not a function.
900 2014-01-03  Marc Glisse  <marc.glisse@inria.fr>
902         PR c++/58950
903         * cvt.c (convert_to_void): Handle VEC_PERM_EXPR and VEC_COND_EXPR.
905 2014-01-03  Tobias Burnus  <burnus@net-b.de>
907         PR c++/58567
908         * pt.c (tsubst_omp_for_iterator): Early return for error_mark_node.
910 2014-01-03  Paolo Carlini  <paolo.carlini@oracle.com>
912         Core DR 1442
913         PR c++/59165
914         * parser.c (cp_parser_perform_range_for_lookup): Don't pass true
915         as include_std to perform_koenig_lookup.
916         (cp_parser_postfix_expression): Adjust.
917         * pt.c (tsubst_copy_and_build): Likewise.
918         * semantics.c (perform_koenig_lookup): Remove bool parameter.
919         (omp_reduction_lookup): Adjust.
920         * name-lookup.c (lookup_arg_dependent_1): Remove bool parameter.
921         (lookup_arg_dependent): Likewise.
922         (lookup_function_nonclass): Adjust.
923         * name-lookup.h: Adjust declaration.
924         * cp-tree.h: Likewise.
926 2014-01-02  Marc Glisse  <marc.glisse@inria.fr>
928         PR c++/59087
929         * parser.c (cp_parser_userdef_numeric_literal): Mention
930         -fext-numeric-literals in the message.
932 2014-01-02  Marc Glisse  <marc.glisse@inria.fr>
934         PR c++/59641
935         * call.c (build_conditional_expr_1): Check the return value of
936         force_rvalue.
938 2014-01-02  Marc Glisse  <marc.glisse@inria.fr>
940         * call.c (convert_like_real): Check complain.
942 2014-01-02  Marc Glisse  <marc.glisse@inria.fr>
944         PR c++/59378
945         * typeck.c (build_x_vec_perm_expr): Handle non-dependent arguments
946         in templates.
948 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
950         Update copyright years
952 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
954         * cp-array-notation.c, cp-cilkplus.c, vtable-class-hierarchy.c: Use
955         the standard form for the copyright notice.
957 Copyright (C) 2014 Free Software Foundation, Inc.
959 Copying and distribution of this file, with or without modification,
960 are permitted in any medium without royalty provided the copyright
961 notice and this notice are preserved.