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