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