]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/cp/ChangeLog
call.c (struct conversion_info): Rename 'from_type' to 'from'.
[thirdparty/gcc.git] / gcc / cp / ChangeLog
1 2014-05-14 Jason Merrill <jason@redhat.com>
2
3 * call.c (struct conversion_info): Rename 'from_type' to 'from'.
4 (arg_conversion_rejection, bad_arg_conversion_rejection)
5 (explicit_conversion_rejection, template_conversion_rejection): Adjust.
6 (add_function_candidate): Pass actual argument, rather than type, to
7 bad_arg_conversion_rejection.
8 (print_conversion_rejection): Explain what's wrong with the conversion.
9 (print_z_candidate): Say "candidate:" before each candidate.
10 (splice_viable): Be strict if we see a viable or template candidate.
11 (build_user_type_conversion_1): Pass false to strict parameter.
12 (perform_overload_resolution, build_conditional_expr_1): Likewise.
13 (build_new_op_1, build_new_method_call_1): Likewise.
14 (build_op_call_1): Pass true to strict parameter.
15
16 2014-05-13 Jason Merrill <jason@redhat.com>
17
18 * call.c (print_error_for_call_failure): Say "no match" rather
19 than "ambiguous" if there were no strict matches.
20 (build_new_method_call_1): Likewise.
21
22 PR c++/61151
23 * semantics.c (is_this_parameter): Allow capture proxies too.
24
25 2014-05-12 Jason Merrill <jason@redhat.com>
26
27 * call.c (maybe_print_user_conv_context): New.
28 (convert_like_real): Use it. Print call context for bad
29 user-defined conversion.
30 (build_over_call): Print call context for bad 'this' conversion.
31
32 * call.c (convert_like_real): Use inform for identifying the
33 declaration point.
34
35 2014-05-12 Paolo Carlini <paolo.carlini@oracle.com>
36
37 * cvt.c (cp_convert_to_pointer): Don't call error_at if
38 complain & tf_error is false.
39
40 * decl.c (make_unbound_class_template): Prefer inform for
41 "declared here"-type message.
42
43 2014-05-09 Momchil Velikov <momchil.velikov@gmail.com>
44
45 PR c++/60463
46 PR c++/60755
47 * lambda.c (lambda_expr_this_capture): Add new parameter
48 add_capture_p controlling whether the functions will try to
49 capture 'this' via the default capture.
50 (maybe_resolve_dummy): Likewise.
51 * cp-tree.h: Adjust prototypes.
52 * call.c, semantics.c: Change callers of these functions.
53 * call.c (build_new_method_call_1): Use the actual 'this' that
54 would be potentially captured for the overload resolution, instead
55 of the dummy object.
56
57 2014-05-09 Paolo Carlini <paolo.carlini@oracle.com>
58
59 * pt.c (convert_nontype_argument_function): Add tsubst_flags_t
60 parameter.
61 (convert_nontype_argument): Adjust calls.
62 (coerce_template_parameter_pack): Add missing complain & tf_error
63 check.
64
65 2014-05-09 Jason Merrill <jason@redhat.com>
66
67 DR 587
68 PR c++/51317
69 * call.c (build_conditional_expr_1, conditional_conversion): Handle
70 non-class lvalues and xvalues that differ only in cv-qualifiers.
71
72 DR 5
73 PR c++/60019
74 * call.c (build_user_type_conversion_1): The copy-init temporary
75 is cv-unqualified.
76
77 PR c++/58714
78 * tree.c (stabilize_expr): A stabilized prvalue is an xvalue.
79
80 PR c++/54348
81 * call.c (build_conditional_expr_1): If overload resolution finds
82 no match, just say "different types".
83
84 PR c++/32019
85 * call.c (build_conditional_expr_1): Improve ambiguity diagnostic.
86
87 PR c++/22434
88 * call.c (build_conditional_expr_1): Don't try to pool cv-quals
89 if we didn't find a conversion.
90 Don't accept a bad conversion too early.
91
92 2014-05-08 Paolo Carlini <paolo.carlini@oracle.com>
93
94 PR c++/13981
95 * typeck.c (convert_for_assignment): Provide an inform for pointers
96 to incomplete class types.
97
98 2014-05-07 Paolo Carlini <paolo.carlini@oracle.com>
99
100 PR c++/61083
101 * pt.c (convert_nontype_argument): Protect all the error calls
102 with complain & tf_error.
103
104 2014-05-07 Paolo Carlini <paolo.carlini@oracle.com>
105
106 PR c++/61080
107 * pt.c (instantiate_decl): Avoid generating the body of a
108 deleted function.
109
110 2014-05-06 Paolo Carlini <paolo.carlini@oracle.com>
111
112 PR c++/60999
113 * pt.c (maybe_begin_member_template_processing): Use
114 uses_template_parms.
115
116 2014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com>
117 Mike Stump <mikestump@comcast.net>
118 Richard Sandiford <rdsandiford@googlemail.com>
119
120 * call.c: Include wide-int.h.
121 (type_passed_as): Use tree_int_cst_lt instead of INT_CST_LT_UNSIGNED.
122 (convert_for_arg_passing): Likewise.
123 * class.c: Include wide-int.h.
124 (walk_subobject_offsets): Use tree_int_cst_lt instead of INT_CST_LT.
125 (end_of_class): Use tree_int_cst_lt instead of INT_CST_LT_UNSIGNED.
126 (include_empty_classes): Likewise
127 (layout_class_type): Use tree_int_cst_lt instead of INT_CST_LT.
128 * cvt.c: Include wide-int.h.
129 (ignore_overflows): Use wide_int_to_tree.
130 * decl.c: Include wide-int.h.
131 (check_array_designated_initializer): Use wide-int interfaces.
132 (compute_array_index_type): Use tree_int_cst_lt instead of INT_CST_LT.
133 (finish_enum_value_list): Use signop.
134 (build_enumerator): Use wide-int interfaces.
135 * init.c: Include wide-int.h.
136 (build_new_1): Use wide-int interfaces.
137 * mangle.c: Include wide-int.h.
138 (write_integer_cst): Use wide-int interfaces.
139 (write_array_type): Likewise.
140 * tree.c: Include wide-int.h.
141 (cp_tree_equal): Use tree_int_cst_equal.
142 * typeck2.c: Include wide-int.h.
143 (process_init_constructor_array): Use wide-int interfaces.
144
145 2014-05-03 Paolo Carlini <paolo.carlini@oracle.com>
146
147 PR c++/58582
148 * decl.c (grokfndecl): Check duplicate_decls return value for
149 error_mark_node.
150 * pt.c (instantiate_decl): A deleted function is defined.
151
152 2014-05-02 Jason Merrill <jason@redhat.com>
153
154 * decl2.c (vague_linkage_p): Local statics have vague linkage.
155
156 PR c++/60992
157 * lambda.c (lambda_capture_field_type): Wrap anything dependent
158 other than 'this'.
159 (add_capture): Check for VLA before calling it.
160 * semantics.c (is_this_parameter): Accept any 'this' parameter, not
161 just the current one. Make non-static.
162 * cp-tree.h: Declare it.
163 * pt.c (tsubst_copy) [VAR_DECL]: Also build a new VAR_DECL if
164 the operand was static or constant.
165
166 2014-05-02 Marek Polacek <polacek@redhat.com>
167
168 * typeck.c (maybe_warn_about_returning_address_of_local): Separate
169 warning_at calls.
170
171 2014-05-01 Marek Polacek <polacek@redhat.com>
172
173 PR c/43395
174 * typeck.c (maybe_warn_about_returning_address_of_local): Distinguish
175 between label and variable when warning about returning local address.
176
177 2014-04-30 Jason Merrill <jason@redhat.com>
178
179 PR c++/60980
180 * init.c (build_value_init): Don't try to call an array constructor.
181
182 PR c++/60951
183 * typeck2.c (massage_init_elt): Use maybe_constant_init.
184
185 2014-04-30 Marek Polacek <polacek@redhat.com>
186
187 * typeck.c (cp_build_binary_op): Call ubsan_instrument_division
188 even when SANITIZE_FLOAT_DIVIDE is on. Set doing_div_or_mod even
189 for non-integer types.
190
191 2014-04-29 Jason Merrill <jason@redhat.com>
192
193 DR 1351
194 Represent the unevaluated exception specification of an implicitly
195 declared or deleted function with a simple placeholder, not a list
196 of functions.
197 * cp-tree.h (UNEVALUATED_NOEXCEPT_SPEC_P): New.
198 * except.c (unevaluated_noexcept_spec): New.
199 * class.c (deduce_noexcept_on_destructor): Use it.
200 * decl.c (check_redeclaration_exception_specification): Call
201 maybe_instantiate_noexcept.
202 (duplicate_decls): Call it before merge_types.
203 (start_preparsed_function): Call maybe_instantiate_noexcept.
204 * decl2.c (mark_used): Call maybe_instantiate_noexcept earlier.
205 * init.c (get_nsdmi): Factor out of perform_member_init.
206 * method.c (process_subob_fn): Call maybe_instantiate_noexcept.
207 (walk_field_subobs): Consider NSDMI for EH spec.
208 (get_defaulted_eh_spec): New.
209 (implicitly_declare_fn): Use unevaluated_noexcept_spec.
210 (defaulted_late_check): Defer EH checking in non-template classes.
211 (after_nsdmi_defaulted_late_checks): New.
212 * parser.c (cp_parser_class_specifier_1): Use it.
213 (unparsed_classes): New macro.
214 * parser.h (cp_unparsed_functions_entry_d): Add classes field.
215 * pt.c (maybe_instantiate_noexcept): Use get_defaulted_eh_spec.
216 Remove list-of-functions handling.
217 * typeck2.c (merge_exception_specifiers): Remove list-of-functions
218 handling and FN parameter.
219 * typeck.c (merge_types): Adjust.
220
221 2014-04-28 Paolo Carlini <paolo.carlini@oracle.com>
222
223 PR c++/59120
224 * parser.c (cp_parser_alias_declaration): Check return value of
225 cp_parser_require.
226
227 2014-04-24 Jakub Jelinek <jakub@redhat.com>
228
229 * parser.c (cp_parser_omp_atomic): Allow seq_cst before
230 atomic-clause, allow comma in between atomic-clause and
231 seq_cst.
232
233 2014-04-24 Marc Glisse <marc.glisse@inria.fr>
234
235 PR libstdc++/43622
236 * rtti.c (emit_support_tinfos): Do not iterate on
237 registered_builtin_types (partial revert).
238
239 2014-04-23 Dinar Temirbulatov <dtemirbulatov@gmail.com>
240
241 PR c++/57958
242 * semantics.c (apply_deduced_return_type): Complete non-void type
243 before estimating whether the type is aggregate.
244
245 2014-04-22 Marc Glisse <marc.glisse@inria.fr>
246
247 PR libstdc++/43622
248 * rtti.c (emit_support_tinfo_1): New function, extracted from
249 emit_support_tinfos.
250 (emit_support_tinfos): Call it and iterate on registered_builtin_types.
251
252 2014-04-22 Jakub Jelinek <jakub@redhat.com>
253
254 PR c/59073
255 * parser.c (cp_parser_omp_parallel): If cp_parser_omp_for
256 fails, don't set OM_PARALLEL_COMBINED and return NULL.
257
258 2014-04-18 Jason Merrill <jason@redhat.com>
259
260 DR 1571
261 * call.c (reference_binding): Recurse on user-defined conversion.
262
263 PR c++/60872
264 * call.c (standard_conversion): Don't try to apply restrict to void.
265
266 2014-04-16 Marc Glisse <marc.glisse@inria.fr>
267
268 * decl.c (reshape_init_r): Handle a single element of vector type.
269
270 2014-04-16 Patrick Palka <patrick@parcs.ath.cx>
271
272 PR c++/60765
273 * decl2.c (cplus_decl_attributes): Handle
274 pointer-to-member-function declarations.
275
276 2014-04-16 Patrick Palka <patrick@parcs.ath.cx>
277
278 PR c++/60764
279 * call.c (build_user_type_coversion): Use build_dummy_object
280 to create the placeholder object for a constructor method call.
281 (build_special_member_call): Likewise.
282 (build_over_call): Check for the placeholder object with
283 is_dummy_object.
284 (build_new_method_call_1): Likewise. Don't attempt to resolve
285 a dummy object for a constructor method call.
286
287 2014-04-16 Paul Pluzhnikov <ppluzhnikov@google.com>
288
289 PR c++/59295
290 * friend.c (add_friend, make_friend_class): Move repeated friend
291 warning under Wredundant_decls.
292
293 2014-04-15 Paolo Carlini <paolo.carlini@oracle.com>
294
295 * decl.c (duplicate_decls): Remove redundant TYPE_NAME use.
296 * name-lookup.c (pushdecl_maybe_friend_1): Likewise.
297 (do_class_using_decl): Likewise.
298 * mangle.c (dump_substitution_candidates): Use TYPE_NAME_STRING.
299
300 2014-04-15 Jakub Jelinek <jakub@redhat.com>
301
302 PR plugins/59335
303 * Make-lang.h (CP_PLUGIN_HEADERS): Add type-utils.h.
304
305 2014-04-14 Paolo Carlini <paolo.carlini@oracle.com>
306
307 * cp-tree.h (TYPE_IDENTIFIER): Remove declaration.
308
309 2014-04-14 Paolo Carlini <paolo.carlini@oracle.com>
310
311 * pt.c (mark_template_parm): Use template_parm_level_and_index.
312
313 2014-04-11 Jason Merrill <jason@redhat.com>
314
315 * parser.h (struct cp_token): Rename ambiguous_p to error_reported.
316 * parser.c: Adjust.
317 (cp_lexer_get_preprocessor_token): Always clear it.
318 (cp_parser_lambda_expression): Use it to avoid duplicate diagnostics.
319
320 DR 1467
321 PR c++/51747
322 * decl.c (reshape_init_r): Handle a single element of class type.
323
324 DR 1338
325 * decl.c (cxx_init_decl_processing): Set DECL_IS_MALLOC on
326 built-in operator new.
327
328 2014-04-11 Paolo Carlini <paolo.carlini@oracle.com>
329
330 PR c++/58600
331 * name-lookup.c (parse_using_directive): Return early if the
332 attribs argument is error_mark_node; use get_attribute_name.
333
334 2014-04-11 Jason Merrill <jason@redhat.com>
335
336 DR 1030
337 PR c++/51253
338 * cp-tree.h (CALL_EXPR_LIST_INIT_P): New.
339 * call.c (struct z_candidate): Add flags field.
340 (add_candidate): Add flags parm.
341 (add_function_candidate, add_conv_candidate, build_builtin_candidate)
342 (add_template_candidate_real): Pass it.
343 (build_over_call): Set CALL_EXPR_LIST_INIT_P.
344 * tree.c (build_aggr_init_expr): Copy it.
345 * semantics.c (simplify_aggr_init_expr): Preevaluate args if it's set.
346
347 2014-04-10 Richard Biener <rguenther@suse.de>
348 Jakub Jelinek <jakub@redhat.com>
349
350 PR ipa/60761
351 * error.c (dump_decl) <case FUNCTION_DECL>: If
352 DECL_LANG_SPECIFIC is NULL, but DECL_ABSTRACT_ORIGIN is not,
353 recurse on DECL_ABSTRACT_ORIGIN instead of printing
354 <built-in>.
355
356 2014-04-09 Fabien Chêne <fabien@gcc.gnu.org>
357
358 * pt.c (check_template_variable): Check for the return of pedwarn
359 before emitting a note.
360 * parser.c (cp_parser_lambda_introducer): Likewise.
361
362 2014-04-08 Paolo Carlini <paolo.carlini@oracle.com>
363
364 PR c++/59115
365 * pt.c (process_template_parm): For an invalid non-type parameter
366 only set TREE_TYPE to error_mark_node.
367 (push_inline_template_parms_recursive, comp_template_parms,
368 redeclare_class_template, coerce_template_template_parm,
369 coerce_template_template_parms, unify): Use error_operand_p.
370
371 2014-04-08 Nathan Sidwell <nathan@codesourcery.com>
372
373 * class.c (check_bases_and_members): Warn about non-virtual dtors
374 in public bases only. Check warn_ecpp before complaining about
375 non-polymorphic bases.
376
377 2014-04-04 Fabien Chêne <fabien@gcc.gnu.org>
378
379 * decl.c (duplicate_decls): Check for the return of warning_at
380 before emitting a note.
381 (warn_misplaced_attr_for_class_type): Likewise.
382 (check_tag_decl): Likewise.
383
384 2014-04-04 Paolo Carlini <paolo.carlini@oracle.com>
385
386 PR c++/58207
387 * semantics.c (sort_constexpr_mem_initializers): Robustify loop.
388
389 2014-04-04 Patrick Palka <patrick@parcs.ath.cx>
390
391 PR c++/44613
392 * semantics.c (add_stmt): Set STATEMENT_LIST_HAS_LABEL.
393 * decl.c (cp_finish_decl): Create a new BIND_EXPR before
394 instantiating a variable-sized type.
395
396 PR c++/21113
397 * decl.c (decl_jump_unsafe): Consider variably-modified decls.
398
399 2014-04-04 Fabien Chêne <fabien@gcc.gnu.org>
400
401 * class.c (find_abi_tags_r): Check for the return of warning
402 before emitting a note.
403 (one_inherited_ctor): Likewise.
404
405 2014-04-04 Fabien Chêne <fabien@gcc.gnu.org>
406
407 * decl.c (duplicate_decls): Check for the return of permerror
408 before emitting a note.
409
410 2014-04-03 Nathan Sidwell <nathan@codesourcery.com>
411
412 * class.c (accessible_nvdtor_p): New.
413 (check_bases): Don't check base destructor here ...
414 (check_bases_and_members): ... check them here. Trigger on
415 Wnon-virtual-dtor flag.
416 (finish_struct_1): Use accessible_nvdtor_p.
417
418 2014-04-01 Jason Merrill <jason@redhat.com>
419
420 * pt.c (process_partial_specialization): Say "not deducible"
421 rather than "not used". Use inform.
422
423 PR c++/60374
424 * pt.c (coerce_template_parms): Check that the pack expansion
425 pattern works with the first matching parameter.
426
427 2014-04-01 Fabien Chêne <fabien@gcc.gnu.org>
428
429 * init.c (perform_member_init): Homogenize uninitialized
430 diagnostics.
431
432 2014-04-01 Jason Merrill <jason@redhat.com>
433
434 PR c++/60708
435 * call.c (build_array_conv): Call complete_type.
436
437 PR c++/60713
438 * typeck2.c (PICFLAG_SIDE_EFFECTS): New.
439 (picflag_from_initializer): Return it.
440 (process_init_constructor): Handle it.
441
442 PR c++/60642
443 * decl2.c (is_late_template_attribute): Don't defer abi_tag.
444 * mangle.c (write_unqualified_name): Fix abi_tag on templates.
445 * pt.c (get_template_info): Handle NAMESPACE_DECL.
446 (most_general_template): Handle more kinds of template.
447 * tree.c (handle_abi_tag_attribute): Ignore abi_tag on template
448 instantiations and specializations.
449
450 2014-03-31 Patrick Palka <patrick@parcs.ath.cx>
451
452 PR c++/44859
453 * typeck.c (maybe_warn_about_returning_address_of_local): Unwrap
454 COMPONENT_REFs and ARRAY_REFs sooner.
455
456 2014-03-29 Adam Butcher <adam@jessamine.co.uk>
457
458 PR c++/60626
459 * parser.c (cp_parser_init_declarator): Handle erroneous generic type
460 usage in non-functions with pushed scope.
461
462 2014-03-28 Adam Butcher <adam@jessamine.co.uk>
463
464 PR c++/60573
465 * name-lookup.h (cp_binding_level): New transient field defining_class_p
466 to indicate whether a scope is in the process of defining a class.
467 * semantics.c (begin_class_definition): Set defining_class_p.
468 * name-lookup.c (leave_scope): Reset defining_class_p.
469 * parser.c (synthesize_implicit_template_parm): Use cp_binding_level::
470 defining_class_p rather than TYPE_BEING_DEFINED as the predicate for
471 unwinding to class-defining scope to handle the erroneous definition of
472 a generic function of an arbitrarily nested class within an enclosing
473 class.
474
475 2014-03-26 Fabien Chêne <fabien@gcc.gnu.org>
476
477 PR c++/52369
478 * method.c (walk_field_subobs): Improve the diagnostic
479 locations for both REFERENCE_TYPEs and non-static const members.
480 * init.c (diagnose_uninitialized_cst_or_ref_member): Use %q#D
481 instead of %qD to be consistent with the c++11 diagnostic.
482
483 2014-03-25 Jason Merrill <jason@redhat.com>
484
485 PR c++/60566
486 PR c++/58678
487 * class.c (build_vtbl_initializer): Handle abstract dtors here.
488 * search.c (get_pure_virtuals): Not here.
489
490 PR c++/60375
491 * parser.c (cp_parser_lambda_expression): Don't parse the body of
492 a lambda in unevaluated context.
493
494 PR c++/60628
495 * decl.c (create_array_type_for_decl): Complain about array of auto.
496
497 2014-03-25 Jakub Jelinek <jakub@redhat.com>
498
499 PR c++/60331
500 * semantics.c (potential_constant_expression_1): Handle
501 DECL_EXPR.
502
503 2014-03-24 Adam Butcher <adam@jessamine.co.uk>
504
505 PR c++/60627
506 * parser.c (cp_parser_parameter_declaration_clause): Prevent 'auto' from
507 introducing an implicit function template parameter within an explicit
508 instantiation.
509
510 2014-03-22 Jason Merrill <jason@redhat.com>
511
512 PR c++/60574
513 * decl.c (grokdeclarator): Change permerror about 'virtual auto'
514 to error.
515
516 2014-03-21 Paolo Carlini <paolo.carlini@oracle.com>
517
518 PR c++/60384
519 * name-lookup.c (push_class_level_binding_1): Check identifier_p
520 on the name argument.
521
522 2014-03-20 Jakub Jelinek <jakub@redhat.com>
523
524 PR c++/60572
525 * init.c (build_zero_init_1): Ignore fields with error_mark_node
526 type.
527
528 2014-03-19 Paolo Carlini <paolo.carlini@oracle.com>
529
530 PR c++/51474
531 * call.c (build_new_method_call_1): Handle pure virtuals called by
532 NSDMIs too.
533
534 2014-03-17 Adam Butcher <adam@jessamine.co.uk>
535
536 PR c++/60390
537 * parser.c (cp_parser_member_declaration): Don't allow
538 finish_fully_implicit_template to consider friend declarations to be
539 class member templates.
540 (synthesize_implicit_template_parm): Handling winding back through class
541 scope to the class being defined in order to inject a template argument
542 list.
543
544 PR c++/60391
545 * parser.c (cp_parser_skip_to_end_of_block_or_statement): Unwind generic
546 function scope as per cp_parser_skip_to_end_of_statement.
547
548 2014-03-17 Paolo Carlini <paolo.carlini@oracle.com>
549
550 PR c++/59571
551 * typeck2.c (check_narrowing): Use fold_non_dependent_expr_sfinae.
552
553 2014-03-14 Jason Merrill <jason@redhat.com>
554
555 PR c++/60532
556 PR c++/58678
557 * search.c (get_pure_virtuals): Handle abstract dtor here.
558 (dfs_get_pure_virtuals): Not here.
559
560 PR c++/58678
561 * search.c (dfs_get_pure_virtuals): Treat the destructor of an
562 abstract class as pure.
563
564 2014-03-13 Paolo Carlini <paolo.carlini@oracle.com>
565
566 PR c++/60383
567 * pt.c (maybe_process_partial_specialization): Check return value
568 of check_specialization_namespace.
569
570 2014-03-13 Paolo Carlini <paolo.carlini@oracle.com>
571
572 PR c++/60254
573 * semantics.c (finish_static_assert): Call cxx_constant_value only
574 if require_potential_rvalue_constant_expression returns true.
575
576 2014-03-11 Paolo Carlini <paolo.carlini@oracle.com>
577
578 PR c++/60389
579 * method.c (get_inherited_ctor): New.
580 * cp-tree.h (get_inherited_ctor): Declare it.
581 * semantics.c (is_valid_constexpr_fn): Use it.
582
583 2014-03-10 Jason Merrill <jason@redhat.com>
584
585 PR c++/60367
586 * call.c (convert_default_arg): Remove special handling for
587 CONSTRUCTOR.
588
589 PR c++/53492
590 * parser.c (cp_parser_class_head): Also check PRIMARY_TEMPLATE_P
591 when deciding whether to call push_template_decl for a member class.
592 * pt.c (push_template_decl_real): Return after wrong levels error.
593
594 2014-03-08 Adam Butcher <adam@jessamine.co.uk>
595
596 PR c++/60033
597 * pt.c (tsubst_copy): When retrieving a capture pack from a generic
598 lambda, remove the lambda's own template argument list prior to fetching
599 the specialization.
600
601 PR c++/60393
602 * parser.c (cp_parser_parameter_declaration_clause): Move generic
603 function template unwinding on error into a more general location, ...
604 (cp_parser_skip_to_end_of_statement): ... here.
605
606 2014-03-07 Jason Merrill <jason@redhat.com>
607
608 * Make-lang.in (check_g++_parallelize): Split dg.exp.
609
610 * parser.c (cp_parser_type_id_1): Only allow 'auto' in C++1y if
611 we're in a trailing return type.
612
613 * typeck.c (comp_template_parms_position): 'auto' and
614 'decltype(auto)' are different from real template parms.
615
616 * parser.c (cp_parser_using_declaration): Consume the semicolon
617 after bare parameter pack error.
618
619 * cp-tree.h (REF_PARENTHESIZED_P): New.
620 * semantics.c (force_paren_expr): Set it.
621 * pt.c (do_auto_deduction): Check it.
622 (tsubst) [COMPONENT_REF]: Copy it.
623 * typeck.c (maybe_warn_about_useless_cast): Don't strip dereference.
624
625 * decl.c (create_array_type_for_decl): Only warn about invalid
626 C++1y VLA if flag_iso or warn_vla>0.
627 (grokdeclarator): Likewise.
628 * pt.c (tsubst): Likewise.
629 * semantics.c (finish_decltype_type): Likewise.
630 * typeck.c (cxx_sizeof_or_alignof_type): Likewise.
631 (cp_build_addr_expr_1): Likewise.
632 * init.c (build_new_1): Improve diagnostics.
633
634 2014-03-07 Paolo Carlini <paolo.carlini@oracle.com>
635
636 PR c++/58609
637 * decl.c (check_initializer): Return NULL_TREE after error;
638 consistently use inform.
639
640 2014-03-07 Paolo Carlini <paolo.carlini@oracle.com>
641
642 * decl.c (check_initializer): Remove dead code.
643
644 2014-03-06 Marek Polacek <polacek@redhat.com>
645
646 PR c/60197
647 * typeck.c (check_return_expr): Call contains_cilk_spawn_stmt instead
648 of checking tree code.
649
650 2014-03-06 Paolo Carlini <paolo.carlini@oracle.com>
651
652 * parser.c (cp_lexer_set_source_position): New.
653 (cp_parser_mem_initializer): Use it.
654 (cp_parser_postfix_open_square_expression): Likewise.
655 (cp_parser_parenthesized_expression_list): Likewise.
656 (cp_parser_new_initializer): Likewise.
657 (cp_parser_jump_statement): Likewise.
658 (cp_parser_initializer): Likewise.
659 (cp_parser_functional_cast): Likewise.
660
661 2014-03-05 Jason Merrill <jason@redhat.com>
662
663 PR c++/60409
664 * semantics.c (force_paren_expr): Only add a PAREN_EXPR to a
665 dependent expression.
666
667 PR c++/60361
668 * parser.c (cp_parser_template_id): Don't set up a CPP_TEMPLATE_ID
669 if re-parsing might succeed.
670 * semantics.c (finish_id_expression): Use of a parameter outside
671 the function body is a parse error.
672
673 * parser.c (cp_parser_mem_initializer): Set input_location
674 properly for init-list warning.
675 (cp_parser_postfix_open_square_expression): Likewise.
676 (cp_parser_parenthesized_expression_list): Likewise.
677 (cp_parser_new_initializer): Likewise.
678 (cp_parser_jump_statement): Likewise.
679 (cp_parser_initializer): Likewise.
680 (cp_parser_functional_cast): Likewise.
681
682 2014-03-04 Jason Merrill <jason@redhat.com>
683
684 PR c++/60417
685 * typeck2.c (process_init_constructor_record): Set
686 CONSTRUCTOR_IS_DIRECT_INIT on {} for omitted initializers.
687
688 PR c++/60415
689 PR c++/54359
690 * parser.c (cp_parser_direct_declarator): Set declarator to
691 cp_error_declarator on invalid qualified-id.
692
693 2014-03-04 Paolo Carlini <paolo.carlini@oracle.com>
694
695 PR c++/60376
696 * parser.c (cp_parser_using_declaration): Early return when
697 cp_parser_nested_name_specifier errors out.
698
699 2014-03-01 Adam Butcher <adam@jessamine.co.uk>
700
701 PR c++/60377
702 * parser.c (cp_parser_parameter_declaration_clause): Unwind generic
703 function scope on parse error in function parameter list.
704
705 2014-03-01 Paolo Carlini <paolo.carlini@oracle.com>
706
707 * method.c (implicitly_declare_fn): Remove redundant
708 DECL_TEMPLATE_RESULT and STRIP_TEMPLATE uses.
709 * semantics.c (is_instantiation_of_constexpr): Likewise.
710 * error.c (dump_function_decl): Likewise.
711
712 2014-03-01 Jason Merrill <jason@redhat.com>
713
714 PR c++/60379
715 * semantics.c (begin_maybe_infinite_loop): Use
716 fold_non_dependent_expr_sfinae.
717
718 2014-02-28 Jason Merrill <jason@redhat.com>
719
720 PR c++/58845
721 * typeck.c (cp_build_binary_op): Sorry on vector&&vector.
722
723 2014-02-28 Paolo Carlini <paolo.carlini@oracle.com>
724
725 PR c++/58610
726 * cp-tree.h (DECL_DELETED_FN): Use LANG_DECL_FN_CHECK.
727 * call.c (print_z_candidate): Remove STRIP_TEMPLATE use.
728 * lambda.c (maybe_add_lambda_conv_op): Likewise.
729
730 2014-02-27 Paolo Carlini <paolo.carlini@oracle.com>
731
732 PR c++/60253
733 * call.c (convert_arg_to_ellipsis): Return error_mark_node after
734 error_at.
735
736 2014-02-27 Jason Merrill <jason@redhat.com>
737
738 PR c++/60353
739 PR c++/55877
740 * decl2.c (tentative_decl_linkage): Don't mess with functions that
741 are not yet defined.
742
743 2014-02-26 Jason Merrill <jason@redhat.com>
744
745 PR c++/60347
746 PR lto/53808
747 * class.c (clone_function_decl): Don't note_vague_linkage_fn.
748 * init.c (build_vtbl_address): Do it here.
749
750 PR c++/59231
751 PR c++/11586
752 PR c++/14710
753 PR c++/57132
754 * pt.c (struct warning_sentinel): New.
755 (tsubst_copy_and_build): Use it instead of
756 c_inhibit_evaluation_warnings.
757 * typeck.c (maybe_warn_about_useless_cast): Remove
758 c_inhibit_evaluation_warnings check.
759
760 PR c++/54440
761 * pt.c (get_template_parm_index): New.
762 (fixed_parameter_pack_p_1, fixed_parameter_pack_p): New.
763 (process_template_parm): Allow bare packs in template template
764 parm template parms.
765 (coerce_template_parameter_pack): Handle fixed template template
766 parm packs and fixed packs not at the end of the parm list.
767 (coerce_template_parms): Handle template parm packs not at the end
768 of the parm list.
769 (gen_elem_of_pack_expansion_instantiation): Handle a decl expansion.
770
771 PR c++/60182
772 * pt.c (unify): Ignore alias templates when deducing a template
773 template parameter.
774
775 PR c++/60345
776 Revert:
777 DR 1571
778 * call.c (reference_binding): Recurse on user-defined conversion.
779 (convert_like_real) [ck_ref_bind]: Explain cv-qual mismatch.
780
781 2014-02-25 Jason Merrill <jason@redhat.com>
782
783 DR 1571
784 * call.c (reference_binding): Recurse on user-defined conversion.
785 (convert_like_real) [ck_ref_bind]: Explain cv-qual mismatch.
786
787 * call.c (print_conversion_rejection): Handle n_arg of -2.
788 (build_user_type_conversion_1): Pass it.
789
790 PR c++/55877
791 * decl2.c (no_linkage_error): Handle C++98 semantics.
792 (reset_type_linkage): Move from decl.c.
793 (reset_type_linkage_1, reset_type_linkage_2, bt_reset_linkage_1)
794 (bt_reset_linkage_2, reset_decl_linkage): New.
795 (tentative_decl_linkage): Factor out of expand_or_defer_fn_1.
796 (cp_write_global_declarations): Move condition into no_linkage_error.
797 * decl.c (grokfndecl, grokvardecl): Use no_linkage_error.
798 * semantics.c (expand_or_defer_fn_1): Factor out
799 tentative_decl_linkage.
800 * cp-tree.h: Adjust.
801
802 * decl2.c (finish_static_data_member_decl): Diagnose static data
803 member in unnamed class.
804 * class.c (finish_struct_anon_r): Avoid redundant diagnostic.
805
806 PR lto/53808
807 * class.c (clone_function_decl): Call note_vague_linkage_fn for
808 defaulted virtual dtor.
809
810 DR 1286
811 PR c++/60328
812 * pt.c (get_underlying_template): Fix equivalence calculation.
813
814 2014-02-25 Adam Butcher <adam@jessamine.co.uk>
815
816 PR c++/60311
817 * parser.c (function_being_declared_is_template_p): Return false when
818 processing a template parameter list.
819 (cp_parser_parameter_declaration_clause): Don't set
820 auto_is_implicit_function_template_parm_p when processing a
821 template parameter list.
822
823 * parser.c (synthesize_implicit_template_parm): Inject new template
824 argument list appropriately when a generic member function
825 of a class template is declared out-of-line.
826
827 PR c++/60065
828 * parser.c (cp_parser_direct_declarator): Don't save and
829 restore num_template_parameter_lists around call to
830 cp_parser_parameter_declaration_list.
831 (function_being_declared_is_template_p): New predicate.
832 (cp_parser_parameter_declaration_list): Use
833 function_being_declared_is_template_p as predicate for
834 inspecting current function template parameter list length
835 rather than num_template_parameter_lists.
836
837 2014-02-24 Jason Merrill <jason@redhat.com>
838
839 PR c++/60146
840 * pt.c (tsubst_omp_for_iterator): Don't let substitution of the
841 DECL_EXPR initialize a non-class iterator.
842
843 PR c++/60312
844 * parser.c (cp_parser_template_type_arg): Check for invalid 'auto'.
845
846 2014-02-21 Jason Merrill <jason@redhat.com>
847
848 PR c++/58170
849 * parser.c (cp_parser_type_name): Always check dependency.
850 (cp_parser_type_specifier_seq): Call
851 cp_parser_parse_and_diagnose_invalid_type_name.
852
853 PR c++/60108
854 * semantics.c (expand_or_defer_fn_1): Check DECL_DEFAULTED_FN.
855
856 PR c++/60185
857 * parser.c (cp_parser_default_argument): Clear
858 current_class_ptr/current_class_ref like tsubst_default_argument.
859
860 PR c++/60252
861 * lambda.c (maybe_resolve_dummy): Check lambda_function rather
862 than current_binding_level.
863
864 PR c++/60186
865 * typeck2.c (massage_init_elt): Call fold_non_dependent_expr_sfinae.
866
867 PR c++/60187
868 * parser.c (cp_parser_enum_specifier): Call
869 check_for_bare_parameter_packs.
870
871 PR c++/59347
872 * pt.c (tsubst_decl) [TYPE_DECL]: Don't try to instantiate an
873 erroneous typedef.
874
875 PR c++/60241
876 * pt.c (lookup_template_class_1): Update DECL_TEMPLATE_INSTANTIATIONS
877 of the partial instantiation, not the most general template.
878 (maybe_process_partial_specialization): Reassign everything on
879 that list.
880
881 PR c++/60216
882 * pt.c (register_specialization): Copy DECL_DELETED_FN to clones.
883 (check_explicit_specialization): Don't clone.
884
885 PR c++/60219
886 * pt.c (coerce_template_parms): Bail if argument packing fails.
887
888 PR c++/60224
889 * decl.c (cp_complete_array_type, maybe_deduce_size_from_array_init):
890 Don't get confused by a CONSTRUCTOR that already has a type.
891
892 PR c++/60227
893 * call.c (build_array_conv): Don't crash on VLA.
894
895 PR c++/60248
896 * mangle.c (mangle_decl): Don't make an alias for a TYPE_DECL.
897
898 PR c++/60252
899 * lambda.c (maybe_resolve_dummy): Don't try to capture this
900 in declaration context.
901
902 DR 1591
903 PR c++/60051
904 * pt.c (unify): Only unify if deducible. Handle 0-length list.
905
906 PR c++/60250
907 * parser.c (cp_parser_direct_declarator): Don't wrap a
908 type-dependent expression in a NOP_EXPR.
909
910 PR c++/60251
911 * lambda.c (is_normal_capture_proxy): Handle VLA capture.
912
913 PR c++/60167
914 PR c++/60222
915 PR c++/58606
916 * parser.c (cp_parser_template_argument): Restore dereference.
917 * pt.c (template_parm_to_arg): Dereference non-pack expansions too.
918 (process_partial_specialization): Handle deref.
919 (unify): Likewise.
920
921 2014-02-21 Adam Butcher <adam@jessamine.co.uk>
922
923 PR c++/60052
924 PR c++/60053
925 * parser.c (cp_parser_parameter_declaration_list): Correctly reset
926 implicit_template_scope upon leaving an out-of-line generic member
927 function definition.
928
929 2014-02-20 Kai Tietz <ktietz@redhat.com>
930
931 PR c++/58873
932 * parser.c (cp_parser_functional_cast): Treat NULL_TREE
933 valued type argument as error_mark_node.
934
935 PR c++/58835
936 * semantics.c (finish_fname): Handle error_mark_node.
937
938 2014-02-19 Jason Merrill <jason@redhat.com>
939
940 PR c++/60046
941 * pt.c (maybe_instantiate_noexcept): Don't instantiate exception
942 spec from template context.
943
944 2014-02-19 Jakub Jelinek <jakub@redhat.com>
945
946 PR debug/56563
947 * cp-objcp-common.c (cp_function_decl_explicit_p): Remove
948 FUNCTION_FIRST_USER_PARMTYPE (decl) != void_list_node check.
949
950 PR c++/60267
951 * pt.c (tsubst_expr): Handle ANNOTATE_EXPR.
952
953 2014-02-18 Paolo Carlini <paolo.carlini@oracle.com>
954
955 PR c++/60225
956 * semantics.c (ensure_literal_type_for_constexpr_object): Use
957 strip_array_types.
958
959 2014-02-18 Paolo Carlini <paolo.carlini@oracle.com>
960
961 PR c++/60215
962 * semantics.c (cxx_eval_constant_expression, [COMPONENT_REF]):
963 During error recovery allow_non_constant may be false.
964
965 2014-02-18 Adam Butcher <adam@jessamine.co.uk>
966
967 PR c++/60190
968 * parser.c (cp_parser_lambda_declarator_opt): Pop template parameter
969 scope whenever a template parameter list has been started, independent
970 of whether the function call operator was well-formed or not.
971
972 PR c++/60064
973 * parser.c (cp_parser_member_declaration): Pop fully implicit template
974 scope for generic friend declarations as well as for non-friends.
975
976 2014-02-12 Paolo Carlini <paolo.carlini@oracle.com>
977
978 PR c++/60047
979 * method.c (implicitly_declare_fn): A constructor of a class with
980 virtual base classes isn't constexpr (7.1.5p4).
981
982 2014-02-05 Jan Hubicka <hubicka@ucw.cz
983
984 * parser.c (synthesize_implicit_template_parm): Use grow_tree_vec.
985
986 2014-02-05 Jakub Jelinek <jakub@redhat.com>
987
988 PR c++/58703
989 * parser.c (cp_parser_omp_declare_reduction): Save and free
990 declarator_obstack.
991
992 2014-02-03 Marc Glisse <marc.glisse@inria.fr>
993
994 PR c++/53017
995 PR c++/59211
996 * tree.c (handle_init_priority_attribute): Call default_conversion on
997 the attribute argument.
998
999 2014-02-03 Paolo Carlini <paolo.carlini@oracle.com>
1000
1001 PR c++/58871
1002 * method.c (synthesized_method_walk): If vbases is non-null but
1003 is_empty is true, likewise don't worry about the virtual bases.
1004
1005 2014-02-01 Paolo Carlini <paolo.carlini@oracle.com>
1006
1007 PR c++/51219
1008 * typeck2.c (process_init_constructor_record): Just skip unnamed
1009 bit-fields.
1010
1011 2014-01-31 Jason Merrill <jason@redhat.com>
1012
1013 PR c++/59469
1014 * pt.c (mark_decl_instantiated): Call mark_needed.
1015
1016 PR c++/58672
1017 * decl2.c (handle_tls_init): Handle null init fn.
1018
1019 PR c++/55800
1020 * decl2.c (get_tls_init_fn): Copy DECL_EXTERNAL from the variable.
1021
1022 2014-01-31 Paolo Carlini <paolo.carlini@oracle.com>
1023
1024 PR c++/59082
1025 * class.c (build_vfield_ref): Early return error_mark_node if
1026 TYPE_VFIELD (type) is null.
1027 (build_base_path): Check return value of build_vfield_ref.
1028
1029 2014-01-31 Jason Merrill <jason@redhat.com>
1030
1031 PR c++/59646
1032 * call.c (convert_like_real) [ck_aggr]: Set TARGET_EXPR_LIST_INIT_P.
1033 [ck_list]: Check for error_mark_node.
1034 (build_aggr_conv): Set LOOKUP_NO_NARROWING and check_narrowing.
1035
1036 PR c++/57043
1037 * pt.c (fn_type_unification): Don't do DEDUCE_EXACT check
1038 during partial ordering.
1039
1040 2014-01-31 Marek Polacek <polacek@redhat.com>
1041
1042 PR c/59963
1043 * typeck.c (build_function_call_vec): Add dummy arg_loc parameter.
1044
1045 2014-01-30 Jason Merrill <jason@redhat.com>
1046
1047 PR c++/57899
1048 * cp-tree.h (struct saved_scope): Add x_local_specializations.
1049 (local_specializations): New macro.
1050 * pt.c (local_specializations): Remove variable.
1051
1052 2014-01-30 Richard Sandiford <rdsandiford@googlemail.com>
1053
1054 PR c++/58708
1055 * parser.c (make_string_pack): Use double_int::from_buffer.
1056
1057 2014-01-30 Marek Polacek <polacek@redhat.com>
1058
1059 PR c/59940
1060 * typeck.c (build_ptrmemfunc1): Call convert_and_check with
1061 input_location.
1062 * cvt.c (cp_convert_and_check): Call warnings_for_convert_and_check
1063 with input_location.
1064 * call.c (build_conditional_expr_1): Call unsafe_conversion_p with
1065 loc parameter.
1066
1067 2014-01-30 Paolo Carlini <paolo.carlini@oracle.com>
1068
1069 PR c++/58843
1070 * typeck.c (lookup_destructor): Check dtor_type for error_mark_node.
1071
1072 2014-01-30 Paolo Carlini <paolo.carlini@oracle.com>
1073
1074 PR c++/58649
1075 * pt.c (lookup_template_class_1): Check start_enum return value
1076 for error_mark_node.
1077
1078 2014-01-30 Paolo Carlini <paolo.carlini@oracle.com>
1079
1080 * decl.c (duplicate_decls, typename_hash, typename_compare):
1081 Use TYPE_IDENTIFIER.
1082 * error.c (dump_type): Likewise.
1083 * mangle.c (dump_substitution_candidates): Likewise.
1084
1085 2014-01-30 Jason Merrill <jason@redhat.com>
1086
1087 PR c++/59633
1088 * decl2.c (attributes_naming_typedef_ok): New.
1089 * cp-tree.h: Declare it.
1090 * decl.c (grokdeclarator): Check it.
1091 * tree.c (no_linkage_check): Handle VECTOR_TYPE.
1092
1093 2014-01-29 Jason Merrill <jason@redhat.com>
1094
1095 PR c++/59707
1096 * call.c (add_builtin_candidate): Catch dependent types.
1097
1098 PR c++/59989
1099 * pt.c (expand_template_argument_pack): Correct
1100 non_default_args_count calculation.
1101
1102 PR c++/58466
1103 * pt.c (unify_pack_expansion): Call expand_template_argument_pack.
1104
1105 PR c++/59956
1106 * friend.c (do_friend): Pass the TEMPLATE_DECL to add_friend if we
1107 have a friend template in a class template.
1108 * pt.c (tsubst_friend_function): Look through it.
1109 (push_template_decl_real): A friend member template is
1110 primary.
1111
1112 2014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
1113
1114 PR c++/58846
1115 * decl.c (get_dso_handle_node): Don't crash if dso_handle_node
1116 == error_mark_node.
1117
1118 2014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
1119
1120 PR c++/58674
1121 * pt.c (instantiate_template_1): Check for error_mark_node the second
1122 argument too.
1123
1124 2014-01-29 Jason Merrill <jason@redhat.com>
1125
1126 PR c++/59916
1127 * optimize.c (maybe_thunk_body): Build a RETURN_EXPR for
1128 cdtor_returns_this case.
1129
1130 PR c++/59315
1131 * decl.c (cxx_maybe_build_cleanup): Call mark_used.
1132
1133 2014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
1134
1135 PR c++/58702
1136 * semantics.c (finish_omp_reduction_clause): Check type for
1137 error_mark_node.
1138
1139 2014-01-28 Jason Merrill <jason@redhat.com>
1140
1141 PR c++/59791
1142 * pt.c (tsubst_decl) [VAR_DECL]: Allow in unevaluated context.
1143 (tsubst_copy): Use it if lookup fails.
1144
1145 PR c++/59818
1146 * pt.c (tsubst_function_type): Make sure we keep the same function
1147 quals.
1148
1149 PR c++/58701
1150 * semantics.c (build_anon_member_initialization): Stop walking
1151 when we run out of COMPONENT_REFs.
1152
1153 PR c++/58632
1154 * decl.c (lookup_and_check_tag): Ignore template parameters if
1155 scope == ts_current.
1156 * pt.c (check_template_shadow): Don't complain about the injected
1157 class name.
1158
1159 * decl.c (duplicate_decls): Tweak.
1160
1161 PR c++/53756
1162 * mangle.c (write_unqualified_name): Handle operator auto.
1163
1164 2014-01-27 Jason Merrill <jason@redhat.com>
1165
1166 PR c++/59823
1167 Core DR 1138
1168 * call.c (reference_binding): Pass LOOKUP_NO_TEMP_BIND for
1169 list-initialization. A conversion to rvalue ref that involves
1170 an lvalue-rvalue conversion is bad.
1171 (convert_like_real): Give helpful error message.
1172
1173 PR c++/54652
1174 * decl.c (duplicate_decls): Always use oldtype for TYPE_DECL.
1175
1176 PR c++/58504
1177 * pt.c (tsubst_copy_and_build) [TRAIT_EXPR]: Use tsubst for
1178 types.
1179
1180 PR c++/58606
1181 * pt.c (template_parm_to_arg): Call convert_from_reference.
1182 (tsubst_template_arg): Don't strip reference refs.
1183
1184 PR c++/58639
1185 * call.c (build_aggr_conv): Reject value-initialization of reference.
1186
1187 PR c++/58812
1188 PR c++/58651
1189 * call.c (convert_like_real): Give helpful error about excess braces
1190 for ck_rvalue of scalar type.
1191
1192 Core DR 1288
1193 * call.c (reference_binding): Only elide braces if the single
1194 element is reference-related.
1195
1196 PR c++/58814
1197 * typeck.c (cp_build_modify_expr): Make the RHS an rvalue before
1198 stabilizing.
1199
1200 PR c++/58837
1201 * typeck.c (cp_truthvalue_conversion): Use explicit comparison for
1202 FUNCTION_DECL.
1203
1204 PR c++/59097
1205 * decl.c (compute_array_index_type): Don't call
1206 maybe_constant_value for a non-integral expression.
1207
1208 2014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com>
1209
1210 * call.c (magic_varargs_p): Replaced flag_enable_cilkplus with
1211 flag_cilkplus.
1212 * cp-gimplify.c (cp_genericize): Likewise.
1213 * decl.c (grokfndecl): Likewise.
1214 * parser.c (cp_parser_postfix_expression): Likewise.
1215 (cp_parser_postfix_open_square_expression): Likewise.
1216 (cp_parser_direct_declarator): Likewise.
1217 (is_cilkplus_vector_p): Likewise.
1218 (cp_parser_omp_clause_name): Likewise.
1219 (cp_parser_omp_all_clauses): Likewise.
1220 * pt.c (apply_late_template_attributes): Likewise.
1221 * typeck.c (cp_build_array_ref): Likewise.
1222 (cp_build_compound_expr): Likewise.
1223 (check_return_expr): Likewise.
1224
1225 2014-01-24 Jason Merrill <jason@redhat.com>
1226
1227 PR c++/58550
1228 * decl.c (grokdeclarator): Turn pedwarn about auto return type in
1229 c++11 into error.
1230
1231 PR c++/59886
1232 PR c++/59659
1233 * typeck2.c (process_init_constructor_array): Don't create
1234 RANGE_EXPR yet.
1235
1236 2014-01-24 Jakub Jelinek <jakub@redhat.com>
1237
1238 * typeck2.c (split_nonconstant_init_1): Fix num_split_elts
1239 handling for RANGE_ARRAY case.
1240
1241 2014-01-24 Paolo Carlini <paolo.carlini@oracle.com>
1242
1243 PR c++/57524
1244 * name-lookup.c (push_using_directive): Use timevar_cond_start.
1245
1246 2014-01-23 Marek Polacek <polacek@redhat.com>
1247
1248 PR c/59846
1249 * typeck.c (cp_build_binary_op): Pass location to shorten_compare.
1250
1251 2014-01-23 Marek Polacek <polacek@redhat.com>
1252
1253 PR c/58346
1254 * typeck.c (pointer_diff): Give an error on arithmetic on pointer to
1255 an empty aggregate.
1256
1257 2014-01-23 Jason Merrill <jason@redhat.com>
1258
1259 PR c++/55189
1260 * cp-tree.h (struct language_function): Add infinite_loop and
1261 infinite_loops.
1262 (current_function_infinite_loop): New.
1263 * semantics.c (begin_maybe_infinite_loop, end_maybe_infinite_loop)
1264 (break_maybe_infinite_loop): New.
1265 (finish_while_stmt_cond, finish_while_stmt, begin_do_stmt)
1266 (finish_do_stmt, finish_for_cond, finish_for_stmt)
1267 (begin_range_for_stmt): Use them.
1268 * decl.c (finish_function): Don't warn about missing return
1269 if current_function_infinite_loop.
1270 * pt.c (instantiate_decl): Copy current_function_infinite_loop.
1271 * parser.c (cp_parser_jump_statement): Call break_maybe_infinite_loop.
1272
1273 * call.c (build_op_delete_call): Use make_tree_vector and
1274 release_tree_vector.
1275
1276 2014-01-23 Paolo Carlini <paolo.carlini@oracle.com>
1277
1278 PR c++/58980
1279 * parser.c (cp_parser_enum_specifier): Handle TYPENAME_TYPE as
1280 nested_name_specifier.
1281
1282 2014-01-23 Balaji V. Iyer <balaji.v.iyer@intel.com>
1283
1284 * parser.c (cp_parser_direct_declarator): When Cilk Plus is enabled
1285 see if there is an attribute after function decl. If so, then
1286 parse them now.
1287 (cp_parser_late_return_type_opt): Handle parsing of Cilk Plus SIMD
1288 enabled function late parsing.
1289 (cp_parser_gnu_attribute_list): Parse all the tokens for the vector
1290 attribute for a SIMD-enabled function.
1291 (cp_parser_omp_all_clauses): Skip parsing to the end of pragma when
1292 the function is used by SIMD-enabled function (indicated by NULL
1293 pragma token). Added 3 new clauses: PRAGMA_CILK_CLAUSE_MASK,
1294 PRAGMA_CILK_CLAUSE_NOMASK and PRAGMA_CILK_CLAUSE_VECTORLENGTH
1295 (cp_parser_cilk_simd_vectorlength): Modified this function to handle
1296 vectorlength clause in SIMD-enabled function and #pragma SIMD's
1297 vectorlength clause. Added a new bool parameter to differentiate
1298 between the two.
1299 (cp_parser_cilk_simd_fn_vector_attrs): New function.
1300 (is_cilkplus_vector_p): Likewise.
1301 (cp_parser_late_parsing_elem_fn_info): Likewise.
1302 (cp_parser_omp_clause_name): Added a check for "mask", "nomask"
1303 and "vectorlength" clauses when Cilk Plus is enabled.
1304 (cp_parser_omp_clause_linear): Added a new parameter of type bool
1305 and emit a sorry message when step size is a parameter.
1306 * parser.h (cp_parser::cilk_simd_fn_info): New field.
1307 * decl.c (grokfndecl): Added flag_enable_cilkplus along with
1308 flag_openmp.
1309 * pt.c (apply_late_template_attributes): Likewise.
1310
1311 2014-01-23 Jakub Jelinek <jakub@redhat.com>
1312
1313 PR middle-end/58809
1314 * semantics.c (finish_omp_reduction_clause): Reject
1315 BIT_AND_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR on COMPLEX_TYPEs.
1316
1317 2014-01-22 Ville Voutilainen <ville.voutilainen@gmail.com>
1318
1319 PR c++/59482
1320 * parser.c (cp_parser_class_head): Push the class before parsing
1321 the base-clause, pop after it.
1322
1323 2014-01-20 Eric Botcazou <ebotcazou@adacore.com>
1324
1325 * decl2.c (cpp_check): Revert prototype change.
1326
1327 2014-01-17 Paolo Carlini <paolo.carlini@oracle.com>
1328
1329 PR c++/59270
1330 PR c++/58811
1331 * init.c (build_value_init_noctor): Don't pass error_mark_node to
1332 build_value_init.
1333
1334 2014-01-17 Paolo Carlini <paolo.carlini@oracle.com>
1335
1336 PR c++/59269
1337 * init.c (build_value_init_noctor): Assert !TYPE_HAS_COMPLEX_DFLT
1338 only when errorcount == 0.
1339
1340 2014-01-17 Marek Polacek <polacek@redhat.com>
1341
1342 PR c++/59838
1343 * cvt.c (ocp_convert): Don't segfault on non-existing
1344 ENUM_UNDERLYING_TYPE.
1345
1346 2014-01-16 Jason Merrill <jason@redhat.com>
1347
1348 PR c++/59821
1349 * tree.c (bot_manip): Update the location of builtin_LINE and
1350 builtin_FILE calls.
1351
1352 2014-01-14 Jason Merrill <jason@redhat.com>
1353
1354 PR c++/59659
1355 * typeck2.c (massage_init_elt): New.
1356 (process_init_constructor_record)
1357 (process_init_constructor_union): Use it.
1358 (process_init_constructor_array): Use it. Use RANGE_EXPR.
1359 (split_nonconstant_init_1): Handle it.
1360 * semantics.c (cxx_eval_vec_init_1): Use force_rvalue.
1361
1362 2014-01-09 Balaji V. Iyer <balaji.v.iyer@intel.com>
1363
1364 PR c++/59631
1365 * parser.c (cp_parser_postfix_expression): Added a new if-statement
1366 and replaced an existing if-statement with else-if statement.
1367 Changed an existing error message wording to match the one from the C
1368 parser.
1369
1370 2014-01-08 Jason Merrill <jason@redhat.com>
1371
1372 PR c++/59614
1373 * class.c (abi_tag_data): Add tags field.
1374 (check_abi_tags): Initialize it.
1375 (find_abi_tags_r): Support collecting missing tags.
1376 (mark_type_abi_tags): Don't look at template args.
1377 (inherit_targ_abi_tags): New.
1378 (check_bases_and_members): Use it.
1379 * cp-tree.h (ABI_TAG_IMPLICIT): New.
1380 * mangle.c (write_abi_tags): Check it.
1381
1382 2014-01-07 Jason Merrill <jason@redhat.com>
1383
1384 PR c++/58856
1385 * pt.c (num_innermost_template_parms): New.
1386 (get_underlying_template): Use it.
1387
1388 PR c++/58965
1389 * mangle.c (write_guarded_var_name): Handle null DECL_NAME.
1390
1391 2014-01-07 Paolo Carlini <paolo.carlini@oracle.com>
1392
1393 * semantics.c (trait_expr_value, [CPTK_IS_BASE_OF]): Implement
1394 the letter of 20.11.6 about Base and Derived naming the same
1395 class type modulo cv-qualifiers.
1396
1397 2014-01-06 Adam Butcher <adam@jessamine.co.uk>
1398
1399 PR c++/59635
1400 * lambda.c (maybe_add_lambda_conv_op): Handle marking conversion
1401 function as unimplemented for generic lambdas with varargs.
1402
1403 PR c++/59636
1404 * parser.c (cp_parser_template_parameter): Early out with
1405 error_mark_node if parameter declaration was not parsed.
1406
1407 PR c++/59629
1408 * parser.c (cp_parser_lambda_expression): Save/reset/restore
1409 auto_is_implicit_function_template_parm_p around lambda body.
1410
1411 PR c++/59638
1412 * parser.c (cp_parser_init_declarator): Undo fully implicit
1413 template parameter list when declarator is not a function.
1414
1415 2014-01-03 Marc Glisse <marc.glisse@inria.fr>
1416
1417 PR c++/58950
1418 * cvt.c (convert_to_void): Handle VEC_PERM_EXPR and VEC_COND_EXPR.
1419
1420 2014-01-03 Tobias Burnus <burnus@net-b.de>
1421
1422 PR c++/58567
1423 * pt.c (tsubst_omp_for_iterator): Early return for error_mark_node.
1424
1425 2014-01-03 Paolo Carlini <paolo.carlini@oracle.com>
1426
1427 Core DR 1442
1428 PR c++/59165
1429 * parser.c (cp_parser_perform_range_for_lookup): Don't pass true
1430 as include_std to perform_koenig_lookup.
1431 (cp_parser_postfix_expression): Adjust.
1432 * pt.c (tsubst_copy_and_build): Likewise.
1433 * semantics.c (perform_koenig_lookup): Remove bool parameter.
1434 (omp_reduction_lookup): Adjust.
1435 * name-lookup.c (lookup_arg_dependent_1): Remove bool parameter.
1436 (lookup_arg_dependent): Likewise.
1437 (lookup_function_nonclass): Adjust.
1438 * name-lookup.h: Adjust declaration.
1439 * cp-tree.h: Likewise.
1440
1441 2014-01-02 Marc Glisse <marc.glisse@inria.fr>
1442
1443 PR c++/59087
1444 * parser.c (cp_parser_userdef_numeric_literal): Mention
1445 -fext-numeric-literals in the message.
1446
1447 2014-01-02 Marc Glisse <marc.glisse@inria.fr>
1448
1449 PR c++/59641
1450 * call.c (build_conditional_expr_1): Check the return value of
1451 force_rvalue.
1452
1453 2014-01-02 Marc Glisse <marc.glisse@inria.fr>
1454
1455 * call.c (convert_like_real): Check complain.
1456
1457 2014-01-02 Marc Glisse <marc.glisse@inria.fr>
1458
1459 PR c++/59378
1460 * typeck.c (build_x_vec_perm_expr): Handle non-dependent arguments
1461 in templates.
1462
1463 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
1464
1465 Update copyright years
1466
1467 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
1468
1469 * cp-array-notation.c, cp-cilkplus.c, vtable-class-hierarchy.c: Use
1470 the standard form for the copyright notice.
1471 \f
1472 Copyright (C) 2014 Free Software Foundation, Inc.
1473
1474 Copying and distribution of this file, with or without modification,
1475 are permitted in any medium without royalty provided the copyright
1476 notice and this notice are preserved.