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