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