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