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