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