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