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