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