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