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