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