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