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