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