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