* ipa-devirt.c: Include gimple-pretty-print.h
[official-gcc.git] / gcc / cp / ChangeLog
blob23afac42f14af5e16dced3b4ba5a5b13c0c401fe
1 2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
3         * class.c, cp-gimplify.c, decl.c, decl2.c, error.c, method.c,
4         optimize.c, pt.c, semantics.c: Remove includes of pointer-set.h.
6 2014-08-07  Paolo Carlini  <paolo.carlini@oracle.com>
8         PR c++/51312
9         * decl.c (build_enumerator): Handle class types with conversion
10         operators via perform_implicit_conversion_flags and
11         build_expr_type_conversion.
13         * cvt.c (build_expr_type_conversion): Replace pair of errors
14         with error + inform.
16 2014-08-07  Jason Merrill  <jason@redhat.com>
18         PR c++/62043
19         * parser.c (c_parse_file): Change sorry to fatal_error.
21         PR c++/61959
22         * semantics.c (cxx_eval_bare_aggregate): Handle POINTER_PLUS_EXPR.
24 2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
26         * cp-tree.h, pt.c: Use hash_map instead of pointer_map.
28 2014-08-06  Jason Merrill  <jason@redhat.com>
30         * init.c (build_vec_init): Fix constant initialization of
31         trailing elements.
32         (build_value_init_noctor): Call maybe_constant_init.
33         * semantics.c (maybe_constant_init): See through EXPR_STMT and
34         conversion to void.
36         PR c++/60417
37         * init.c (build_vec_init): Reorganize earlier change a bit.
39         PR c++/61994
40         * init.c (build_vec_init): Leave atype an ARRAY_TYPE
41         if we're just returning an INIT_EXPR.
43 2014-08-06  Jason Merrill  <jason@redhat.com>
44             Braden Obrzut  <admin@maniacsvault.net>
46         * pt.c (check_explicit_specialization): Don't test
47         DECL_DECLARED_INLINE_P for a variable template.
49 2014-08-06  Paolo Carlini  <paolo.carlini@oracle.com>
51         PR c++/43906
52         * typeck.c (cp_build_binary_op): Extend to more cases the
53         -Waddress warning.
55 2014-08-01  Braden Obrzut  <admin@maniacsvault.net>
57         Implement constexpr variable templates
58         * decl.c (grokvardecl): Handle specializations of variable templates.
59         (grokdeclarator): Handle variable template id expressions and NULL_TREE
60         return from grokvardecl.
61         * decl2.c (check_member_template): Allow declaration of template member
62         variables.
63         * parser.c (cp_parser_template_id): Build a TEMPLATE_ID_EXPR for
64         variable templates.
65         * pt.c (check_template_variable): Accept variable temploids at
66         non-class scope.
67         (push_template_decl_real): The current instantiation of a template
68         can be a VAR_DECL.
69         (determine_specialization): Accept variable templates.
70         (check_explicit_specialization): Handle and check for malformed
71         variable template specializations.
72         (lookup_template_variable): New.
73         (tsubst_decl): Handle variable template specializations.
74         (do_decl_instantiation): Handle template variables.
75         (instantiate_decl): Handle template variables.
76         * semantics.c (finish_template_variable): New.
77         (finish_id_expression): Instantiate variable templates.
78         * cp-tree.h (variable_template_p): New.
80 2014-08-02  Paolo Carlini  <paolo.carlini@oracle.com>
82         PR c++/15339
83         * decl.c (check_redeclaration_no_default_args): New.
84         (duplicate_decls): Use it, handle default arguments
85         in redeclarations of function templates.
87 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
89         * optimize.c, semantics.c: Use hash_map instead of pointer_map.
91 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
93         * class.c, cp-gimplify.c, cp-tree.h, decl.c, decl2.c, error.c,
94         method.c, name-lookup.c, pt.c, semantics.c, tree.c: Use hash_set
95         instead of pointer_set.
97 2014-08-01  Jason Merrill  <jason@redhat.com>
99         PR c++/60417
100         * init.c (build_vec_init): Set CONSTRUCTOR_IS_DIRECT_INIT on
101         init-list for trailing elements.
102         * typeck2.c (process_init_constructor_array): Likewise.
104 2014-08-01  Paolo Carlini  <paolo.carlini@oracle.com>
106         DR 217 again
107         * decl.c (duplicate_decls): Handle static member functions too.
109 2014-08-01  Igor Zamyatin  <igor.zamyatin@intel.com>
111         * cp-array-notation.c (expand_an_in_modify_expr): Fix the misprint
112         in error output.
114 2014-08-01  Igor Zamyatin  <igor.zamyatin@intel.com>
116         PR other/61963
117         * parser.c (cp_parser_array_notation): Added check for array_type.
119 2014-08-01  Igor Zamyatin  <igor.zamyatin@intel.com>
121         PR middle-end/61455
122         * cp-array-notation.c (expand_array_notation_exprs): Handling of
123         DECL_EXPR improved. Changed handling for INIT_EXPR.
125 2014-08-01  Paolo Carlini  <paolo.carlini@oracle.com>
127         * pt.c (lookup_template_class_1): Use DECL_TYPE_TEMPLATE_P.
129 2014-08-01  Jakub Jelinek  <jakub@redhat.com>
131         * cp-gimplify.c (cp_genericize_r): For -fsanitize=null and/or
132         -fsanitize=alignment call ubsan_maybe_instrument_reference
133         for casts to REFERENCE_TYPE and ubsan_maybe_instrument_member_call
134         for calls to member functions.
136 2014-07-31  Marc Glisse  <marc.glisse@inria.fr>
138         PR c++/60517
139         * typeck.c (maybe_warn_about_returning_address_of_local): Return
140         whether it is returning the address of a local variable.
141         (check_return_expr): Return 0 instead of the address of a local
142         variable.
144 2014-07-30  Jason Merrill  <jason@redhat.com>
146         PR lto/53808
147         PR c++/61659
148         * pt.c (push_template_decl_real): Don't set DECL_COMDAT on friends.
150 2014-07-30  Paolo Carlini  <paolo.carlini@oracle.com>
152         PR c++/57397
153         * pt.c (unify_arity): Add boolean parameter.
154         (unify_too_few_arguments): Likewise.
155         (type_unification_real): Diagnose correctly insufficient
156         arguments in the presence of trailing variadic parameters;
157         deducing multiple trailing packs as empty is fine.
159 2014-07-30  Jason Merrill  <jason@redhat.com>
161         PR c++/61659
162         PR c++/61687
163         Revert:
164         * decl2.c (mark_all_virtuals): New variable.
165         (maybe_emit_vtables): Check it instead of flag_devirtualize.
166         (cp_write_global_declarations): Set it and give helpful diagnostic
167         if it introduces errors.
168         * class.c (finish_struct_1): Check it.
170         PR lto/53808
171         PR c++/61659
172         * pt.c (push_template_decl_real): Set DECL_COMDAT on templates.
173         (check_explicit_specialization): Clear it on specializations.
174         * decl.c (duplicate_decls, start_decl): Likewise.
175         (grokmethod, grokfndecl): Set DECL_COMDAT on inlines.
176         * method.c (implicitly_declare_fn): Set DECL_COMDAT.  Determine
177         linkage after setting the appropriate flags.
178         * tree.c (decl_linkage): Don't check DECL_COMDAT.
179         * decl2.c (mark_needed): Mark clones.
180         (import_export_decl): Not here.
182 2014-07-25  Edward Smith-Rowland  <3dw4rd@verizon.net>
184         Implement N4051 - Allow typename in a template template parameter
185         * parser.c (cp_parser_type_parameter_key): New funtion;
186         (cp_parser_token_is_type_parameter_key): Ditto;
187         (cp_parser_type_parameter): Look for type-parameter-key for all versions
188         but pedwarn for less than cxx1z.
190 2014-07-17  Paolo Carlini  <paolo.carlini@oracle.com>
192         PR c++/50961
193         * call.c (standard_conversion): Use resolve_nondeduced_context
194         for type_unknown_p (EXPR) && TREE_CODE (TO) == BOOLEAN_TYPE.
196 2014-07-17  Paolo Carlini  <paolo.carlini@oracle.com>
198         PR c++/61804
199         * parser.c (cp_parser_tokens_start_cast_expression): Return -1
200         for '++' and '--'.
202 2014-07-15  Jason Merrill  <jason@redhat.com>
204         PR c++/61811
205         * decl2.c (maybe_emit_vtables): Return true for -fuse-all-virtuals.
207         PR c++/60848
208         PR c++/61723
209         * call.c (is_std_init_list): Don't check CLASSTYPE_TEMPLATE_INFO.
210         * class.c (finish_struct): Reject invalid definition of
211         std::initializer_list.
213 2014-07-15  Paolo Carlini  <paolo.carlini@oracle.com>
215         * call.c (convert_like_real): Call print_z_candidate and inform only
216         if permerror returns true.
218 2014-07-14  Jan Hubicka  <hubicka@ucw.cz>
220         * class.c (build_clone): Do not clear assembler names of
221         templates.
222         * decl.c (cp_tree_node_structure): Add TEMPLATE_DECL.
223         * cp-objcp-common.c (cp_tree_size): Add TEMPLATE_DECL
224         as a special case return sizeof (struct tree_decl_non_common)
225         for other decls.
226         (cp_common_init_ts): Do not initialize NAMESPACE_DECL;
227         initialize TEMPLATE_DECL as MARK_TS_DECL_COMMON.
228         * cp/cp-tree.h (tree_template_decl): New structure.
229         (cp_tree_node_structure_enum): Add TS_CP_TEMPLATE_DECL.
230         (union cp_lang_tree_node): Add template_decl.
231         (DECL_TEMPLATE_PARMS, DECL_TEMPLATE_RESULT): Update.
233 2014-07-14  Jason Merrill  <jason@redhat.com>
235         PR c++/61445
236         PR c++/56947
237         * pt.c (instantiate_decl): Don't check defer_ok for local class
238         members.
240 2014-07-14  Jakub Jelinek  <jakub@redhat.com>
242         PR middle-end/61294
243         * cp-tree.h (LITERAL_ZERO_P): Define.
244         * parser.c (cp_parser_parenthesized_expression_list): Add
245         want_literal_zero_p argument, if true, for literal zeros
246         insert INTEGER_CSTs with LITERAL_ZERO_P flag set.
247         (cp_parser_postfix_expression): Adjust
248         cp_parser_parenthesized_expression_list caller, handle
249         -Wmemset-transposed-args.
250         (literal_zeros): New variable.
252 2014-07-13  Jason Merrill  <jason@redhat.com>
254         PR c++/58511
255         * semantics.c (is_instantiation_of_constexpr): Return true for
256         defaulted functions, too.
257         (explain_invalid_constexpr_fn): Only use
258         explain_implicit_non_constexpr if !DECL_DECLARED_CONSTEXPR_P.
259         * method.c (explain_implicit_non_constexpr): Pass
260         DECL_INHERITED_CTOR_BASE to explain_implicit_non_constexpr.
262         PR c++/58611
263         * decl.c (check_initializer): Don't finish_compound_literal
264         on erroneous constexpr init.
266         PR c++/58612
267         * tree.c (bot_replace): Only replace a dummy 'this' parm.
269         PR c++/60628
270         * decl.c (create_array_type_for_decl): Only check for auto once.
272         PR c++/58636
273         * call.c (build_list_conv): Don't try to build a list of references.
275 2014-07-13  Edward Smith-Rowland  <3dw4rd@verizon.net>
277         PR C++/60209 - Declaration of user-defined literal operator cause error
278         * parser.c (cp_parser_operator): Fold treatment of strings
279         and user-defined string literals.  Use the full string parser.
280         (cp_parser_string_literal): Add flag to not look for literal operator.
282 2014-07-11  Jason Merrill  <jason@redhat.com>
284         PR c++/22434
285         PR c++/61288
286         * call.c (build_conditional_expr_1): Avoid reading freed memory.
288 2014-07-11  Paolo Carlini  <paolo.carlini@oracle.com>
290         PR c++/53159
291         * call.c (build_user_type_conversion_1): Copy LOOKUP_NO_NARROWING
292         into convflags.
293         * decl.c (check_initializer): Don't call check_narrowing here,
294         set LOOKUP_NO_NARROWING.
295         * typeck2.c (digest_init_r): Likewise.
297 2014-07-10  Jason Merrill  <jason@redhat.com>
299         PR c++/61661
300         * semantics.c (reduced_constant_expression_p): Handle CONSTRUCTOR.
302         PR c++/61659
303         PR c++/61687
304         * decl2.c (mark_all_virtuals): New variable.
305         (maybe_emit_vtables): Check it instead of flag_devirtualize.
306         (cp_write_global_declarations): Set it and give helpful diagnostic
307         if it introduces errors.
308         * class.c (finish_struct_1): Check it.
309         * decl.c (grokdeclarator): Clear virtualp after 'virtual auto' error.
311 2014-07-09  Paolo Carlini  <paolo.carlini@oracle.com>
313         PR c++/60686
314         * decl.c (grokdeclarator): Adjust error messages about 'explicit'
315         outside class declaration, in friend declaration, and neither on
316         constructor nor conversion operator.
318 2014-07-09  Paolo Carlini  <paolo.carlini@oracle.com>
320         DR 1584
321         PR c++/57466
322         * pt.c (check_cv_quals_for_unify): Implement resolution, disregard
323         cv-qualifiers of function types.
325 2014-07-09  Andrew Sutton  <andrew.n.sutton@gmail.com>
326             Paolo Carlini  <paolo.carlini@oracle.com>
328         PR c++/59361
329         * parser.c (cp_parser_tokens_start_cast_expression): Return 0 for
330         CPP_ELLIPSIS too.
332 2014-07-07  Paolo Carlini  <paolo.carlini@oracle.com>
334         * class.c (check_for_override): Wrap the 'final' and 'override'
335         keywords in %< and %>.
337 2014-07-06  Marek Polacek  <polacek@redhat.com>
339         PR c/6940
340         * cp-tree.h (DECL_ARRAY_PARAMETER_P): Define.
341         * decl.c (grokdeclarator): Set DECL_ARRAY_PARAMETER_P.
342         * typeck.c (cxx_sizeof_expr): Warn when using sizeof on an array
343         function parameter.
345 2014-07-02  Paolo Carlini  <paolo.carlini@oracle.com>
347         * pt.c (convert_template_argument): Use inform instead of error in
348         three places.
350 2014-06-30  Edward Smith-Rowland  <3dw4rd@verizon.net>
352         PR c++/58781
353         PR c++/60249
354         PR c++/59867
355         * parser.c (cp_parser_userdef_string_literal): Take a tree
356         not a cp_token*.
357         (cp_parser_string_literal): Don't hack the token stream.
359 2014-06-30  Jason Merrill  <jason@redhat.com>
361         PR c++/61659
362         PR lto/53808
363         * decl2.c (maybe_emit_vtables): Mark all vtable entries if
364         devirtualizing.
365         * init.c (build_vtbl_address): Don't mark destructor.
366         * class.c (finish_struct_1): Add all classes to keyed_classes
367         if devirtualizing.
369         PR c++/61647
370         * pt.c (type_dependent_expression_p): Check BASELINK_OPTYPE.
372         PR c++/61566
373         * mangle.c (decl_mangling_context): Look through a TEMPLATE_DECL.
375         * decl.c (build_ptrmemfunc_type): Don't give a PMF RECORD_TYPE
376         TYPE_BINFO or TYPE_LANG_SPECIFIC.
377         * cp-tree.h (TYPE_PTRMEMFUNC_FLAG): Use TYPE_LANG_FLAG_2.
378         (TYPE_PTRMEMFUNC_P): Don't expect TYPE_LANG_SPECIFIC.
379         * typeck.c (build_ptrmemfunc_access_expr): Don't use lookup_member.
380         * pt.c (unify): Also check whether the argument is a PMF.
382 2014-06-30  Paolo Carlini  <paolo.carlini@oracle.com>
384         PR c++/54891
385         * parser.c (cp_parser_tokens_start_cast_expression): In C++11
386         a '[' can also start a primary-expression.
387         (cp_parser_cast_expression): Parse a cast-expression only tentatively
388         when cp_parser_tokens_start_cast_expression returns -1.
390 2014-06-30  Jason Merrill  <jason@redhat.com>
392         PR c++/61539
393         * pt.c (unify_one_argument): Type/expression mismatch just causes
394         deduction failure.
396         * semantics.c (simplify_aggr_init_expr): Remove remnants of
397         2014-04-11 change.
399 2014-06-30  Marek Polacek  <polacek@redhat.com>
401         * cp-gimplify.c (cp_genericize): Don't instrument returns if the
402         function has no_sanitize_undefined attribute.
403         * decl.c (compute_array_index_type): Don't instrument VLAs if the
404         function has no_sanitize_undefined attribute.
406 2014-06-30  Igor Zamyatin  <igor.zamyatin@intel.com>
408         PR middle-end/57541
409         * cp-array-notation.c (expand_sec_reduce_builtin):
410         Check that bultin argument is correct.
411         * call.c (build_cxx_call): Check for 0 arguments in builtin call.
413 2014-06-28  Jonathan Wakely  <jwakely@redhat.com>
415         DR 1579
416         PR c++/58051
417         * typeck.c (check_return_expr): Lookup as an rvalue even when the
418         types aren't the same.
420 2014-06-27  Jason Merrill  <jason@redhat.com>
422         PR c++/61433
423         * error.c (dump_template_bindings): Don't tsubst in a clone.
425 2014-06-27  Paolo Carlini  <paolo.carlini@oracle.com>
427         PR c++/61614
428         * semantics.c (finish_compound_literal): Revert r204228.
430 2014-06-27  Paolo Carlini  <paolo.carlini@oracle.com>
432         * parser.c (cp_parser_compound_literal_p): New.
433         (cp_parser_postfix_expression, cp_parser_sizeof_operand): Use it.
435 2014-06-26  Jason Merrill  <jason@redhat.com>
437         * parser.c (cp_parser_for_init_statement): Change range-for error
438         to pedwarn.
440         N3994 Ranged-based for-loops: The Next Generation
441         * parser.c (cp_lexer_nth_token_is): New.
442         (cp_parser_for_init_statement): Allow "for (id : init)".
444 2014-06-26  Teresa Johnson  <tejohnson@google.com>
446         * class.c (dump_class_hierarchy): Use saved dump files.
447         (dump_vtable): Ditto.
448         (dump_vtt): Ditto.
450 2014-06-26  Adam Butcher  <adam@jessamine.co.uk>
452         PR c++/61537
453         * parser.c (cp_parser_elaborated_type_specifier): Only consider template
454         parameter lists outside of function parameter scope.
456 2014-06-25  Paolo Carlini  <paolo.carlini@oracle.com>
458         DR 178
459         PR c++/49132
460         * typeck2.c (process_init_constructor_record): Do not complain about
461         uninitialized const members, because within aggregate-initialization,
462         members without explicit initializers are value-initialized.
464 2014-06-25  Jakub Jelinek  <jakub@redhat.com>
466         * semantics.c (finish_omp_clauses): Make sure
467         OMP_CLAUSE_LINEAR_STEP has correct type.
469 2014-06-24  Jan Hubicka  <hubicka@ucw.cz>
471         * class.c (check_methods, create_vtable_ptr, determine_key_method,
472         add_vcall_offset_vtbl_entries_1): Guard VINDEX checks by
473         FUNCTION_DECL check.
474         * cp-tree.h (lang_decl_ns): Add ns_using and ns_users.
475         (DECL_NAMESPACE_USING, DECL_NAMESPACE_USERS): Use lang_decl_ns.
476         (DECL_NAMESPACE_ASSOCIATIONS): Use DECL_INITIAL.
477         (DECL_TEMPLATE_INSTANTIATIONS): Use DECL_SIZE_UNIT.
479 2014-06-24  Paolo Carlini  <paolo.carlini@oracle.com>
481         PR c++/33972
482         * decl.c (grokdeclarator): Do not early check for operator-function-id
483         as non-function.
485 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
487         * class.c, semantics.c, tree.c, vtable-class-hierarchy.c:
488         Adjust.
490 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
492         * parser.c (cp_parser_omp_for_loop): For
493         #pragma omp parallel for simd move lastprivate clause from parallel
494         to for rather than simd.
496 2014-06-23  Paolo Carlini  <paolo.carlini@oracle.com>
498         DR 577
499         PR c++/33101
500         * decl.c (grokparms): Accept a single parameter of type 'void'.
502 2014-06-20  Jason Merrill  <jason@redhat.com>
504         PR c++/59296
505         * call.c (add_function_candidate): Avoid special 'this' handling
506         if we have a ref-qualifier.
508         PR c++/61556
509         * call.c (build_over_call): Call build_this in template path.
511 2014-06-19  Jason Merrill  <jason@redhat.com>
513         PR c++/59296
514         * call.c (add_function_candidate): Also set LOOKUP_NO_TEMP_BIND.
516 2014-06-18  Jason Merrill  <jason@redhat.com>
518         PR c++/59296
519         * call.c (add_function_candidate): Set LOOKUP_NO_RVAL_BIND for
520         ref-qualifier handling.
522         PR c++/61507
523         * pt.c (resolve_overloaded_unification): Preserve
524         ARGUMENT_PACK_EXPLICIT_ARGS.
526 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
528         * cp-gimplify.c (cxx_omp_finish_clause): Add a gimple_seq *
529         argument.
530         * cp-tree.h (cxx_omp_finish_clause): Adjust prototype.
532 2014-06-17  Jason Merrill  <jason@redhat.com>
534         PR c++/60605
535         * pt.c (check_default_tmpl_args): Check DECL_LOCAL_FUNCTION_P.
537 2014-06-15  Jason Merrill  <jason@redhat.com>
539         PR c++/61488
540         * pt.c (check_valid_ptrmem_cst_expr): Fix for template context.
542         PR c++/61500
543         * tree.c (lvalue_kind): Handle MEMBER_REF and DOTSTAR_EXPR.
545 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
547         * decl.c (grokvardecl): Fix pasto in previous patch.
549 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
551         * decl.c (duplicate_decls): Use set_decl_tls_model.
552         (grokdeclarator): Likewise.
553         * semantics.c (finish_id_expression): Check TLS only for
554         static variables.
555         (finish_omp_threadprivate): Use decl_default_tls_model.
556         * decl2.c (get_guard): Likewise.
557         * call.c (make_temporary_var_for_ref_to_temp): Likewise.
559 2014-06-14  Paolo Carlini  <paolo.carlini@oracle.com>
561         PR c++/33101
562         * decl.c (grokparms): Improve error message about void parameters.
563         * error.c (type_to_string): Fix aka cut off code.
565 2014-06-12  Jason Merrill  <jason@redhat.com>
567         * call.c (convert_arg_to_ellipsis): Use abi_version_crosses.
568         * cvt.c (type_promotes_to): Likewise.
569         * mangle.c (write_type, write_expression): Likewise.
570         (write_name, write_template_arg): Likewise.
571         (mangle_decl): Make alias based on flag_abi_compat_version.
572         Emit -Wabi warning here.
573         (finish_mangling_internal): Not here.  Drop warn parm.
574         (finish_mangling_get_identifier, finish_mangling): Adjust.
575         (mangle_type_string, mangle_special_for_type): Adjust.
576         (mangle_ctor_vtbl_for_type, mangle_thunk): Adjust.
577         (mangle_guard_variable, mangle_tls_init_fn): Adjust.
578         (mangle_tls_wrapper_fn, mangle_ref_init_variable): Adjust.
580         * call.c (build_operator_new_call): Remove -fabi-version=1 support.
581         * class.c (walk_subobject_offsets, include_empty_classes): Likewise.
582         (layout_nonempty_base_or_field, end_of_class): Likewise.
583         (layout_empty_base, build_base_field, layout_class_type): Likewise.
584         (is_empty_class, add_vcall_offset_vtbl_entries_1): Likewise.
585         (layout_virtual_bases): Likewise.
586         * decl.c (compute_array_index_type): Likewise.
587         * mangle.c (write_mangled_name, write_prefix): Likewise.
588         (write_template_prefix, write_integer_cst, write_expression): Likewise.
589         (write_template_arg, write_array_type): Likewise.
590         * method.c (lazily_declare_fn): Likewise.
591         * rtti.c (get_pseudo_ti_index): Likewise.
592         * typeck.c (comp_array_types): Likewise.
594 2014-06-11  Jan Hubicka  <hubicka@ucw.cz>
596         * vtable-class-hierarchy.c: Update handling for section names
597         that are no longer trees.
598         * decl.c (duplicate_decls): Likewise.
600 2014-06-11  Paolo Carlini  <paolo.carlini@oracle.com>
602         PR c++/19200
603         * parser.c (cp_parser_init_declarator): Actually pass friend_p
604         to cp_parser_declarator.
606 2014-06-11  Paolo Carlini  <paolo.carlini@oracle.com>
608         PR c++/60265
609         * parser.c (cp_parser_using_declaration): Handle unscoped enums.
610         * name-lookup.c (validate_nonmember_using_decl): Adjust error
611         message.
613 2014-06-11  Paolo Carlini  <paolo.carlini@oracle.com>
615         PR c++/19200
616         * parser.c (cp_parser_declarator): Add bool parameter.
617         (cp_parser_direct_declarator): Likewise, use it.
618         (cp_parser_member_declaration): Pass friend_p to cp_parser_declarator.
619         (cp_parser_condition, cp_parser_explicit_instantiation,
620         cp_parser_init_declarator, cp_parser_type_id_1,
621         cp_parser_parameter_declaration, cp_parser_exception_declaration,
622         cp_parser_cache_defarg, cp_parser_objc_class_ivars,
623         cp_parser_objc_struct_declaration, cp_parser_omp_for_loop_init):
624         Adjust.
625         * decl.c (grokdeclarator): Fix handling of friend declared in
626         namespace scope (g++.dg/parse/friend10.C).
628 2014-06-10  Jan Hubicka  <hubicka@ucw.cz>
630         * vtable-class-hierarchy.c: Use symtab_get_node (var_decl)
631         ->implicit_section.
632         * optimize.c (cdtor_comdat_group): Fix handling of aliases.
633         (maybe_clone_body): Move symbol across comdat groups.
634         * method.c (use_thunk): Copy implicit section flag.
636 2014-06-09  Paolo Carlini  <paolo.carlini@oracle.com>
638         PR c++/22556
639         * name-lookup.c (pushdecl_maybe_friend_1): Use comptypes.
641 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
643         * method.c (use_thunk): Use set_decl_section_name.
644         * optimize.c (maybe_clone_body): Use set_decl_section_name.
645         * decl.c (duplicate_decls): Likewise.
646         * vtable-class-hierarchy.c: Likewise.
648 2014-06-06  Paolo Carlini  <paolo.carlini@oracle.com>
650         PR c++/60184
651         * class.c (check_field_decls): In C++11 mode do not reject
652         static data members and reference-type members in unions.
654 2014-06-05  Jason Merrill  <jason@redhat.com>
656         PR c++/43453
657         * decl.c (check_initializer): Collapse a TREE_LIST here.
658         * typeck2.c (store_init_value): Not here.
660 2014-06-05  Richard Biener  <rguenther@suse.de>
661             Paolo Carlini  <paolo.carlini@oracle.com>
663         PR c++/56961
664         * cp-gimplify.c (cp_gimplify_expr, [MODIFY_EXPR]): Rework
665         handling of empty classes.
667 2014-06-04  Jason Merrill  <jason@redhat.com>
669         * parser.c (cp_parser_diagnose_invalid_type_name): Give helpful note
670         for noexcept and thread_local, too.
672         PR c++/61343
673         * decl.c (check_initializer): Maybe clear
674         DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P.
676 2014-06-05  Richard Biener  <rguenther@suse.de>
678         PR c++/61004
679         * typeck.c (cp_build_indirect_ref): Do not emit strict-aliasing
680         warnings for accessing empty classes.
682 2014-06-05  Marek Polacek  <polacek@redhat.com>
684         PR c/49706
685         * parser.c (cp_parser_binary_expression): Warn when logical not is
686         used on the left hand side operand of a comparison.
688 2014-06-04  Paolo Carlini  <paolo.carlini@oracle.com>
690         PR c++/43453
691         * typeck.c (cp_build_modify_expr): Handle array of characters
692         initialized by a string literal.
693         * decl.c (check_initializer): Handle parenthesized string literal
694         as initializer.
695         * typeck2.c (store_init_value): Remove redundant check.
697 2014-06-04  Jason Merrill  <jason@redhat.com>
699         PR c++/51253
700         PR c++/61382
701         * cp-gimplify.c (cp_gimplify_expr): Handle CALL_EXPR_LIST_INIT_P here.
702         * semantics.c (simplify_aggr_init_expr): Not here, just copy it.
704 2014-06-04  Igor Zamyatin  <igor.zamyatin@intel.com>
706         PR c/58942
707         * cp-array-notation.c (expand_sec_reduce_builtin): Handle the case
708         with a pointer.
710 2014-06-03  Paolo Carlini  <paolo.carlini@oracle.com>
712         DR 1423
713         PR c++/52174
714         * call.c (standard_conversion): Convert nullptr to bool only
715         in case of direct-initialization.
716         (convert_like_real): Provide informative error message.
718 2014-06-03  Marek Polacek  <polacek@redhat.com>
720         PR c/60439
721         * semantics.c (finish_switch_cond): Warn if switch condition has
722         boolean value.
724 2014-06-03  Jason Merrill  <jason@redhat.com>
726         PR c++/60992
727         * pt.c (tsubst_copy) [VAR_DECL]: Try lookup first.  Add a new
728         variable to local_specializations.
730         PR c++/60848
731         * call.c (is_std_init_list): Check CLASSTYPE_TEMPLATE_INFO.
733 2014-06-02  Jason Merrill  <jason@redhat.com>
735         PR c++/61046
736         * decl.c (reshape_init_class): Handle un-folded
737         constant-expressions.
739         PR c++/61134
740         * pt.c (pack_deducible_p): Handle canonicalization.
742 2014-06-02  Paolo Carlini  <paolo.carlini@oracle.com>
744         * pt.c (tsubst_function_type): Initialize arg_types.
746 2014-06-02  Siva Chandra Reddy  <sivachandra@google.com>
748         PR debug/57519
749         * class.c (handle_using_decl): Pass the correct scope to
750         cp_emit_debug_info_for_using.
752 2014-06-02  Ville Voutilainen  <ville.voutilainen@gmail.com>
754         PR c++/59483
755         PR c++/61148
756         * search.c (accessible_p): Use current_nonlambda_class_type.
757         * semantics.c (check_accessibility_of_qualified_id): Likewise.
759 2014-06-02  Andrew MacLeod  <amacleod@redhat.com>
761         * decl.c: Include builtins.h.
762         * semantics.c: Likewise.
764 2014-05-31  Paolo Carlini  <paolo.carlini@oracle.com>
766         DR 1227
767         PR c++/57543
768         * cp-tree.h (TYPE_HAS_LATE_RETURN_TYPE): Add.
769         * pt.c (tsubst_function_type): Inject the this parameter; do the
770         substitutions in the order mandated by the DR.
771         (copy_default_args_to_explicit_spec): Copy TYPE_HAS_LATE_RETURN_TYPE.
772         * decl.c (grokdeclarator): Maybe set TYPE_HAS_LATE_RETURN_TYPE.
773         (static_fn_type): Copy it.
774         * decl2.c (build_memfn_type, change_return_type,
775         cp_reconstruct_complex_type): Likewise.
776         * parser.c (cp_parser_lambda_declarator_opt): Likewise.
777         * tree.c (strip_typedefs): Likewise.
778         * typeck.c (merge_types): Likewise.
780 2014-05-30  Jason Merrill  <jason@redhat.com>
782         PR c++/56947
783         * pt.c (instantiate_decl): Check that defer_ok is not set for
784         local class members.
786         PR c++/60992
787         * pt.c (tsubst_init): Split out from...
788         (tsubst_expr) [DECL_EXPR]: Here.
789         (tsubst_copy) [VAR_DECL]: Use it.
790         * semantics.c (finish_id_expression): Return the decl for static/const.
792 2014-05-28  Jason Merrill  <jason@redhat.com>
794         PR c++/47202
795         * decl.c (cxx_comdat_group): Return a decl.
796         * optimize.c (cdtor_comdat_group): Get its DECL_ASSEMBLER_NAME.
798         * pt.c (tsubst) [ARRAY_TYPE]: Check for array of array of unknown
799         bound.
801         PR c++/61242
802         * call.c (build_aggr_conv): Ignore passed in flags.
803         (build_array_conv, build_complex_conv): Likewise.
805 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
807         * optimize.c (maybe_thunk_body): Use set_comdat_group.
808         (maybe_clone_body): Likewise.
809         * decl.c (duplicate_decls): Update code duplicating comdat group;
810         do not copy symtab pointer; before freeing newdecl remove it
811         from symtab.
812         * decl2.c (constrain_visibility): Use set_comdat_group.
814 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
816         * rtti.c: Include tm_p.h
817         (emit_tinfo_decl): Force RTTI data to be aligned to required
818         ABI alignment only.
820 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
822         * class.c (build_vtable): Align vtables to TARGET_VTABLE_ENTRY_ALIGN
823         ignoring other target adjustments.
825 2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
827         * semantics.c (finish_omp_clauses): Remove duplicated variable
828         initialization.
830         * parser.c (cp_parser_omp_target): Return bool values.
832 2014-05-22  Paolo Carlini  <paolo.carlini@oracle.com>
834         PR c++/61088
835         * lambda.c (add_capture): Enforce that capture by value requires
836         complete type.
837         * typeck2.c (cxx_incomplete_type_inform): Early return if
838         TYPE_MAIN_DECL is null.
840 2014-05-21  Jonathan Wakely  <jwakely@redhat.com>
842         PR c/61271
843         * cp-array-notation.c (cilkplus_an_triplet_types_ok_p): Fix condition.
845 2014-05-21  Ville Voutilainen  <ville.voutilainen@gmail.com>
847         PR c++/61133
848         * lambda.c (build_capture_proxy, add_capture): Treat normal
849         captures and init-captures identically.
851 2014-05-21  Mark Wielaard  <mjw@redhat.com>
853         PR debug/16063
854         * cp-lang.c (cxx_enum_underlying_base_type): New function.
855         (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): Define.
857 2014-05-21  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
859         * cvt.c (convert_to_void): Use void_node instead of void_zero_node.
860         * cp-array-notation.c (replace_invariant_exprs): Likewise.
861         (expand_array_notation): Handle VOID_CST.
862         * error.c (dump_expr): Likewise.
863         * cxx-pretty-print.c (cxx_pretty_printer::primary_expression)
864         (cxx_pretty_printer::expression): Likewise.
865         (pp_cxx_new_expression): Use void_node instead of void_zero_node.
866         * decl.c (register_dtor_fn): Likewise.
867         * init.c (build_raw_new_expr, build_new_1, build_vec_init)
868         (build_delete, push_base_cleanups): Likewise.
869         * mangle.c (write_expression): Likewise.
870         * semantics.c (finish_break_stmt, empty_expr_stmt_p): Likewise.
871         * pt.c (tsubst_decl, tsubst_copy_and_build): Likewise.
872         (tsubst, tsubst_copy, build_non_dependent_expr): Handle VOID_CST.
873         * tree.c (cp_tree_equal): Likewise.
874         (build_dummy_object, is_dummy_object, stabilize_expr): Use void_node
875         instead of void_zero_node.
876         * typeck.c (check_return_expr): Likewise.
877         * typeck2.c (build_functional_cast): Likewise.
879 2014-05-21  Igor Zamyatin  <igor.zamyatin@intel.com>
881         PR c/60189
882         * parser.c (cp_parser_postfix_expression): Move handling of cilk_sync
883         from here to...
884         (cp_parser_statement): ...here. Make sure only semicolon can go after
885         Cilk_sync.
887 2014-05-20  Paolo Carlini  <paolo.carlini@oracle.com>
889         PR c++/58753
890         PR c++/58930
891         PR c++/58704
892         * typeck2.c (digest_nsdmi_init): New.
893         * parser.c (cp_parser_late_parse_one_default_arg): Use it.
894         * init.c (get_nsdmi): Likewise.
895         * cp-tree.h (digest_nsdmi_init): Declare.
897 2014-05-20  Jason Merrill  <jason@redhat.com>
899         * typeck.c (get_member_function_from_ptrfunc): Don't try to look
900         up a virtual function in a dummy object.
902 2014-05-20  Paolo Carlini  <paolo.carlini@oracle.com>
904         PR c++/60373
905         * decl.c (duplicate_decls): Replace pair of warning_at with
906         warning_at + inform.
907         (maybe_commonize_var): Likewise.
909 2014-05-20  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
911         PR bootstrap/61210
912         * pt.c (tsubst_copy, tsubst_omp_for_iterator, tsubst_expr)
913         (tsubst_copy_and_build): Perform recursive substitutions in a
914         deterministic order.
916 2014-05-20  Paolo Carlini  <paolo.carlini@oracle.com>
918         PR c++/58664
919         * typeck2.c (cxx_incomplete_type_inform): New.
920         (cxx_incomplete_type_diagnostic): Use it.
921         * decl.c (grokdeclarator): Check the element type of an
922         incomplete array type; call the above.
923         * cp-tree.h (cxx_incomplete_type_inform): Declare.
925 2014-05-19  Jason Merrill  <jason@redhat.com>
927         PR c++/58761
928         * pt.c (tsubst_copy): Don't check at_function_scope_p.
929         (instantiate_class_template_1): Don't push_to_top_level in an nsdmi.
931 2014-05-19  Paolo Carlini  <paolo.carlini@oracle.com>
933         * typeck2.c (cxx_incomplete_type_diagnostic): Use inform.
934         * parser.c (cp_parser_enum_specifier): Likewise.
936 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
938         * class.c (sorted_fields_type_new): Adjust.
939         * cp-cilkplus.c (cilk_install_body_with_frame_cleanup): Likewise.
940         * cp-objcp-common.c (decl_shadowed_for_var_insert): Likewise.
941         * cp-tree.h: Remove usage of variable_size gty attribute.
942         * decl.c (make_label_decl): Adjust.
943         (check_goto): Likewise.
944         (start_preparsed_function): Likewise.
945         (save_function_data): Likewise.
946         * lex.c (init_reswords): Likewise.
947         (retrofit_lang_decl): Likewise.
948         (cxx_dup_lang_specific_decl): Likewise.
949         (copy_lang_type): Likewise.
950         (cxx_make_type): Likewise.
951         * name-lookup.c (binding_entry_make): Likewise.
952         (binding_table_construct): Likewise.
953         (binding_table_new): Likewise.
954         (cxx_binding_make): Likewise.
955         (pushdecl_maybe_friend_1): Likewise.
956         (begin_scope): Likewise.
957         (push_to_top_level): Likewise.
958         * parser.c (cp_lexer_alloc): Likewise.
959         (cp_lexer_new_from_tokens): Likewise.
960         (cp_token_cache_new): Likewise.
961         (cp_parser_context_new): Likewise.
962         (cp_parser_new): Likewise.
963         (cp_parser_nested_name_specifier_opt): Likewise.
964         (cp_parser_template_id): Likewise.
965         * pt.c (maybe_process_partial_specialization): Likewise.
966         (register_specialization): Likewise.
967         (add_pending_template): Likewise.
968         (lookup_template_class_1): Likewise.
969         (push_tinst_level): Likewise.
970         * semantics.c (register_constexpr_fundef): Likewise.
971         (cxx_eval_call_expression): Likewise.
972         * typeck2.c (abstract_virtuals_error_sfinae): Likewise.
974 2014-05-16  Paolo Carlini  <paolo.carlini@oracle.com>
976         PR c++/51640
977         * parser.c (cp_parser_diagnose_invalid_type_name): Early return
978         when cp_parser_lookup_name sets ambiguous_decls.
980 2014-05-15  Jason Merrill  <jason@redhat.com>
982         * call.c (print_conversion_rejection): Use loc consistently.
984 2014-05-14  Paolo Carlini  <paolo.carlini@oracle.com>
986         * cp-tree.h (DIRECT_LIST_INIT_P): Add.
987         * call.c (convert_like_real, build_new_method_call_1): Use it.
988         * decl2.c (grokfield): Likewise.
989         * init.c (perform_member_init, build_aggr_init, expand_default_init,
990         build_new_1): Likewise.
991         * mangle.c (write_expression): Likewise.
992         * parser.c (cp_parser_late_parse_one_default_arg): Likewise.
994 2014-05-14  Jason Merrill  <jason@redhat.com>
996         PR c++/20332
997         PR c++/21631
998         * call.c (reference_binding): Treat lvalue/rvalue mismatch and
999         dropped cv-quals as a bad conversion.
1000         (convert_like_real) [ck_ref_bind]: Explain them.
1001         (compare_ics): Check badness before stripping reference
1002         bindings.  Handle comparing bad reference bindings.
1003         * typeck.c (comp_cv_qualification): Add overload that just takes
1004         integers.
1005         * cp-tree.h: Declare it.
1007         * call.c (struct conversion_info): Rename 'from_type' to 'from'.
1008         (arg_conversion_rejection, bad_arg_conversion_rejection)
1009         (explicit_conversion_rejection, template_conversion_rejection): Adjust.
1010         (add_function_candidate): Pass actual argument, rather than type, to
1011         bad_arg_conversion_rejection.
1012         (print_conversion_rejection): Explain what's wrong with the conversion.
1013         (print_z_candidates): Say "candidate:" before each candidate.
1014         (splice_viable): Be strict if we see a viable or template candidate.
1015         (build_user_type_conversion_1): Pass false to strict parameter.
1016         (perform_overload_resolution, build_conditional_expr_1): Likewise.
1017         (build_new_op_1, build_new_method_call_1): Likewise.
1018         (build_op_call_1): Pass true to strict parameter.
1020 2014-05-13  Jason Merrill  <jason@redhat.com>
1022         * call.c (print_error_for_call_failure): Say "no match" rather
1023         than "ambiguous" if there were no strict matches.
1024         (build_new_method_call_1): Likewise.
1026         PR c++/61151
1027         * semantics.c (is_this_parameter): Allow capture proxies too.
1029 2014-05-12  Jason Merrill  <jason@redhat.com>
1031         * call.c (maybe_print_user_conv_context): New.
1032         (convert_like_real): Use it.  Print call context for bad
1033         user-defined conversion.
1034         (build_over_call): Print call context for bad 'this' conversion.
1036         * call.c (convert_like_real): Use inform for identifying the
1037         declaration point.
1039 2014-05-12  Paolo Carlini  <paolo.carlini@oracle.com>
1041         * cvt.c (cp_convert_to_pointer): Don't call error_at if
1042         complain & tf_error is false.
1044         * decl.c (make_unbound_class_template): Prefer inform for
1045         "declared here"-type message.
1047 2014-05-09  Momchil Velikov  <momchil.velikov@gmail.com>
1049         PR c++/60463
1050         PR c++/60755
1051         * lambda.c (lambda_expr_this_capture): Add new parameter
1052         add_capture_p controlling whether the functions will try to
1053         capture 'this' via the default capture.
1054         (maybe_resolve_dummy): Likewise.
1055         * cp-tree.h: Adjust prototypes.
1056         * call.c, semantics.c: Change callers of these functions.
1057         * call.c (build_new_method_call_1): Use the actual 'this' that
1058         would be potentially captured for the overload resolution, instead
1059         of the dummy object.
1061 2014-05-09  Paolo Carlini  <paolo.carlini@oracle.com>
1063         * pt.c (convert_nontype_argument_function): Add tsubst_flags_t
1064         parameter.
1065         (convert_nontype_argument): Adjust calls.
1066         (coerce_template_parameter_pack): Add missing complain & tf_error
1067         check.
1069 2014-05-09  Jason Merrill  <jason@redhat.com>
1071         DR 587
1072         PR c++/51317
1073         * call.c (build_conditional_expr_1, conditional_conversion): Handle
1074         non-class lvalues and xvalues that differ only in cv-qualifiers.
1076         DR 5
1077         PR c++/60019
1078         * call.c (build_user_type_conversion_1): The copy-init temporary
1079         is cv-unqualified.
1081         PR c++/58714
1082         * tree.c (stabilize_expr): A stabilized prvalue is an xvalue.
1084         PR c++/54348
1085         * call.c (build_conditional_expr_1): If overload resolution finds
1086         no match, just say "different types".
1088         PR c++/32019
1089         * call.c (build_conditional_expr_1): Improve ambiguity diagnostic.
1091         PR c++/22434
1092         * call.c (build_conditional_expr_1): Don't try to pool cv-quals
1093         if we didn't find a conversion.
1094         Don't accept a bad conversion too early.
1096 2014-05-08  Paolo Carlini  <paolo.carlini@oracle.com>
1098         PR c++/13981
1099         * typeck.c (convert_for_assignment): Provide an inform for pointers
1100         to incomplete class types.
1102 2014-05-07  Paolo Carlini  <paolo.carlini@oracle.com>
1104         PR c++/61083
1105         * pt.c (convert_nontype_argument): Protect all the error calls
1106         with complain & tf_error.
1108 2014-05-07  Paolo Carlini  <paolo.carlini@oracle.com>
1110         PR c++/61080
1111         * pt.c (instantiate_decl): Avoid generating the body of a
1112         deleted function.
1114 2014-05-06  Paolo Carlini  <paolo.carlini@oracle.com>
1116         PR c++/60999
1117         * pt.c (maybe_begin_member_template_processing): Use
1118         uses_template_parms.
1120 2014-05-06  Kenneth Zadeck  <zadeck@naturalbridge.com>
1121             Mike Stump  <mikestump@comcast.net>
1122             Richard Sandiford  <rdsandiford@googlemail.com>
1124         * call.c: Include wide-int.h.
1125         (type_passed_as): Use tree_int_cst_lt instead of INT_CST_LT_UNSIGNED.
1126         (convert_for_arg_passing): Likewise.
1127         * class.c: Include wide-int.h.
1128         (walk_subobject_offsets): Use tree_int_cst_lt instead of INT_CST_LT.
1129         (end_of_class): Use tree_int_cst_lt instead of INT_CST_LT_UNSIGNED.
1130         (include_empty_classes): Likewise
1131         (layout_class_type): Use tree_int_cst_lt instead of INT_CST_LT.
1132         * cvt.c: Include wide-int.h.
1133         (ignore_overflows): Use wide_int_to_tree.
1134         * decl.c: Include wide-int.h.
1135         (check_array_designated_initializer): Use wide-int interfaces.
1136         (compute_array_index_type): Use tree_int_cst_lt instead of INT_CST_LT.
1137         (finish_enum_value_list): Use signop.
1138         (build_enumerator): Use wide-int interfaces.
1139         * init.c: Include wide-int.h.
1140         (build_new_1): Use wide-int interfaces.
1141         * mangle.c: Include wide-int.h.
1142         (write_integer_cst): Use wide-int interfaces.
1143         (write_array_type): Likewise.
1144         * tree.c: Include wide-int.h.
1145         (cp_tree_equal): Use tree_int_cst_equal.
1146         * typeck2.c: Include wide-int.h.
1147         (process_init_constructor_array): Use wide-int interfaces.
1149 2014-05-03  Paolo Carlini  <paolo.carlini@oracle.com>
1151         PR c++/58582
1152         * decl.c (grokfndecl): Check duplicate_decls return value for
1153         error_mark_node.
1154         * pt.c (instantiate_decl): A deleted function is defined.
1156 2014-05-02  Jason Merrill  <jason@redhat.com>
1158         * decl2.c (vague_linkage_p): Local statics have vague linkage.
1160         PR c++/60992
1161         * lambda.c (lambda_capture_field_type): Wrap anything dependent
1162         other than 'this'.
1163         (add_capture): Check for VLA before calling it.
1164         * semantics.c (is_this_parameter): Accept any 'this' parameter, not
1165         just the current one.  Make non-static.
1166         * cp-tree.h: Declare it.
1167         * pt.c (tsubst_copy) [VAR_DECL]: Also build a new VAR_DECL if
1168         the operand was static or constant.
1170 2014-05-02  Marek Polacek  <polacek@redhat.com>
1172         * typeck.c (maybe_warn_about_returning_address_of_local): Separate
1173         warning_at calls.
1175 2014-05-01  Marek Polacek  <polacek@redhat.com>
1177         PR c/43395
1178         * typeck.c (maybe_warn_about_returning_address_of_local): Distinguish
1179         between label and variable when warning about returning local address.
1181 2014-04-30  Jason Merrill  <jason@redhat.com>
1183         PR c++/60980
1184         * init.c (build_value_init): Don't try to call an array constructor.
1186         PR c++/60951
1187         * typeck2.c (massage_init_elt): Use maybe_constant_init.
1189 2014-04-30  Marek Polacek  <polacek@redhat.com>
1191         * typeck.c (cp_build_binary_op): Call ubsan_instrument_division
1192         even when SANITIZE_FLOAT_DIVIDE is on.  Set doing_div_or_mod even
1193         for non-integer types.
1195 2014-04-29  Jason Merrill  <jason@redhat.com>
1197         DR 1351
1198         Represent the unevaluated exception specification of an implicitly
1199         declared or deleted function with a simple placeholder, not a list
1200         of functions.
1201         * cp-tree.h (UNEVALUATED_NOEXCEPT_SPEC_P): New.
1202         * except.c (unevaluated_noexcept_spec): New.
1203         * class.c (deduce_noexcept_on_destructor): Use it.
1204         * decl.c (check_redeclaration_exception_specification): Call
1205         maybe_instantiate_noexcept.
1206         (duplicate_decls): Call it before merge_types.
1207         (start_preparsed_function): Call maybe_instantiate_noexcept.
1208         * decl2.c (mark_used): Call maybe_instantiate_noexcept earlier.
1209         * init.c (get_nsdmi): Factor out of perform_member_init.
1210         * method.c (process_subob_fn): Call maybe_instantiate_noexcept.
1211         (walk_field_subobs): Consider NSDMI for EH spec.
1212         (get_defaulted_eh_spec): New.
1213         (implicitly_declare_fn): Use unevaluated_noexcept_spec.
1214         (defaulted_late_check): Defer EH checking in non-template classes.
1215         (after_nsdmi_defaulted_late_checks): New.
1216         * parser.c (cp_parser_class_specifier_1): Use it.
1217         (unparsed_classes): New macro.
1218         * parser.h (cp_unparsed_functions_entry_d): Add classes field.
1219         * pt.c (maybe_instantiate_noexcept): Use get_defaulted_eh_spec.
1220         Remove list-of-functions handling.
1221         * typeck2.c (merge_exception_specifiers): Remove list-of-functions
1222         handling and FN parameter.
1223         * typeck.c (merge_types): Adjust.
1225 2014-04-28  Paolo Carlini  <paolo.carlini@oracle.com>
1227         PR c++/59120
1228         * parser.c (cp_parser_alias_declaration): Check return value of
1229         cp_parser_require.
1231 2014-04-24  Jakub Jelinek  <jakub@redhat.com>
1233         * parser.c (cp_parser_omp_atomic): Allow seq_cst before
1234         atomic-clause, allow comma in between atomic-clause and
1235         seq_cst.
1237 2014-04-24  Marc Glisse  <marc.glisse@inria.fr>
1239         PR libstdc++/43622
1240         * rtti.c (emit_support_tinfos): Do not iterate on
1241         registered_builtin_types (partial revert).
1243 2014-04-23 Dinar Temirbulatov  <dtemirbulatov@gmail.com>
1245         PR c++/57958
1246         * semantics.c (apply_deduced_return_type): Complete non-void type
1247         before estimating whether the type is aggregate.
1249 2014-04-22  Marc Glisse  <marc.glisse@inria.fr>
1251         PR libstdc++/43622
1252         * rtti.c (emit_support_tinfo_1): New function, extracted from
1253         emit_support_tinfos.
1254         (emit_support_tinfos): Call it and iterate on registered_builtin_types.
1256 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
1258         PR c/59073
1259         * parser.c (cp_parser_omp_parallel): If cp_parser_omp_for
1260         fails, don't set OM_PARALLEL_COMBINED and return NULL.
1262 2014-04-18  Jason Merrill  <jason@redhat.com>
1264         DR 1571
1265         * call.c (reference_binding): Recurse on user-defined conversion.
1267         PR c++/60872
1268         * call.c (standard_conversion): Don't try to apply restrict to void.
1270 2014-04-16  Marc Glisse  <marc.glisse@inria.fr>
1272         * decl.c (reshape_init_r): Handle a single element of vector type.
1274 2014-04-16  Patrick Palka  <patrick@parcs.ath.cx>
1276         PR c++/60765
1277         * decl2.c (cplus_decl_attributes): Handle
1278         pointer-to-member-function declarations.
1280 2014-04-16  Patrick Palka  <patrick@parcs.ath.cx>
1282         PR c++/60764
1283         * call.c (build_user_type_coversion): Use build_dummy_object
1284         to create the placeholder object for a constructor method call.
1285         (build_special_member_call): Likewise.
1286         (build_over_call): Check for the placeholder object with
1287         is_dummy_object.
1288         (build_new_method_call_1): Likewise.  Don't attempt to resolve
1289         a dummy object for a constructor method call.
1291 2014-04-16  Paul Pluzhnikov  <ppluzhnikov@google.com>
1293         PR c++/59295
1294         * friend.c (add_friend, make_friend_class): Move repeated friend
1295         warning under Wredundant_decls.
1297 2014-04-15  Paolo Carlini  <paolo.carlini@oracle.com>
1299         * decl.c (duplicate_decls): Remove redundant TYPE_NAME use.
1300         * name-lookup.c (pushdecl_maybe_friend_1): Likewise.
1301         (do_class_using_decl): Likewise.
1302         * mangle.c (dump_substitution_candidates): Use TYPE_NAME_STRING.
1304 2014-04-15  Jakub Jelinek  <jakub@redhat.com>
1306         PR plugins/59335
1307         * Make-lang.h (CP_PLUGIN_HEADERS): Add type-utils.h.
1309 2014-04-14  Paolo Carlini  <paolo.carlini@oracle.com>
1311         * cp-tree.h (TYPE_IDENTIFIER): Remove declaration.
1313 2014-04-14  Paolo Carlini  <paolo.carlini@oracle.com>
1315         * pt.c (mark_template_parm): Use template_parm_level_and_index.
1317 2014-04-11  Jason Merrill  <jason@redhat.com>
1319         * parser.h (struct cp_token): Rename ambiguous_p to error_reported.
1320         * parser.c: Adjust.
1321         (cp_lexer_get_preprocessor_token): Always clear it.
1322         (cp_parser_lambda_expression): Use it to avoid duplicate diagnostics.
1324         DR 1467
1325         PR c++/51747
1326         * decl.c (reshape_init_r): Handle a single element of class type.
1328         DR 1338
1329         * decl.c (cxx_init_decl_processing): Set DECL_IS_MALLOC on
1330         built-in operator new.
1332 2014-04-11  Paolo Carlini  <paolo.carlini@oracle.com>
1334         PR c++/58600
1335         * name-lookup.c (parse_using_directive): Return early if the
1336         attribs argument is error_mark_node; use get_attribute_name.
1338 2014-04-11  Jason Merrill  <jason@redhat.com>
1340         DR 1030
1341         PR c++/51253
1342         * cp-tree.h (CALL_EXPR_LIST_INIT_P): New.
1343         * call.c (struct z_candidate): Add flags field.
1344         (add_candidate): Add flags parm.
1345         (add_function_candidate, add_conv_candidate, build_builtin_candidate)
1346         (add_template_candidate_real): Pass it.
1347         (build_over_call): Set CALL_EXPR_LIST_INIT_P.
1348         * tree.c (build_aggr_init_expr): Copy it.
1349         * semantics.c (simplify_aggr_init_expr): Preevaluate args if it's set.
1351 2014-04-10  Richard Biener  <rguenther@suse.de>
1352             Jakub Jelinek  <jakub@redhat.com>
1354         PR ipa/60761
1355         * error.c (dump_decl) <case FUNCTION_DECL>: If
1356         DECL_LANG_SPECIFIC is NULL, but DECL_ABSTRACT_ORIGIN is not,
1357         recurse on DECL_ABSTRACT_ORIGIN instead of printing
1358         <built-in>.
1360 2014-04-09  Fabien Chêne  <fabien@gcc.gnu.org>
1362         * pt.c (check_template_variable): Check for the return of pedwarn
1363         before emitting a note.
1364         * parser.c (cp_parser_lambda_introducer): Likewise.
1366 2014-04-08  Paolo Carlini  <paolo.carlini@oracle.com>
1368         PR c++/59115
1369         * pt.c (process_template_parm): For an invalid non-type parameter
1370         only set TREE_TYPE to error_mark_node.
1371         (push_inline_template_parms_recursive, comp_template_parms,
1372         redeclare_class_template, coerce_template_template_parm,
1373         coerce_template_template_parms, unify): Use error_operand_p.
1375 2014-04-08  Nathan Sidwell  <nathan@codesourcery.com>
1377         * class.c (check_bases_and_members): Warn about non-virtual dtors
1378         in public bases only.  Check warn_ecpp before complaining about
1379         non-polymorphic bases.
1381 2014-04-04  Fabien Chêne  <fabien@gcc.gnu.org>
1383         * decl.c (duplicate_decls): Check for the return of warning_at
1384         before emitting a note.
1385         (warn_misplaced_attr_for_class_type): Likewise.
1386         (check_tag_decl): Likewise.
1388 2014-04-04  Paolo Carlini  <paolo.carlini@oracle.com>
1390         PR c++/58207
1391         * semantics.c (sort_constexpr_mem_initializers): Robustify loop.
1393 2014-04-04  Patrick Palka  <patrick@parcs.ath.cx>
1395         PR c++/44613
1396         * semantics.c (add_stmt): Set STATEMENT_LIST_HAS_LABEL.
1397         * decl.c (cp_finish_decl): Create a new BIND_EXPR before
1398         instantiating a variable-sized type.
1400         PR c++/21113
1401         * decl.c (decl_jump_unsafe): Consider variably-modified decls.
1403 2014-04-04  Fabien Chêne  <fabien@gcc.gnu.org>
1405         * class.c (find_abi_tags_r): Check for the return of warning
1406         before emitting a note.
1407         (one_inherited_ctor): Likewise.
1409 2014-04-04  Fabien Chêne  <fabien@gcc.gnu.org>
1411         * decl.c (duplicate_decls): Check for the return of permerror
1412         before emitting a note.
1414 2014-04-03  Nathan Sidwell  <nathan@codesourcery.com>
1416         * class.c (accessible_nvdtor_p): New.
1417         (check_bases): Don't check base destructor here ...
1418         (check_bases_and_members): ... check them here.  Trigger on
1419         Wnon-virtual-dtor flag.
1420         (finish_struct_1): Use accessible_nvdtor_p.
1422 2014-04-01  Jason Merrill  <jason@redhat.com>
1424         * pt.c (process_partial_specialization): Say "not deducible"
1425         rather than "not used".  Use inform.
1427         PR c++/60374
1428         * pt.c (coerce_template_parms): Check that the pack expansion
1429         pattern works with the first matching parameter.
1431 2014-04-01  Fabien Chêne  <fabien@gcc.gnu.org>
1433         * init.c (perform_member_init): Homogenize uninitialized
1434         diagnostics.
1436 2014-04-01  Jason Merrill  <jason@redhat.com>
1438         PR c++/60708
1439         * call.c (build_array_conv): Call complete_type.
1441         PR c++/60713
1442         * typeck2.c (PICFLAG_SIDE_EFFECTS): New.
1443         (picflag_from_initializer): Return it.
1444         (process_init_constructor): Handle it.
1446         PR c++/60642
1447         * decl2.c (is_late_template_attribute): Don't defer abi_tag.
1448         * mangle.c (write_unqualified_name): Fix abi_tag on templates.
1449         * pt.c (get_template_info): Handle NAMESPACE_DECL.
1450         (most_general_template): Handle more kinds of template.
1451         * tree.c (handle_abi_tag_attribute): Ignore abi_tag on template
1452         instantiations and specializations.
1454 2014-03-31  Patrick Palka  <patrick@parcs.ath.cx>
1456         PR c++/44859
1457         * typeck.c (maybe_warn_about_returning_address_of_local): Unwrap
1458         COMPONENT_REFs and ARRAY_REFs sooner.
1460 2014-03-29  Adam Butcher  <adam@jessamine.co.uk>
1462         PR c++/60626
1463         * parser.c (cp_parser_init_declarator): Handle erroneous generic type
1464         usage in non-functions with pushed scope.
1466 2014-03-28  Adam Butcher  <adam@jessamine.co.uk>
1468         PR c++/60573
1469         * name-lookup.h (cp_binding_level): New transient field defining_class_p
1470         to indicate whether a scope is in the process of defining a class.
1471         * semantics.c (begin_class_definition): Set defining_class_p.
1472         * name-lookup.c (leave_scope): Reset defining_class_p.
1473         * parser.c (synthesize_implicit_template_parm): Use cp_binding_level::
1474         defining_class_p rather than TYPE_BEING_DEFINED as the predicate for
1475         unwinding to class-defining scope to handle the erroneous definition of
1476         a generic function of an arbitrarily nested class within an enclosing
1477         class.
1479 2014-03-26  Fabien Chêne  <fabien@gcc.gnu.org>
1481         PR c++/52369
1482         * method.c (walk_field_subobs): Improve the diagnostic
1483         locations for both REFERENCE_TYPEs and non-static const members.
1484         * init.c (diagnose_uninitialized_cst_or_ref_member): Use %q#D
1485         instead of %qD to be consistent with the c++11 diagnostic.
1487 2014-03-25  Jason Merrill  <jason@redhat.com>
1489         PR c++/60566
1490         PR c++/58678
1491         * class.c (build_vtbl_initializer): Handle abstract dtors here.
1492         * search.c (get_pure_virtuals): Not here.
1494         PR c++/60375
1495         * parser.c (cp_parser_lambda_expression): Don't parse the body of
1496         a lambda in unevaluated context.
1498         PR c++/60628
1499         * decl.c (create_array_type_for_decl): Complain about array of auto.
1501 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
1503         PR c++/60331
1504         * semantics.c (potential_constant_expression_1): Handle
1505         DECL_EXPR.
1507 2014-03-24  Adam Butcher  <adam@jessamine.co.uk>
1509         PR c++/60627
1510         * parser.c (cp_parser_parameter_declaration_clause): Prevent 'auto' from
1511         introducing an implicit function template parameter within an explicit
1512         instantiation.
1514 2014-03-22  Jason Merrill  <jason@redhat.com>
1516         PR c++/60574
1517         * decl.c (grokdeclarator): Change permerror about 'virtual auto'
1518         to error.
1520 2014-03-21  Paolo Carlini  <paolo.carlini@oracle.com>
1522         PR c++/60384
1523         * name-lookup.c (push_class_level_binding_1): Check identifier_p
1524         on the name argument.
1526 2014-03-20  Jakub Jelinek  <jakub@redhat.com>
1528         PR c++/60572
1529         * init.c (build_zero_init_1): Ignore fields with error_mark_node
1530         type.
1532 2014-03-19  Paolo Carlini  <paolo.carlini@oracle.com>
1534         PR c++/51474
1535         * call.c (build_new_method_call_1): Handle pure virtuals called by
1536         NSDMIs too.
1538 2014-03-17  Adam Butcher  <adam@jessamine.co.uk>
1540         PR c++/60390
1541         * parser.c (cp_parser_member_declaration): Don't allow
1542         finish_fully_implicit_template to consider friend declarations to be
1543         class member templates.
1544         (synthesize_implicit_template_parm): Handling winding back through class
1545         scope to the class being defined in order to inject a template argument
1546         list.
1548         PR c++/60391
1549         * parser.c (cp_parser_skip_to_end_of_block_or_statement): Unwind generic
1550         function scope as per cp_parser_skip_to_end_of_statement.
1552 2014-03-17  Paolo Carlini  <paolo.carlini@oracle.com>
1554         PR c++/59571
1555         * typeck2.c (check_narrowing): Use fold_non_dependent_expr_sfinae.
1557 2014-03-14  Jason Merrill  <jason@redhat.com>
1559         PR c++/60532
1560         PR c++/58678
1561         * search.c (get_pure_virtuals): Handle abstract dtor here.
1562         (dfs_get_pure_virtuals): Not here.
1564         PR c++/58678
1565         * search.c (dfs_get_pure_virtuals): Treat the destructor of an
1566         abstract class as pure.
1568 2014-03-13  Paolo Carlini  <paolo.carlini@oracle.com>
1570         PR c++/60383
1571         * pt.c (maybe_process_partial_specialization): Check return value
1572         of check_specialization_namespace.
1574 2014-03-13  Paolo Carlini  <paolo.carlini@oracle.com>
1576         PR c++/60254
1577         * semantics.c (finish_static_assert): Call cxx_constant_value only
1578         if require_potential_rvalue_constant_expression returns true.
1580 2014-03-11  Paolo Carlini  <paolo.carlini@oracle.com>
1582         PR c++/60389
1583         * method.c (get_inherited_ctor): New.
1584         * cp-tree.h (get_inherited_ctor): Declare it.
1585         * semantics.c (is_valid_constexpr_fn): Use it.
1587 2014-03-10  Jason Merrill  <jason@redhat.com>
1589         PR c++/60367
1590         * call.c (convert_default_arg): Remove special handling for
1591         CONSTRUCTOR.
1593         PR c++/53492
1594         * parser.c (cp_parser_class_head): Also check PRIMARY_TEMPLATE_P
1595         when deciding whether to call push_template_decl for a member class.
1596         * pt.c (push_template_decl_real): Return after wrong levels error.
1598 2014-03-08  Adam Butcher  <adam@jessamine.co.uk>
1600         PR c++/60033
1601         * pt.c (tsubst_copy): When retrieving a capture pack from a generic
1602         lambda, remove the lambda's own template argument list prior to fetching
1603         the specialization.
1605         PR c++/60393
1606         * parser.c (cp_parser_parameter_declaration_clause): Move generic
1607         function template unwinding on error into a more general location, ...
1608         (cp_parser_skip_to_end_of_statement): ... here.
1610 2014-03-07  Jason Merrill  <jason@redhat.com>
1612         * Make-lang.in (check_g++_parallelize): Split dg.exp.
1614         * parser.c (cp_parser_type_id_1): Only allow 'auto' in C++1y if
1615         we're in a trailing return type.
1617         * typeck.c (comp_template_parms_position): 'auto' and
1618         'decltype(auto)' are different from real template parms.
1620         * parser.c (cp_parser_using_declaration): Consume the semicolon
1621         after bare parameter pack error.
1623         * cp-tree.h (REF_PARENTHESIZED_P): New.
1624         * semantics.c (force_paren_expr): Set it.
1625         * pt.c (do_auto_deduction): Check it.
1626         (tsubst) [COMPONENT_REF]: Copy it.
1627         * typeck.c (maybe_warn_about_useless_cast): Don't strip dereference.
1629         * decl.c (create_array_type_for_decl): Only warn about invalid
1630         C++1y VLA if flag_iso or warn_vla>0.
1631         (grokdeclarator): Likewise.
1632         * pt.c (tsubst): Likewise.
1633         * semantics.c (finish_decltype_type): Likewise.
1634         * typeck.c (cxx_sizeof_or_alignof_type): Likewise.
1635         (cp_build_addr_expr_1): Likewise.
1636         * init.c (build_new_1): Improve diagnostics.
1638 2014-03-07  Paolo Carlini  <paolo.carlini@oracle.com>
1640         PR c++/58609
1641         * decl.c (check_initializer): Return NULL_TREE after error;
1642         consistently use inform.
1644 2014-03-07  Paolo Carlini  <paolo.carlini@oracle.com>
1646         * decl.c (check_initializer): Remove dead code.
1648 2014-03-06  Marek Polacek  <polacek@redhat.com>
1650         PR c/60197
1651         * typeck.c (check_return_expr): Call contains_cilk_spawn_stmt instead
1652         of checking tree code.
1654 2014-03-06  Paolo Carlini  <paolo.carlini@oracle.com>
1656         * parser.c (cp_lexer_set_source_position): New.
1657         (cp_parser_mem_initializer): Use it.
1658         (cp_parser_postfix_open_square_expression): Likewise.
1659         (cp_parser_parenthesized_expression_list): Likewise.
1660         (cp_parser_new_initializer): Likewise.
1661         (cp_parser_jump_statement): Likewise.
1662         (cp_parser_initializer): Likewise.
1663         (cp_parser_functional_cast): Likewise.
1665 2014-03-05  Jason Merrill  <jason@redhat.com>
1667         PR c++/60409
1668         * semantics.c (force_paren_expr): Only add a PAREN_EXPR to a
1669         dependent expression.
1671         PR c++/60361
1672         * parser.c (cp_parser_template_id): Don't set up a CPP_TEMPLATE_ID
1673         if re-parsing might succeed.
1674         * semantics.c (finish_id_expression): Use of a parameter outside
1675         the function body is a parse error.
1677         * parser.c (cp_parser_mem_initializer): Set input_location
1678         properly for init-list warning.
1679         (cp_parser_postfix_open_square_expression): Likewise.
1680         (cp_parser_parenthesized_expression_list): Likewise.
1681         (cp_parser_new_initializer): Likewise.
1682         (cp_parser_jump_statement): Likewise.
1683         (cp_parser_initializer): Likewise.
1684         (cp_parser_functional_cast): Likewise.
1686 2014-03-04  Jason Merrill  <jason@redhat.com>
1688         PR c++/60417
1689         * typeck2.c (process_init_constructor_record): Set
1690         CONSTRUCTOR_IS_DIRECT_INIT on {} for omitted initializers.
1692         PR c++/60415
1693         PR c++/54359
1694         * parser.c (cp_parser_direct_declarator): Set declarator to
1695         cp_error_declarator on invalid qualified-id.
1697 2014-03-04  Paolo Carlini  <paolo.carlini@oracle.com>
1699         PR c++/60376
1700         * parser.c (cp_parser_using_declaration): Early return when
1701         cp_parser_nested_name_specifier errors out.
1703 2014-03-01  Adam Butcher  <adam@jessamine.co.uk>
1705         PR c++/60377
1706         * parser.c (cp_parser_parameter_declaration_clause): Unwind generic
1707         function scope on parse error in function parameter list.
1709 2014-03-01  Paolo Carlini  <paolo.carlini@oracle.com>
1711         * method.c (implicitly_declare_fn): Remove redundant
1712         DECL_TEMPLATE_RESULT and STRIP_TEMPLATE uses.
1713         * semantics.c (is_instantiation_of_constexpr): Likewise.
1714         * error.c (dump_function_decl): Likewise.
1716 2014-03-01  Jason Merrill  <jason@redhat.com>
1718         PR c++/60379
1719         * semantics.c (begin_maybe_infinite_loop): Use
1720         fold_non_dependent_expr_sfinae.
1722 2014-02-28  Jason Merrill  <jason@redhat.com>
1724         PR c++/58845
1725         * typeck.c (cp_build_binary_op): Sorry on vector&&vector.
1727 2014-02-28  Paolo Carlini  <paolo.carlini@oracle.com>
1729         PR c++/58610
1730         * cp-tree.h (DECL_DELETED_FN): Use LANG_DECL_FN_CHECK.
1731         * call.c (print_z_candidate): Remove STRIP_TEMPLATE use.
1732         * lambda.c (maybe_add_lambda_conv_op): Likewise.
1734 2014-02-27  Paolo Carlini  <paolo.carlini@oracle.com>
1736         PR c++/60253
1737         * call.c (convert_arg_to_ellipsis): Return error_mark_node after
1738         error_at.
1740 2014-02-27  Jason Merrill  <jason@redhat.com>
1742         PR c++/60353
1743         PR c++/55877
1744         * decl2.c (tentative_decl_linkage): Don't mess with functions that
1745         are not yet defined.
1747 2014-02-26  Jason Merrill  <jason@redhat.com>
1749         PR c++/60347
1750         PR lto/53808
1751         * class.c (clone_function_decl): Don't note_vague_linkage_fn.
1752         * init.c (build_vtbl_address): Do it here.
1754         PR c++/59231
1755         PR c++/11586
1756         PR c++/14710
1757         PR c++/57132
1758         * pt.c (struct warning_sentinel): New.
1759         (tsubst_copy_and_build): Use it instead of
1760         c_inhibit_evaluation_warnings.
1761         * typeck.c (maybe_warn_about_useless_cast): Remove
1762         c_inhibit_evaluation_warnings check.
1764         PR c++/54440
1765         * pt.c (get_template_parm_index): New.
1766         (fixed_parameter_pack_p_1, fixed_parameter_pack_p): New.
1767         (process_template_parm): Allow bare packs in template template
1768         parm template parms.
1769         (coerce_template_parameter_pack): Handle fixed template template
1770         parm packs and fixed packs not at the end of the parm list.
1771         (coerce_template_parms): Handle template parm packs not at the end
1772         of the parm list.
1773         (gen_elem_of_pack_expansion_instantiation): Handle a decl expansion.
1775         PR c++/60182
1776         * pt.c (unify): Ignore alias templates when deducing a template
1777         template parameter.
1779         PR c++/60345
1780         Revert:
1781         DR 1571
1782         * call.c (reference_binding): Recurse on user-defined conversion.
1783         (convert_like_real) [ck_ref_bind]: Explain cv-qual mismatch.
1785 2014-02-25  Jason Merrill  <jason@redhat.com>
1787         DR 1571
1788         * call.c (reference_binding): Recurse on user-defined conversion.
1789         (convert_like_real) [ck_ref_bind]: Explain cv-qual mismatch.
1791         * call.c (print_conversion_rejection): Handle n_arg of -2.
1792         (build_user_type_conversion_1): Pass it.
1794         PR c++/55877
1795         * decl2.c (no_linkage_error): Handle C++98 semantics.
1796         (reset_type_linkage): Move from decl.c.
1797         (reset_type_linkage_1, reset_type_linkage_2, bt_reset_linkage_1)
1798         (bt_reset_linkage_2, reset_decl_linkage): New.
1799         (tentative_decl_linkage): Factor out of expand_or_defer_fn_1.
1800         (cp_write_global_declarations): Move condition into no_linkage_error.
1801         * decl.c (grokfndecl, grokvardecl): Use no_linkage_error.
1802         * semantics.c (expand_or_defer_fn_1): Factor out
1803         tentative_decl_linkage.
1804         * cp-tree.h: Adjust.
1806         * decl2.c (finish_static_data_member_decl): Diagnose static data
1807         member in unnamed class.
1808         * class.c (finish_struct_anon_r): Avoid redundant diagnostic.
1810         PR lto/53808
1811         * class.c (clone_function_decl): Call note_vague_linkage_fn for
1812         defaulted virtual dtor.
1814         DR 1286
1815         PR c++/60328
1816         * pt.c (get_underlying_template): Fix equivalence calculation.
1818 2014-02-25  Adam Butcher  <adam@jessamine.co.uk>
1820         PR c++/60311
1821         * parser.c (function_being_declared_is_template_p): Return false when
1822         processing a template parameter list.
1823         (cp_parser_parameter_declaration_clause): Don't set
1824         auto_is_implicit_function_template_parm_p when processing a
1825         template parameter list.
1827         * parser.c (synthesize_implicit_template_parm): Inject new template
1828         argument list appropriately when a generic member function
1829         of a class template is declared out-of-line.
1831         PR c++/60065
1832         * parser.c (cp_parser_direct_declarator): Don't save and
1833         restore num_template_parameter_lists around call to
1834         cp_parser_parameter_declaration_list.
1835         (function_being_declared_is_template_p): New predicate.
1836         (cp_parser_parameter_declaration_list): Use
1837         function_being_declared_is_template_p as predicate for
1838         inspecting current function template parameter list length
1839         rather than num_template_parameter_lists.
1841 2014-02-24  Jason Merrill  <jason@redhat.com>
1843         PR c++/60146
1844         * pt.c (tsubst_omp_for_iterator): Don't let substitution of the
1845         DECL_EXPR initialize a non-class iterator.
1847         PR c++/60312
1848         * parser.c (cp_parser_template_type_arg): Check for invalid 'auto'.
1850 2014-02-21  Jason Merrill  <jason@redhat.com>
1852         PR c++/58170
1853         * parser.c (cp_parser_type_name): Always check dependency.
1854         (cp_parser_type_specifier_seq): Call
1855         cp_parser_parse_and_diagnose_invalid_type_name.
1857         PR c++/60108
1858         * semantics.c (expand_or_defer_fn_1): Check DECL_DEFAULTED_FN.
1860         PR c++/60185
1861         * parser.c (cp_parser_default_argument): Clear
1862         current_class_ptr/current_class_ref like tsubst_default_argument.
1864         PR c++/60252
1865         * lambda.c (maybe_resolve_dummy): Check lambda_function rather
1866         than current_binding_level.
1868         PR c++/60186
1869         * typeck2.c (massage_init_elt): Call fold_non_dependent_expr_sfinae.
1871         PR c++/60187
1872         * parser.c (cp_parser_enum_specifier): Call
1873         check_for_bare_parameter_packs.
1875         PR c++/59347
1876         * pt.c (tsubst_decl) [TYPE_DECL]: Don't try to instantiate an
1877         erroneous typedef.
1879         PR c++/60241
1880         * pt.c (lookup_template_class_1): Update DECL_TEMPLATE_INSTANTIATIONS
1881         of the partial instantiation, not the most general template.
1882         (maybe_process_partial_specialization): Reassign everything on
1883         that list.
1885         PR c++/60216
1886         * pt.c (register_specialization): Copy DECL_DELETED_FN to clones.
1887         (check_explicit_specialization): Don't clone.
1889         PR c++/60219
1890         * pt.c (coerce_template_parms): Bail if argument packing fails.
1892         PR c++/60224
1893         * decl.c (cp_complete_array_type, maybe_deduce_size_from_array_init):
1894         Don't get confused by a CONSTRUCTOR that already has a type.
1896         PR c++/60227
1897         * call.c (build_array_conv): Don't crash on VLA.
1899         PR c++/60248
1900         * mangle.c (mangle_decl): Don't make an alias for a TYPE_DECL.
1902         PR c++/60252
1903         * lambda.c (maybe_resolve_dummy): Don't try to capture this
1904         in declaration context.
1906         DR 1591
1907         PR c++/60051
1908         * pt.c (unify): Only unify if deducible.  Handle 0-length list.
1910         PR c++/60250
1911         * parser.c (cp_parser_direct_declarator): Don't wrap a
1912         type-dependent expression in a NOP_EXPR.
1914         PR c++/60251
1915         * lambda.c (is_normal_capture_proxy): Handle VLA capture.
1917         PR c++/60167
1918         PR c++/60222
1919         PR c++/58606
1920         * parser.c (cp_parser_template_argument): Restore dereference.
1921         * pt.c (template_parm_to_arg): Dereference non-pack expansions too.
1922         (process_partial_specialization): Handle deref.
1923         (unify): Likewise.
1925 2014-02-21  Adam Butcher  <adam@jessamine.co.uk>
1927         PR c++/60052
1928         PR c++/60053
1929         * parser.c (cp_parser_parameter_declaration_list): Correctly reset
1930         implicit_template_scope upon leaving an out-of-line generic member
1931         function definition.
1933 2014-02-20  Kai Tietz  <ktietz@redhat.com>
1935         PR c++/58873
1936         * parser.c (cp_parser_functional_cast): Treat NULL_TREE
1937         valued type argument as error_mark_node.
1939         PR c++/58835
1940         * semantics.c (finish_fname): Handle error_mark_node.
1942 2014-02-19  Jason Merrill  <jason@redhat.com>
1944         PR c++/60046
1945         * pt.c (maybe_instantiate_noexcept): Don't instantiate exception
1946         spec from template context.
1948 2014-02-19  Jakub Jelinek  <jakub@redhat.com>
1950         PR debug/56563
1951         * cp-objcp-common.c (cp_function_decl_explicit_p): Remove
1952         FUNCTION_FIRST_USER_PARMTYPE (decl) != void_list_node check.
1954         PR c++/60267
1955         * pt.c (tsubst_expr): Handle ANNOTATE_EXPR.
1957 2014-02-18  Paolo Carlini  <paolo.carlini@oracle.com>
1959         PR c++/60225
1960         * semantics.c (ensure_literal_type_for_constexpr_object): Use
1961         strip_array_types.
1963 2014-02-18  Paolo Carlini  <paolo.carlini@oracle.com>
1965         PR c++/60215
1966         * semantics.c (cxx_eval_constant_expression, [COMPONENT_REF]):
1967         During error recovery allow_non_constant may be false.
1969 2014-02-18  Adam Butcher  <adam@jessamine.co.uk>
1971         PR c++/60190
1972         * parser.c (cp_parser_lambda_declarator_opt): Pop template parameter
1973         scope whenever a template parameter list has been started, independent
1974         of whether the function call operator was well-formed or not.
1976         PR c++/60064
1977         * parser.c (cp_parser_member_declaration): Pop fully implicit template
1978         scope for generic friend declarations as well as for non-friends.
1980 2014-02-12  Paolo Carlini  <paolo.carlini@oracle.com>
1982         PR c++/60047
1983         * method.c (implicitly_declare_fn): A constructor of a class with
1984         virtual base classes isn't constexpr (7.1.5p4).
1986 2014-02-05  Jan Hubicka  <hubicka@ucw.cz
1988         * parser.c (synthesize_implicit_template_parm): Use grow_tree_vec.
1990 2014-02-05  Jakub Jelinek  <jakub@redhat.com>
1992         PR c++/58703
1993         * parser.c (cp_parser_omp_declare_reduction): Save and free
1994         declarator_obstack.
1996 2014-02-03  Marc Glisse  <marc.glisse@inria.fr>
1998         PR c++/53017
1999         PR c++/59211
2000         * tree.c (handle_init_priority_attribute): Call default_conversion on
2001         the attribute argument.
2003 2014-02-03  Paolo Carlini  <paolo.carlini@oracle.com>
2005         PR c++/58871
2006         * method.c (synthesized_method_walk): If vbases is non-null but
2007         is_empty is true, likewise don't worry about the virtual bases.
2009 2014-02-01  Paolo Carlini  <paolo.carlini@oracle.com>
2011         PR c++/51219
2012         * typeck2.c (process_init_constructor_record): Just skip unnamed
2013         bit-fields.
2015 2014-01-31  Jason Merrill  <jason@redhat.com>
2017         PR c++/59469
2018         * pt.c (mark_decl_instantiated): Call mark_needed.
2020         PR c++/58672
2021         * decl2.c (handle_tls_init): Handle null init fn.
2023         PR c++/55800
2024         * decl2.c (get_tls_init_fn): Copy DECL_EXTERNAL from the variable.
2026 2014-01-31  Paolo Carlini  <paolo.carlini@oracle.com>
2028         PR c++/59082
2029         * class.c (build_vfield_ref): Early return error_mark_node if
2030         TYPE_VFIELD (type) is null.
2031         (build_base_path): Check return value of build_vfield_ref.
2033 2014-01-31  Jason Merrill  <jason@redhat.com>
2035         PR c++/59646
2036         * call.c (convert_like_real) [ck_aggr]: Set TARGET_EXPR_LIST_INIT_P.
2037         [ck_list]: Check for error_mark_node.
2038         (build_aggr_conv): Set LOOKUP_NO_NARROWING and check_narrowing.
2040         PR c++/57043
2041         * pt.c (fn_type_unification): Don't do DEDUCE_EXACT check
2042         during partial ordering.
2044 2014-01-31  Marek Polacek  <polacek@redhat.com>
2046         PR c/59963
2047         * typeck.c (build_function_call_vec): Add dummy arg_loc parameter.
2049 2014-01-30  Jason Merrill  <jason@redhat.com>
2051         PR c++/57899
2052         * cp-tree.h (struct saved_scope): Add x_local_specializations.
2053         (local_specializations): New macro.
2054         * pt.c (local_specializations): Remove variable.
2056 2014-01-30  Richard Sandiford  <rdsandiford@googlemail.com>
2058         PR c++/58708
2059         * parser.c (make_string_pack): Use double_int::from_buffer.
2061 2014-01-30  Marek Polacek  <polacek@redhat.com>
2063         PR c/59940
2064         * typeck.c (build_ptrmemfunc1): Call convert_and_check with
2065         input_location.
2066         * cvt.c (cp_convert_and_check): Call warnings_for_convert_and_check
2067         with input_location.
2068         * call.c (build_conditional_expr_1): Call unsafe_conversion_p with
2069         loc parameter.
2071 2014-01-30  Paolo Carlini  <paolo.carlini@oracle.com>
2073         PR c++/58843
2074         * typeck.c (lookup_destructor): Check dtor_type for error_mark_node.
2076 2014-01-30  Paolo Carlini  <paolo.carlini@oracle.com>
2078         PR c++/58649
2079         * pt.c (lookup_template_class_1): Check start_enum return value
2080         for error_mark_node.
2082 2014-01-30  Paolo Carlini  <paolo.carlini@oracle.com>
2084         * decl.c (duplicate_decls, typename_hash, typename_compare):
2085         Use TYPE_IDENTIFIER.
2086         * error.c (dump_type): Likewise.
2087         * mangle.c (dump_substitution_candidates): Likewise.
2089 2014-01-30  Jason Merrill  <jason@redhat.com>
2091         PR c++/59633
2092         * decl2.c (attributes_naming_typedef_ok): New.
2093         * cp-tree.h: Declare it.
2094         * decl.c (grokdeclarator): Check it.
2095         * tree.c (no_linkage_check): Handle VECTOR_TYPE.
2097 2014-01-29  Jason Merrill  <jason@redhat.com>
2099         PR c++/59707
2100         * call.c (add_builtin_candidate): Catch dependent types.
2102         PR c++/59989
2103         * pt.c (expand_template_argument_pack): Correct
2104         non_default_args_count calculation.
2106         PR c++/58466
2107         * pt.c (unify_pack_expansion): Call expand_template_argument_pack.
2109         PR c++/59956
2110         * friend.c (do_friend): Pass the TEMPLATE_DECL to add_friend if we
2111         have a friend template in a class template.
2112         * pt.c (tsubst_friend_function): Look through it.
2113         (push_template_decl_real): A friend member template is
2114         primary.
2116 2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
2118         PR c++/58846
2119         * decl.c (get_dso_handle_node): Don't crash if dso_handle_node
2120         == error_mark_node.
2122 2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
2124         PR c++/58674
2125         * pt.c (instantiate_template_1): Check for error_mark_node the second
2126         argument too.
2128 2014-01-29  Jason Merrill  <jason@redhat.com>
2130         PR c++/59916
2131         * optimize.c (maybe_thunk_body): Build a RETURN_EXPR for
2132         cdtor_returns_this case.
2134         PR c++/59315
2135         * decl.c (cxx_maybe_build_cleanup): Call mark_used.
2137 2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
2139         PR c++/58702
2140         * semantics.c (finish_omp_reduction_clause): Check type for
2141         error_mark_node.
2143 2014-01-28  Jason Merrill  <jason@redhat.com>
2145         PR c++/59791
2146         * pt.c (tsubst_decl) [VAR_DECL]: Allow in unevaluated context.
2147         (tsubst_copy): Use it if lookup fails.
2149         PR c++/59818
2150         * pt.c (tsubst_function_type): Make sure we keep the same function
2151         quals.
2153         PR c++/58701
2154         * semantics.c (build_anon_member_initialization): Stop walking
2155         when we run out of COMPONENT_REFs.
2157         PR c++/58632
2158         * decl.c (lookup_and_check_tag): Ignore template parameters if
2159         scope == ts_current.
2160         * pt.c (check_template_shadow): Don't complain about the injected
2161         class name.
2163         * decl.c (duplicate_decls): Tweak.
2165         PR c++/53756
2166         * mangle.c (write_unqualified_name): Handle operator auto.
2168 2014-01-27  Jason Merrill  <jason@redhat.com>
2170         PR c++/59823
2171         Core DR 1138
2172         * call.c (reference_binding): Pass LOOKUP_NO_TEMP_BIND for
2173         list-initialization.  A conversion to rvalue ref that involves
2174         an lvalue-rvalue conversion is bad.
2175         (convert_like_real): Give helpful error message.
2177         PR c++/54652
2178         * decl.c (duplicate_decls): Always use oldtype for TYPE_DECL.
2180         PR c++/58504
2181         * pt.c (tsubst_copy_and_build) [TRAIT_EXPR]: Use tsubst for
2182         types.
2184         PR c++/58606
2185         * pt.c (template_parm_to_arg): Call convert_from_reference.
2186         (tsubst_template_arg): Don't strip reference refs.
2188         PR c++/58639
2189         * call.c (build_aggr_conv): Reject value-initialization of reference.
2191         PR c++/58812
2192         PR c++/58651
2193         * call.c (convert_like_real): Give helpful error about excess braces
2194         for ck_rvalue of scalar type.
2196         Core DR 1288
2197         * call.c (reference_binding): Only elide braces if the single
2198         element is reference-related.
2200         PR c++/58814
2201         * typeck.c (cp_build_modify_expr): Make the RHS an rvalue before
2202         stabilizing.
2204         PR c++/58837
2205         * typeck.c (cp_truthvalue_conversion): Use explicit comparison for
2206         FUNCTION_DECL.
2208         PR c++/59097
2209         * decl.c (compute_array_index_type): Don't call
2210         maybe_constant_value for a non-integral expression.
2212 2014-01-24  Balaji V. Iyer  <balaji.v.iyer@intel.com>
2214         * call.c (magic_varargs_p): Replaced flag_enable_cilkplus with
2215         flag_cilkplus.
2216         * cp-gimplify.c (cp_genericize): Likewise.
2217         * decl.c (grokfndecl): Likewise.
2218         * parser.c (cp_parser_postfix_expression): Likewise.
2219         (cp_parser_postfix_open_square_expression): Likewise.
2220         (cp_parser_direct_declarator): Likewise.
2221         (is_cilkplus_vector_p): Likewise.
2222         (cp_parser_omp_clause_name): Likewise.
2223         (cp_parser_omp_all_clauses): Likewise.
2224         * pt.c (apply_late_template_attributes): Likewise.
2225         * typeck.c (cp_build_array_ref): Likewise.
2226         (cp_build_compound_expr): Likewise.
2227         (check_return_expr): Likewise.
2229 2014-01-24  Jason Merrill  <jason@redhat.com>
2231         PR c++/58550
2232         * decl.c (grokdeclarator): Turn pedwarn about auto return type in
2233         c++11 into error.
2235         PR c++/59886
2236         PR c++/59659
2237         * typeck2.c (process_init_constructor_array): Don't create
2238         RANGE_EXPR yet.
2240 2014-01-24  Jakub Jelinek  <jakub@redhat.com>
2242         * typeck2.c (split_nonconstant_init_1): Fix num_split_elts
2243         handling for RANGE_ARRAY case.
2245 2014-01-24  Paolo Carlini  <paolo.carlini@oracle.com>
2247         PR c++/57524
2248         * name-lookup.c (push_using_directive): Use timevar_cond_start.
2250 2014-01-23  Marek Polacek  <polacek@redhat.com>
2252         PR c/59846
2253         * typeck.c (cp_build_binary_op): Pass location to shorten_compare.
2255 2014-01-23  Marek Polacek  <polacek@redhat.com>
2257         PR c/58346
2258         * typeck.c (pointer_diff): Give an error on arithmetic on pointer to
2259         an empty aggregate.
2261 2014-01-23  Jason Merrill  <jason@redhat.com>
2263         PR c++/55189
2264         * cp-tree.h (struct language_function): Add infinite_loop and
2265         infinite_loops.
2266         (current_function_infinite_loop): New.
2267         * semantics.c (begin_maybe_infinite_loop, end_maybe_infinite_loop)
2268         (break_maybe_infinite_loop): New.
2269         (finish_while_stmt_cond, finish_while_stmt, begin_do_stmt)
2270         (finish_do_stmt, finish_for_cond, finish_for_stmt)
2271         (begin_range_for_stmt): Use them.
2272         * decl.c (finish_function): Don't warn about missing return
2273         if current_function_infinite_loop.
2274         * pt.c (instantiate_decl): Copy current_function_infinite_loop.
2275         * parser.c (cp_parser_jump_statement): Call break_maybe_infinite_loop.
2277         * call.c (build_op_delete_call): Use make_tree_vector and
2278         release_tree_vector.
2280 2014-01-23  Paolo Carlini  <paolo.carlini@oracle.com>
2282         PR c++/58980
2283         * parser.c (cp_parser_enum_specifier): Handle TYPENAME_TYPE as
2284         nested_name_specifier.
2286 2014-01-23  Balaji V. Iyer  <balaji.v.iyer@intel.com>
2288         * parser.c (cp_parser_direct_declarator): When Cilk Plus is enabled
2289         see if there is an attribute after function decl.  If so, then
2290         parse them now.
2291         (cp_parser_late_return_type_opt): Handle parsing of Cilk Plus SIMD
2292         enabled function late parsing.
2293         (cp_parser_gnu_attribute_list): Parse all the tokens for the vector
2294         attribute for a SIMD-enabled function.
2295         (cp_parser_omp_all_clauses): Skip parsing to the end of pragma when
2296         the function is used by SIMD-enabled function (indicated by NULL
2297         pragma token).   Added 3 new clauses: PRAGMA_CILK_CLAUSE_MASK,
2298         PRAGMA_CILK_CLAUSE_NOMASK and PRAGMA_CILK_CLAUSE_VECTORLENGTH
2299         (cp_parser_cilk_simd_vectorlength): Modified this function to handle
2300         vectorlength clause in SIMD-enabled function and #pragma SIMD's
2301         vectorlength clause.  Added a new bool parameter to differentiate
2302         between the two.
2303         (cp_parser_cilk_simd_fn_vector_attrs): New function.
2304         (is_cilkplus_vector_p): Likewise.
2305         (cp_parser_late_parsing_elem_fn_info): Likewise.
2306         (cp_parser_omp_clause_name): Added a check for "mask", "nomask"
2307         and "vectorlength" clauses when Cilk Plus is enabled.
2308         (cp_parser_omp_clause_linear): Added a new parameter of type bool
2309         and emit a sorry message when step size is a parameter.
2310         * parser.h (cp_parser::cilk_simd_fn_info): New field.
2311         * decl.c (grokfndecl): Added flag_enable_cilkplus along with
2312         flag_openmp.
2313         * pt.c (apply_late_template_attributes): Likewise.
2315 2014-01-23  Jakub Jelinek  <jakub@redhat.com>
2317         PR middle-end/58809
2318         * semantics.c (finish_omp_reduction_clause): Reject
2319         BIT_AND_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR on COMPLEX_TYPEs.
2321 2014-01-22  Ville Voutilainen  <ville.voutilainen@gmail.com>
2323         PR c++/59482
2324         * parser.c (cp_parser_class_head): Push the class before parsing
2325         the base-clause, pop after it.
2327 2014-01-20  Eric Botcazou  <ebotcazou@adacore.com>
2329         * decl2.c (cpp_check): Revert prototype change.
2331 2014-01-17  Paolo Carlini  <paolo.carlini@oracle.com>
2333         PR c++/59270
2334         PR c++/58811
2335         * init.c (build_value_init_noctor): Don't pass error_mark_node to
2336         build_value_init.
2338 2014-01-17  Paolo Carlini  <paolo.carlini@oracle.com>
2340         PR c++/59269
2341         * init.c (build_value_init_noctor): Assert !TYPE_HAS_COMPLEX_DFLT
2342         only when errorcount == 0.
2344 2014-01-17  Marek Polacek  <polacek@redhat.com>
2346         PR c++/59838
2347         * cvt.c (ocp_convert): Don't segfault on non-existing
2348         ENUM_UNDERLYING_TYPE.
2350 2014-01-16  Jason Merrill  <jason@redhat.com>
2352         PR c++/59821
2353         * tree.c (bot_manip): Update the location of builtin_LINE and
2354         builtin_FILE calls.
2356 2014-01-14  Jason Merrill  <jason@redhat.com>
2358         PR c++/59659
2359         * typeck2.c (massage_init_elt): New.
2360         (process_init_constructor_record)
2361         (process_init_constructor_union): Use it.
2362         (process_init_constructor_array): Use it.  Use RANGE_EXPR.
2363         (split_nonconstant_init_1): Handle it.
2364         * semantics.c (cxx_eval_vec_init_1): Use force_rvalue.
2366 2014-01-09  Balaji V. Iyer  <balaji.v.iyer@intel.com>
2368         PR c++/59631
2369         * parser.c (cp_parser_postfix_expression): Added a new if-statement
2370         and replaced an existing if-statement with else-if statement.
2371         Changed an existing error message wording to match the one from the C
2372         parser.
2374 2014-01-08  Jason Merrill  <jason@redhat.com>
2376         PR c++/59614
2377         * class.c (abi_tag_data): Add tags field.
2378         (check_abi_tags): Initialize it.
2379         (find_abi_tags_r): Support collecting missing tags.
2380         (mark_type_abi_tags): Don't look at template args.
2381         (inherit_targ_abi_tags): New.
2382         (check_bases_and_members): Use it.
2383         * cp-tree.h (ABI_TAG_IMPLICIT): New.
2384         * mangle.c (write_abi_tags): Check it.
2386 2014-01-07  Jason Merrill  <jason@redhat.com>
2388         PR c++/58856
2389         * pt.c (num_innermost_template_parms): New.
2390         (get_underlying_template): Use it.
2392         PR c++/58965
2393         * mangle.c (write_guarded_var_name): Handle null DECL_NAME.
2395 2014-01-07  Paolo Carlini  <paolo.carlini@oracle.com>
2397         * semantics.c (trait_expr_value, [CPTK_IS_BASE_OF]): Implement
2398         the letter of 20.11.6 about Base and Derived naming the same
2399         class type modulo cv-qualifiers.
2401 2014-01-06  Adam Butcher  <adam@jessamine.co.uk>
2403         PR c++/59635
2404         * lambda.c (maybe_add_lambda_conv_op): Handle marking conversion
2405         function as unimplemented for generic lambdas with varargs.
2407         PR c++/59636
2408         * parser.c (cp_parser_template_parameter): Early out with
2409         error_mark_node if parameter declaration was not parsed.
2411         PR c++/59629
2412         * parser.c (cp_parser_lambda_expression): Save/reset/restore
2413         auto_is_implicit_function_template_parm_p around lambda body.
2415         PR c++/59638
2416         * parser.c (cp_parser_init_declarator): Undo fully implicit
2417         template parameter list when declarator is not a function.
2419 2014-01-03  Marc Glisse  <marc.glisse@inria.fr>
2421         PR c++/58950
2422         * cvt.c (convert_to_void): Handle VEC_PERM_EXPR and VEC_COND_EXPR.
2424 2014-01-03  Tobias Burnus  <burnus@net-b.de>
2426         PR c++/58567
2427         * pt.c (tsubst_omp_for_iterator): Early return for error_mark_node.
2429 2014-01-03  Paolo Carlini  <paolo.carlini@oracle.com>
2431         Core DR 1442
2432         PR c++/59165
2433         * parser.c (cp_parser_perform_range_for_lookup): Don't pass true
2434         as include_std to perform_koenig_lookup.
2435         (cp_parser_postfix_expression): Adjust.
2436         * pt.c (tsubst_copy_and_build): Likewise.
2437         * semantics.c (perform_koenig_lookup): Remove bool parameter.
2438         (omp_reduction_lookup): Adjust.
2439         * name-lookup.c (lookup_arg_dependent_1): Remove bool parameter.
2440         (lookup_arg_dependent): Likewise.
2441         (lookup_function_nonclass): Adjust.
2442         * name-lookup.h: Adjust declaration.
2443         * cp-tree.h: Likewise.
2445 2014-01-02  Marc Glisse  <marc.glisse@inria.fr>
2447         PR c++/59087
2448         * parser.c (cp_parser_userdef_numeric_literal): Mention
2449         -fext-numeric-literals in the message.
2451 2014-01-02  Marc Glisse  <marc.glisse@inria.fr>
2453         PR c++/59641
2454         * call.c (build_conditional_expr_1): Check the return value of
2455         force_rvalue.
2457 2014-01-02  Marc Glisse  <marc.glisse@inria.fr>
2459         * call.c (convert_like_real): Check complain.
2461 2014-01-02  Marc Glisse  <marc.glisse@inria.fr>
2463         PR c++/59378
2464         * typeck.c (build_x_vec_perm_expr): Handle non-dependent arguments
2465         in templates.
2467 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
2469         Update copyright years
2471 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
2473         * cp-array-notation.c, cp-cilkplus.c, vtable-class-hierarchy.c: Use
2474         the standard form for the copyright notice.
2476 Copyright (C) 2014 Free Software Foundation, Inc.
2478 Copying and distribution of this file, with or without modification,
2479 are permitted in any medium without royalty provided the copyright
2480 notice and this notice are preserved.