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