PR c++/80598
[official-gcc.git] / gcc / cp / ChangeLog
blob3c1e4c76a067064c618228a289eb69806eea5898
1 2018-03-08  Jason Merrill  <jason@redhat.com>
2             Jakub Jelinek  <jakub@redhat.com>
4         PR c++/80598
5         * call.c (build_over_call): In templates set TREE_USED (first_fn) when
6         not calling mark_used for the benefit of -Wunused-function warning.
8 2018-03-06  Jason Merrill  <jason@redhat.com>
10         * lambda.c (is_capture_proxy_with_ref): Remove.
11         * constexpr.c, expr.c, cp-tree.h, semantics.c: Adjust.
13 2018-03-06  Marek Polacek  <polacek@redhat.com>
15         PR c++/84684
16         * constexpr.c (cxx_bind_parameters_in_call): Unshare evaluated
17         arguments.
19 2018-03-06  Alexandre Oliva <aoliva@redhat.com>
21         PR c++/84231
22         * tree.c (lvalue_kind): Use presence/absence of REFERENCE_TYPE
23         only while processing template decls.
24         * typeck.c (build_x_conditional_expr): Move wrapping of
25         reference type around type...
26         * call.c (build_conditional_expr_1): ... here.  Rename
27         is_lvalue to is_glvalue.
28         * parser.c (cp_parser_fold_expression): Catch REFERENCE_REF_P
29         INDIRECT_REF of COND_EXPR too.
31         PR c++/84593
32         * init.c (build_zero_init_1): Zero-initialize references.
34         PR c++/84492
35         * semantics.c (finish_stmt_expr_expr): Reject unresolved
36         overloads used as stmt expr values.
38 2018-03-05  Jason Merrill  <jason@redhat.com>
40         PR c++/84708 - ICE with lambda in local class NSDMI.
41         * lambda.c (lambda_expr_this_capture): Handle local class NSDMI
42         context.
44 2018-03-05  Jakub Jelinek  <jakub@redhat.com>
46         PR c++/84684
47         * constexpr.c (constexpr_call_hasher::equal): Return false if
48         lhs->hash != rhs->hash.  Change return 1 to return true and
49         return 0 to return false.
51 2018-03-05  Nathan Sidwell  <nathan@acm.org>
53         PR c++/84702
54         * pt.c (process_template_arg): Mark lookup_keep on a default arg.
56 2018-03-05  Marek Polacek  <polacek@redhat.com>
58         PR c++/84707
59         * decl.c (duplicate_decls): Check DECL_NAME before accessing
60         UDLIT_OPER_P.
62 2018-03-05  Nathan Sidwell  <nathan@acm.org>
64         PR c++/84694
65         * friend.c (do_friend): Restore check for identifier_p inside
66         TEMPLATE_ID_EXPR.
68 2018-03-05  Paolo Carlini  <paolo.carlini@oracle.com>
70         PR c++/84618
71         * parser.c (cp_parser_lambda_introducer): Reject any capture not
72         involving a VAR_DECL or a PARM_DECL.
74 2018-03-05  Pádraig Brady  <P@draigBrady.com>
75             Jason  Merrill  <jason@redhat.com>
76             Nathan Sidwell  <nathan@acm.org>
78         PR c++/84497
79         * decl2.c (get_tls_init_fn): Check TYPE_HAS_TRIVIAL_DFLT too.
81 2018-03-03  Jason Merrill  <jason@redhat.com>
83         PR c++/84686 - missing volatile loads.
84         * cvt.c (convert_to_void): Call maybe_undo_parenthesized_ref.
86 2018-03-03  Paolo Carlini  <paolo.carlini@oracle.com>
88         PR c++/71464
89         * optimize.c (maybe_thunk_body): Bail out immediately if either
90         fns[0] or fns[1] is null.
92 2018-03-02  Marek Polacek  <polacek@redhat.com>
94         PR c++/84578
95         * constexpr.c (get_array_or_vector_nelts): New.
96         (cxx_eval_array_reference): Use it.
97         (cxx_eval_vec_init_1): Likewise.
98         (cxx_eval_store_expression): Likewise.
100 2018-03-02  Jason Merrill  <jason@redhat.com>
102         * semantics.c (force_paren_expr): Remove redundant test.
104 2018-03-02  Marek Polacek  <polacek@redhat.com>
106         PR c++/84663
107         * decl.c (cp_complete_array_type): Check error_mark_node.
109         PR c++/84664
110         * typeck.c (cp_perform_integral_promotions): Check the result of
111         mark_rvalue_use.
113 2018-03-02  Jakub Jelinek  <jakub@redhat.com>
115         PR c++/84662
116         * pt.c (tsubst_copy_and_build) <case TEMPLATE_ID_EXPR>: Use
117         RETURN instead of return.
118         <case POINTER_PLUS_EXPR>: Likewise.
119         <case CONVERT_EXPR>: If op0 is error_mark_node, just return
120         it instead of wrapping it into CONVERT_EXPR.
122 2018-03-02  Jason Merrill  <jason@redhat.com>
124         Fix MIPS16 ICE.
125         * pt.c (type_dependent_expression_p): Check DECL_LANG_SPECIFIC.
127 2018-03-02  Marek Polacek  <polacek@redhat.com>
129         PR c++/84590
130         * cp-gimplify.c (cp_fully_fold): Unwrap TARGET_EXPR or a CONSTRUCTOR
131         wrapped in VIEW_CONVERT_EXPR.
133 2018-03-01  Martin Sebor  <msebor@redhat.com>
135         PR c++/84294
136         * decl.c (check_redeclaration_no_default_args): Merge attributes
137         specified on redeclarations of the same function template.
138         Remove dead code.
140 2018-03-01  Marek Polacek  <polacek@redhat.com>
141             Jason Merrill  <jason@redhat.com>
143         PR c++/84582
144         * semantics.c (force_paren_expr): Create a PAREN_EXPR when in
145         a template.
146         (maybe_undo_parenthesized_ref): Unwrap PAREN_EXPR.
147         * typeck2.c (store_init_value): Call fold_non_dependent_expr instead
148         of instantiate_non_dependent_expr.
149         * tree.c (lvalue_kind): Handle PAREN_EXPR like NON_DEPENDENT_EXPR.
151 2018-03-01  Nathan Sidwell  <nathan@acm.org>
153         PR c++/84434
154         * name-lookup.c (member_vec_dedup): Remove manually peeled
155         iteration.  Ignore dependent ctor inheritance.
157 2018-03-01  Jason Merrill  <jason@redhat.com>
159         PR c++/71569 - decltype of template.
160         * parser.c (cp_parser_decltype_expr): Handle missing template args.
162 2018-03-01  Marek Polacek  <polacek@redhat.com>
164         PR c++/84596
165         * constexpr.c (require_rvalue_constant_expression): New function.
166         * cp-tree.h: Declare it.
167         * semantics.c (finish_static_assert): Use it instead of
168         require_potential_rvalue_constant_expression.
170 2018-03-01  Jason Merrill  <jason@redhat.com>
171             Alexandre Oliva <aoliva@redhat.com>
173         PR c++/71569 - ICE with redundant args on member variable template.
174         * decl.c (start_decl): Handle partial specialization of member
175         variable template.
176         * pt.c (determine_specialization): Allow partial specialization
177         of member variable template without specializing enclosing class.
178         (process_partial_specialization): Improve error message.
180 2018-02-28  Jason Merrill  <jason@redhat.com>
182         PR c++/71784 - ICE with ref-qualifier and explicit specialization.
183         * pt.c (determine_specialization): Check ref-qualifier.
185 2018-02-28  Jakub Jelinek  <jakub@redhat.com>
187         PR c++/84609
188         * parser.c (cp_parser_attributes_opt): Formatting fix.
189         (cp_parser_skip_balanced_tokens, cp_parser_skip_gnu_attributes_opt,
190         cp_parser_skip_std_attribute_spec_seq, cp_parser_skip_attributes_opt):
191         New functions.
192         (cp_parser_member_declaration): Use cp_parser_skip_attributes_opt
193         instead of tentative parse to peek over optional attribute tokens
194         to check for CPP_COLON after them.
196         PR c++/83871
197         PR c++/83503
198         * pt.c (INCLUDE_STRING): Remove define.
199         (warn_spec_missing_attributes): Use pretty_printer instead of
200         std::string.  Fix up inform call so that the list of attributes
201         is in %s argument.
203 2018-02-28  Martin Sebor  <msebor@redhat.com>
205         PR testsuite/84617
206         * decl.c (duplicate_decls): Fully merge attributes const, pure,
207         and malloc.
209 2018-02-28  Nathan Sidwell  <nathan@acm.org>
211         PR c++/84602
212         * name-lookup.h (search_anon_aggr): Add defaulted WANT_TYPE arg.
213         * name-lookup.c (fields_linear_search): Look in an anon-aggr
214         regardless of want_type.
215         (search_anon_aggr): Just use get_class_binding_direct.
217 2018-02-28  Jakub Jelinek  <jakub@redhat.com>
219         * decl.c (cp_finish_decomp): Don't adjust eltscnt when calling
220         inform_n.
222 2018-02-27  Martin Sebor  <msebor@redhat.com>
224         * pt.c: Avoid including <string> directly.
226 2018-02-27  Martin Sebor  <msebor@redhat.com>
228         PR c++/83871
229         PR c++/83503
230         * cp-tree.h (warn_spec_missing_attributes): New function.
231         ((check_explicit_specialization): Add an argument.  Call the above
232         function.
233         * decl.c (duplicate_decls): Avoid applying primary function template's
234         attributes to its explicit specializations.
235         cp/pt.c (warn_spec_missing_attributes): Define.
237 2018-02-27  Håkon Sandsmark  <hsandsmark@gmail.com>
239         PR c++/71546 - lambda init-capture with qualified-id.
240         * parser.c (cp_parser_lambda_introducer): Clear scope after
241         each lambda capture.
243 2018-02-27  Nathan Sidwell  <nathan@acm.org>
245         PR c++/84426
246         * name-lookup.h (get_member_slot): Rename ...
247         (find_member_slot): ... here.
248         (add_member_slot): New.
249         * name-lookup.c (member_vec_linear_search): No need to check for
250         NULL slot.
251         (get_member_slot): Rename ...
252         (find_member_slot): ... here.  Don't add slot for incomplete class.
253         (add_member_slot): New.
254         * class.c (add_method): Adjust get_member_slot rename.  Bail out
255         if push_class_level_binding fails.  Create slot and grok
256         properties once we're committed to insertion.
258 2018-02-27  Jason Merrill  <jason@redhat.com>
260         PR c++/84489 - dependent default template argument
261         * pt.c (type_unification_real): Handle early substitution failure.
263 2018-02-26  Jason Merrill  <jason@redhat.com>
265         PR c++/84560 - ICE capturing multi-dimensional VLA.
266         * tree.c (array_of_runtime_bound_p): False if the element is
267         variably-modified.
269         PR c++/84441 - ICE with base initialized from ?:
270         * call.c (unsafe_copy_elision_p): Handle COND_EXPR.
272         PR c++/84520 - ICE with generic lambda in NSDMI.
273         * lambda.c (lambda_expr_this_capture): Don't look for fake NSDMI
274         'this' in a generic lambda instantiation.
276         PR c++/84559 - ICE with constexpr VLA.
277         * constexpr.c (ensure_literal_type_for_constexpr_object): Check
278         for constexpr variable with VLA type.
280 2018-02-26  Jakub Jelinek  <jakub@redhat.com>
282         PR c++/84558
283         * constexpr.c (cxx_eval_vec_init_1): For reuse, treat NULL eltinit like
284         a valid constant initializer.  Formatting fixes.
286 2018-02-26  Paolo Carlini  <paolo.carlini@oracle.com>
288         PR c++/84540
289         * pt.c (tsubst_attributes): Handle correctly tsubst_attribute
290         returning NULL_TREE.
291         (apply_late_template_attributes): Likewise.
293 2018-02-26  Jakub Jelinek  <jakub@redhat.com>
295         PR c++/84557
296         * parser.c (cp_parser_omp_var_list_no_open): Only call
297         cp_parser_lookup_name_simple on names satisfying identifier_p.
298         (cp_parser_oacc_routine): Likewise.
300 2018-02-26  Jason Merrill  <jason@redhat.com>
302         PR c++/84551 - ICE with concepts and -g.
303         * parser.c (add_debug_begin_stmt): Do nothing in a concept.
305 2018-02-26  Marek Polacek  <polacek@redhat.com>
307         PR c++/84325
308         * tree.c (replace_placeholders_r): Only check TREE_CONSTANT on
309         non-types.
311 2018-02-26  Jason Merrill  <jason@redhat.com>
313         PR c++/84447 - ICE with deleted inherited ctor with default arg.
314         * call.c (build_over_call): Handle deleted functions in one place.
316 2018-02-26  Paolo Carlini  <paolo.carlini@oracle.com>
318         PR c++/84533
319         * decl.c (redeclaration_error_message): Don't try to use
320         DECL_DECLARED_CONSTEXPR_P on CONST_DECLs.
322 2018-02-26  Paolo Carlini  <paolo.carlini@oracle.com>
324         * lambda.c (build_capture_proxy): Define static.
325         * cp-tree.h (build_capture_proxy): Remove.
327 2018-02-26  Marek Polacek  <polacek@redhat.com>
329         PR c++/84537
330         * name-lookup.c (suggest_alternative_in_explicit_scope): Return false
331         if name is error node.
333 2018-02-25  Jason Merrill  <jason@redhat.com>
335         PR c++/84015 - ICE with class deduction and auto template parm.
336         * pt.c (rewrite_template_parm): Use tf_partial in first tsubst.
338 2018-02-24  Marek Polacek  <polacek@redhat.com>
340         PR c++/83692
341         * constexpr.c (maybe_constant_init_1): New function.
342         (maybe_constant_init): Make it a wrapper around maybe_constant_init_1.
343         (cxx_constant_init): New function.
344         * cp-tree.h (cxx_constant_init): Declare.
345         * typeck2.c (store_init_value): Call cxx_constant_init instead of
346         cxx_constant_value.  Move the maybe_constant_init call under an 'else'.
348 2018-02-22  Jason Merrill  <jason@redhat.com>
350         PR c++/70468 - ICE with constructor delegation via typedef.
351         * pt.c (tsubst_initializer_list): Check for other mem-initializers
352         with constructor delegation.
354 2018-02-22  Jason Merrill  <jason@redhat.com>
356         PR c++/84424 - ICE with constexpr and __builtin_shuffle.
357         * constexpr.c (reduced_constant_expression_p): Handle CONSTRUCTOR of
358         VECTOR_TYPE.
360 2018-02-22  Marek Polacek  <polacek@redhat.com>
362         PR c++/84493
363         * parser.c (cp_parser_braced_list): Use require_open instead of
364         consume_open.
366 2018-02-21  Jason Merrill  <jason@redhat.com>
368         PR c++/84454 - ICE with pack expansion in signature.
369         * error.c (find_typenames_r): Also stop on EXPR_PACK_EXPANSION.
371 2018-02-20  Siddhesh Poyarekar  <siddhesh@sourceware.org>
373         * cp-objcp-common.c (cxx_block_may_fallthru): Add case for
374         IF_STMT.
376 2018-02-20  Paolo Carlini  <paolo.carlini@oracle.com>
378         PR c++/84446
379         * parser.c (cp_parser_init_declarator): Don't call start_lambda_scope
380         on error_mark_node.
382 2018-02-20  Jakub Jelinek  <jakub@redhat.com>
384         PR c++/84445
385         * class.c (fixed_type_or_null) <case CALL_EXPR>: Only test
386         TREE_HAS_CONSTRUCTOR if instance is not an internal function call.
388         PR c++/84449
389         * tree.c (bot_manip): If build_cplus_new or break_out_target_exprs
390         returns error_mark_node, return it immediately.
391         (break_out_target_exprs): If cp_walk_tree with bot_manip returns
392         error_mark_node, return error_mark_node.
394         PR c++/84455
395         * pt.c (tsubst_lambda_expr): If not nested, increment temporarily
396         function_depth to avoid GC during finish_lambda_function.
398 2018-02-19  Jason Merrill  <jason@redhat.com>
400         PR c++/84429 - ICE capturing VLA.
401         * lambda.c (build_capture_proxy): Handle reference refs.
403 2018-02-19  Jakub Jelinek  <jakub@redhat.com>
405         PR c++/84448
406         * parser.c (cp_parser_binary_expression): For no_toplevel_fold_p, if
407         either operand is error_mark_node, set current.lhs to that instead of
408         creating a binary op with error_mark_node operands.
410         PR c++/84430
411         * constexpr.c (potential_constant_expression_1): Handle OMP_SIMD.
413 2018-02-19  Paolo Carlini  <paolo.carlini@oracle.com>
415         PR c++/84348
416         * decl.c (grokdeclarator): Early return error_mark_node upon
417         ill-formed friend declaration.
419 2018-02-16  Marek Polacek  <polacek@redhat.com>
420             Jakub Jelinek  <jakub@redhat.com>
422         PR c++/84192
423         * constexpr.c (cxx_eval_constant_expression) <case RETURN_EXPR>: Don't
424         set *jump_target to anything if jump_target is NULL.
426 2018-02-16  Jason Merrill  <jason@redhat.com>
428         PR c++/84151 - unnecessary volatile load with static member.
429         * call.c (build_new_method_call_1): Avoid loading from a volatile
430         lvalue used as the object argument for a static member function.
432         PR c++/81853 - using-directive and constexpr.
433         * constexpr.c (cxx_eval_constant_expression): Handle USING_STMT.
435         PR c++/84420 - ICE with structured binding in lambda.
436         * lambda.c (is_capture_proxy): Check DECL_DECOMPOSITION_P.
438         PR c++/83835 - C++17 error with constructor ctors.
439         * call.c (build_special_member_call): Set TARGET_EXPR_DIRECT_INIT_P.
441         PR c++/82664 - ICE with reference to function template parm.
442         * pt.c (convert_nontype_argument_function): Avoid obfuscationg
443         NOP_EXPRs.
445         PR c++/82764 - C++17 ICE with empty base
446         * class.c (build_base_field_1): Set DECL_SIZE to zero for empty base.
448 2018-02-16  Jason Merrill  <jason@redhat.com>
450         PR c++/84421 - type-dependent if constexpr
451         * semantics.c (finish_if_stmt_cond): Check type_dependent_expression_p.
453 2018-02-16  Nathan Sidwell  <nathan@acm.org>
455         Deprecate -ffriend-injection.
456         * decl.c (cxx_init_decl_processing): Emit warning on option.
457         * name-lookup.c (do_pushdecl): Emit warning if we push a visible
458         friend.
460 2018-02-16  Paolo Carlini  <paolo.carlini@oracle.com>
462         PR c++/82468
463         * decl.c (check_special_function_return_type): Reject template
464         template parameter in deduction guide.
466 2018-02-16  Nathan Sidwell  <nathan@acm.org>
468         PR c++/84375
469         * name-lookup.c (do_pushdecl): Bail out on bad local friend injection.
471 2018-02-15  Jason Merrill  <jason@redhat.com>
473         PR c++/83227 - C++17 ICE with init-list derived-to-base conversion.
474         * call.c (convert_like_real): Don't use the copy-list-initialization
475         shortcut for ck_base.
477         PR c++/84045 - ICE with typedef and noexcept.
478         * except.c (build_noexcept_spec): Use strip_typedefs_expr.
480         PR c++/84376 - ICE with omitted template arguments.
481         * pt.c (dguide_name_p): Check for IDENTIFIER_NODE.
483         PR c++/84368 - wrong error with local variable in variadic lambda.
484         * pt.c (tsubst_pack_expansion): Fix handling of non-packs in
485         local_specializations.
487 2018-02-15  Paolo Carlini  <paolo.carlini@oracle.com>
489         PR c++/84330
490         * constraint.cc (tsubst_constraint_info): Handle an error_mark_node
491         as first argument.
493 2018-02-14  Paolo Carlini  <paolo.carlini@oracle.com>
495         PR c++/84350
496         * pt.c (do_auto_deduction): Don't check the TREE_TYPE of a null
497         init, early return.
499 2018-02-14  Nathan Sidwell  <nathan@acm.org>
501         * decl2.c (mark_vtable_entries): Set input_location to decl's.
502         (c_parse_final_cleanups): Restore input_location after emitting
503         vtables.
505 2018-02-14  Paolo Carlini  <paolo.carlini@oracle.com>
507         * cp-tree.h (do_auto_deduction (tree, tree, tree)): Remove.
508         (do_auto_deduction (tree, tree, tree, tsubst_flags_t,
509         auto_deduction_context, tree, int): Add defaults.
510         * pt.c (do_auto_deduction (tree, tree, tree)): Remove definition.
511         (tsubst_omp_for_iterator): Adjust do_auto_deduction call, forward
512         tsubst_flags_t argument.
513         * init.c (build_new): Likewise.
515 2018-02-13  Jakub Jelinek  <jakub@redhat.com>
517         PR c++/84364
518         * typeck.c (check_return_expr): Don't emit -Weffc++ warning
519         about return other than *this in assignment operators if
520         retval is type dependent expression.
522 2018-02-13  Paolo Carlini  <paolo.carlini@oracle.com>
524         PR c++/84333
525         * call.c (build_conditional_expr_1): Use cp_save_expr instead of
526         save_expr for the G++ extension.
528 2018-02-13  Jason Merrill  <jason@redhat.com>
530         PR c++/84080 - ICE with return type deduction and specialization.
531         * pt.c (determine_specialization): Check uses_template_parms.
533         Fix more variadic capture issues.
534         * pt.c (find_parameter_packs_r): Also look at explicit captures.
535         (check_for_bare_parameter_packs): Check current_class_type for
536         lambda context.
537         (extract_locals_r): Handle seeing a full instantiation of a pack.
538         (tsubst_pack_expansion): Likewise.  Force lambda capture.
539         * parser.c (cp_parser_lambda_introducer): Don't
540         check_for_bare_parameter_packs.
542         PR c++/84338 - wrong variadic sizeof.
543         * pt.c (argument_pack_select_arg): Like the macro, but look through
544         a pack expansion.
545         (tsubst, tsubst_copy, dependent_template_arg_p): Use it.
546         (extract_fnparm_pack): Do make_pack_expansion.
547         (extract_locals_r): Do strip a pack expansion.
548         * cp-tree.h (ARGUMENT_PACK_SELECT_ARG): Remove.
550 2018-02-12  Jakub Jelinek  <jakub@redhat.com>
552         PR c++/84341
553         * parser.c (cp_parser_binary_expression): Use build_min instead of
554         build2_loc to build the no_toplevel_fold_p toplevel binary expression.
556 2018-02-12  Nathan Sidwell  <nathan@acm.org>
558         PR c++/84263
559         * parser.c (cp_parser_decltype): Push and pop
560         deferring_access_checks.  Reorganize to avoid goto.
562 2018-02-12  Richard Biener  <rguenther@suse.de>
564         PR c++/84281
565         * constexpr.c (cxx_eval_vec_init_1): Use a RANGE_EXPR to compact
566         uniform constructors and delay allocating them fully.
568 2018-02-09  Jason Merrill  <jason@redhat.com>
570         PR c++/84036 - ICE with variadic capture.
571         Handle variadic capture proxies more like non-variadic.
572         * lambda.c (build_capture_proxy): Remove workaround.
573         * pt.c (find_parameter_packs_r): The proxy is a pack.
574         (instantiate_class_template_1): Remove dead lambda code.
575         (extract_fnparm_pack): Don't make_pack_expansion.
576         (extract_locals_r): Don't strip a pack expansion.
577         (tsubst_pack_expansion): Handle proxy packs.  Use
578         PACK_EXPANSION_EXTRA_ARGS less.
579         (tsubst_decl) [FIELD_DECL]: Don't register_specialization.
580         (tsubst_copy) [FIELD_DECL]: Don't retrieve*_specialization.
581         [VAR_DECL]: Handle ARGUMENT_PACK_SELECT.
582         (tsubst_expr) [DECL_EXPR]: Handle proxy packs.
583         (tsubst_copy_and_build) [VAR_DECL]: Handle proxy packs normally.
585 2018-02-10  Jakub Jelinek  <jakub@redhat.com>
587         PR sanitizer/83987
588         * tree.c (cp_free_lang_data): Revert 2018-01-23 change.
590 2018-02-09  Jason Merrill  <jason@redhat.com>
592         PR c++/81917 - ICE with void_t and partial specialization.
593         * pt.c (instantiate_class_template_1): Set TYPE_BEING_DEFINED before
594         calling most_specialized_partial_spec.
596 2018-02-09  Nathan Sidwell  <nathan@acm.org>
598         PR c/84293
599         * typeck.c (cp_build_indirect_ref_1, build_reinterpret_cast_1):
600         Pass expr location to strict_aliasing_warning.
602 2018-02-09  Jason Merrill  <jason@redhat.com>
604         PR c++/84296 - ICE with qualified-id in template.
605         PR c++/83714
606         * pt.c (unknown_base_ref_p): New.
607         (instantiation_dependent_scope_ref_p): Use it instead of
608         any_dependent_bases_p.
610 2018-02-09  Marek Polacek  <polacek@redhat.com>
611             Jakub Jelinek  <jakub@redhat.com>
613         PR c++/83659
614         * constexpr.c (cxx_fold_indirect_ref): Sync some changes from
615         fold_indirect_ref_1, including poly_*int64.  Verify first that
616         tree_fits_poly_int64_p (op01).  Formatting fixes.
618 2018-02-08  Paolo Carlini  <paolo.carlini@oracle.com>
620         * constexpr.c (cxx_eval_component_reference): Use INDIRECT_REF_P.
621         * lambda.c (build_capture_proxy): Likewise.
622         * search.c (field_access_p): Likewise.
623         * semantics.c (omp_clause_decl, omp_privatize_field,
624         finish_omp_clauses): Likewise.
626 2018-02-08  Paolo Carlini  <paolo.carlini@oracle.com>
628         PR c++/83806
629         * typeck.c (decay_conversion): Use mark_rvalue_use for the special
630         case of nullptr too.
632 2018-02-08  Nathan Sidwell  <nathan@acm.org>
634         * class.c (finish_struct): Fix std:initializer_list diagnostic
635         formatting.
637 2018-02-08  Paolo Carlini  <paolo.carlini@oracle.com>
639         PR c++/83204
640         * pt.c (tsubst_copy_and_build): Use force_paren_expr for INDIRECT_REF.
642 2018-02-07  Jakub Jelinek  <jakub@redhat.com>
644         PR c++/84082
645         * parser.c (cp_parser_dot_deref_incomplete): New function.
646         (cp_parser_postfix_dot_deref_expression): Use it.
648 2018-02-07  David Malcolm  <dmalcolm@redhat.com>
650         PR c++/81610
651         PR c++/80567
652         * name-lookup.c (suggest_rid_p): New function.
653         (lookup_name_fuzzy): Replace enum-rid-filtering logic with call to
654         suggest_rid_p.
656 2018-02-07  Jason Merrill  <jason@redhat.com>
658         PR c++/84182 - ICE with captured lambda
659         PR c++/84181
660         * pt.c (extract_locals_r, extract_local_specs): New.
661         (tsubst_pack_expansion): Use them.
663 2018-02-07  Martin Liska  <mliska@suse.cz>
665         PR c++/84059.
666         * class.c (add_method): Append argument value.
667         * cp-tree.h (maybe_version_functions): Add new argument.
668         * decl.c (decls_match): Call it if a declaration does not
669         have DECL_FUNCTION_VERSIONED.
670         (maybe_version_functions): record argument is added.
672 2018-02-05  Marek Polacek  <polacek@redhat.com>
674         * class.c: Remove unused global variables.
675         (build_primary_vtable): Don't gather statistics.
676         (print_class_statistics): Remove.
677         * cp-tree.h (print_class_statistics): Remove.
678         * tree.c (cxx_print_statistics): Don't call print_class_statistics.
680 2018-02-02  Paolo Carlini  <paolo.carlini@oracle.com>
682         * class.c (is_really_empty_class): Use DECL_UNNAMED_BIT_FIELD.
683         * constexpr.c (cx_check_missing_mem_inits): Likewise.
684         * decl.c (next_initializable_field, find_decomp_class_base,
685         cp_finish_decomp): Likewise.
686         * typeck2.c (process_init_constructor_record): Likewise.
688 2018-02-02  Jason Merrill  <jason@redhat.com>
690         PR c++/84181 - ICE with lambda parm in template argument.
691         * tree.c (strip_typedefs_expr): Use cp_tree_operand_length.
693 2018-02-01  Jason Merrill  <jason@redhat.com>
695         PR c++/84160 - ICE with nested variadic capture.
696         * lambda.c (is_capture_proxy_with_ref): New.
697         (insert_capture_proxy): Don't set DECL_CAPTURED_VARIABLE from a
698         COMPONENT_REF.
699         * expr.c (mark_use): Use is_capture_proxy_with_ref.
700         * constexpr.c (potential_constant_expression_1): Likewise.
701         * semantics.c (process_outer_var_ref): Likewise.
703 2018-02-01  Marek Polacek  <polacek@redhat.com>
705         PR c++/84125
706         * typeck.c (build_address): Relax the assert when
707         processing_template_decl.
709 2018-02-01  Jason Merrill  <jason@redhat.com>
711         PR c++/84126 - ICE with variadic generic lambda
712         PR c++/84036
713         PR c++/82249
714         * pt.c (tsubst_pack_expansion): Handle function parameter_packs in
715         PACK_EXPANSION_EXTRA_ARGS.
717 2018-02-01  Paolo Carlini  <paolo.carlini@oracle.com>
719         PR c++/83796
720         * call.c (convert_like_real): If w're initializing from {} explicitly
721         call abstract_virtuals_error_sfinae.
723 2018-01-31  Jason Merrill  <jason@redhat.com>
724             Jakub Jelinek  <jakub@redhat.com>
726         PR c++/83993
727         * constexpr.c (cxx_eval_outermost_constant_expr): Build NOP_EXPR
728         around non-constant ADDR_EXPRs rather than clearing TREE_CONSTANT
729         on ADDR_EXPR.
731 2018-01-31  Jakub Jelinek  <jakub@redhat.com>
733         PR c++/83993
734         * constexpr.c (diag_array_subscript): Emit different diagnostics
735         if TYPE_DOMAIN (arraytype) is NULL.
736         (cxx_eval_array_reference, cxx_eval_store_expression): For arrays
737         with NULL TYPE_DOMAIN use size_zero_node as nelts.
739 2018-01-31  Paolo Carlini  <paolo.carlini@oracle.com>
741         PR c++/84092
742         * semantics.c (finish_qualified_id_expr): When handling an
743         UNBOUND_CLASS_TEMPLATE only adjust qualifying_class and expr.
745 2018-01-31  Marek Polacek  <polacek@redhat.com>
747         PR c++/84138
748         * cp-gimplify.c (cp_fold): Check if X is an error node before
749         calling useless_type_conversion_p.
751 2018-01-30  Jason Merrill  <jason@redhat.com>
753         PR c++/84091 - ICE with local class in lambda in template.
754         * decl2.c (determine_visibility): Look for outer containing template
755         instantiation.
757         PR c++/84098 - ICE with lambda in template NSDMI.
758         * pt.c (instantiate_class_template_1): Ignore more lambdas.
760 2018-01-29  Jason Merrill  <jason@redhat.com>
762         PR c++/68810 - wrong location for reinterpret_cast error.
763         * cvt.c (cp_convert_to_pointer): Always build a CONVERT_EXPR when
764         !dofold.
766 2018-01-29  Marek Polacek  <polacek@redhat.com>
768         PR c++/83996
769         * constexpr.c (cxx_fold_indirect_ref): Compute ((foo *)&fooarray)[1]
770         => fooarray[1] in offset_int.
772 2018-01-29  Jason Merrill  <jason@redhat.com>
774         PR c++/83942 - wrong unused warning with static_cast.
775         * cvt.c (ocp_convert): Call mark_rvalue_use.
777 2018-01-26  Jason Merrill  <jason@redhat.com>
779         PR c++/83956 - wrong dtor error with anonymous union
780         * method.c (walk_field_subobs): Variant members only affect
781         deletedness.
782         (maybe_explain_implicit_delete): Pass &deleted_p for diagnostic.
784         PR c++/84036 - ICE with variadic capture.
785         PR c++/82249
786         * pt.c (tsubst_pack_expansion): When optimizing a simple
787         substitution, pull a single pack expansion out of its pack.
789         PR c++/82514 - ICE with local class in generic lambda.
790         * pt.c (regenerated_lambda_fn_p): Remove.
791         (enclosing_instantiation_of): Don't use it.
792         (tsubst_function_decl): Call enclosing_instantiation_of.
794         * pt.c (lookup_template_class_1): Add sanity check.
795         * name-lookup.c (do_pushtag): Don't add closures to local_classes.
797 2018-01-25  Jakub Jelinek  <jakub@redhat.com>
799         PR c++/84031
800         * decl.c (find_decomp_class_base): Ignore unnamed bitfields.  Ignore
801         recursive calls that return ret.
802         (cp_finish_decomp): Ignore unnamed bitfields.
804 2018-01-23  Jason Merrill  <jason@redhat.com>
806         PR c++/82249 - wrong mismatched pack length error.
807         * pt.c (extract_fnparm_pack, tsubst_pack_expansion): Handle
808         unsubstituted function parameter pack.
810 2018-01-23  Paolo Carlini  <paolo.carlini@oracle.com>
812         PR c++/83921
813         * decl.c (check_for_uninitialized_const_var): Not static; add
814         bool and tsubst_flags_t parameters; adjust to be used both in
815         constexpr context and not.
816         * constexpr.c (potential_constant_expression_1): Use the above.
817         * cp-tree.h (check_for_uninitialized_const_var): Declare.
819 2018-01-23  Jason Merrill  <jason@redhat.com>
821         PR c++/83947 - ICE with auto declarations.
822         * pt.c (do_auto_deduction): Don't deduce from an auto decl.
823         * decl.c (undeduced_auto_decl): Limit to vars and fns.
825 2018-01-23  David Malcolm  <dmalcolm@redhat.com>
827         PR c++/83974
828         * pt.c (tsubst_copy_and_build) <CONSTRUCTOR>: Remove early bailout
829         for pointer to member function types.
831 2018-01-23  Jakub Jelinek  <jakub@redhat.com>
833         PR sanitizer/83987
834         * tree.c (cp_free_lang_data): Change DECL_VALUE_EXPR of
835         DECL_OMP_PRIVATIZED_MEMBER vars to error_mark_node.
837 2018-01-23  Nathan Sidwell  <nathan@acm.org>
839         PR c++/83988
840         * pt.c (tsubst_baselink): Remove optype assert.
841         * ptree.c (cxx_print_xnode): <case BASELINK> Print BASELINK_OPTYPE.
843 2018-01-23  Jakub Jelinek  <jakub@redhat.com>
845         PR c++/83958
846         * decl.c (cp_finish_decomp): Diagnose if reference structure binding
847         refers to incomplete type.
849 2018-01-23  Nathan Sidwell  <nathan@acm.org>
851         Deprecate ARM-era for scope handling
852         * decl.c (poplevel): Flag_new_for_scope is a boolean-like.
853         (cxx_init_decl_processing): Deprecate flag_new_for_scope being
854         cleared.
855         * name-lookup.c (check_for_out_of_scope_variable): Deprecate and
856         cleanup handling.
857         * semantics.c (begin_for_scope): Flag_new_for_scope is
858         boolean-like.
859         (finish_for_stmt, begin_range_for_stmt): Likewise.
861 2018-01-22  Jason Merrill  <jason@redhat.com>
863         PR c++/83720
864         * decl2.c (determine_visibility): Fix template_decl handling
865         instead of blocking it.
867         PR c++/83720 - ICE with lambda and LTO.
868         * decl2.c (determine_visibility): Clear template_decl for
869         function-scope decls.  Propagate anonymous linkage from containing
870         function.
872 2018-01-22  Marek Polacek  <polacek@redhat.com>
874         PR c++/81933
875         * typeck2.c (split_nonconstant_init_1): Return false if we didn't
876         split out anything.
878 2018-01-22  Ville Voutilainen  <ville.voutilainen@gmail.com>
880         PR c++/83895
881         * decl.c (grokdeclarator): Don't diagnose extra parens
882         on typedefs.
884 2018-01-19  Jakub Jelinek  <jakub@redhat.com>
886         PR c++/81167
887         * call.c (joust): Use TREE_TYPE (source) if source is
888         a POINTER_TYPE_P rather than if ! DECL_CONSTRUCTOR_P (w->fn).
890         PR c++/83919
891         * typeck.c (convert_for_assignment): Suppress warn_ignored_qualifiers
892         for direct enum init.
893         * decl.c (reshape_init): Likewise.
895 2018-01-19  Marek Polacek  <polacek@redhat.com>
897         * constexpr.c (fold_simple): Simplify.
899 2018-01-18  Jason Merrill  <jason@redhat.com>
901         PR c++/83714
902         * search.c (any_dependent_bases_p): Handle null TREE_BINFO.
903         * pt.c (instantiation_dependent_scope_ref_p): True if
904         any_dependent_bases_p.
906 2018-01-18  Paolo Carlini  <paolo.carlini@oracle.com>
908         * cp-tree.h: Fix comment typo (DECL_NON_TRIVIALLY_INITIALIZED_P
909         vs DECL_NONTRIVIALLY_INITIALIZED_P).
911 2018-01-18  Jason Merrill  <jason@redhat.com>
913         PR c++/82461 - constexpr list-initialized member
914         * constexpr.c (potential_constant_expression_1): Check
915         TARGET_EXPR_DIRECT_INIT_P.
917 2018-01-18  Paolo Carlini  <paolo.carlini@oracle.com>
919         PR c++/81013
920         * decl.c (xref_basetypes): Early return upon error about derived
921         union.
923 2018-01-18  Nathan Sidwell  <nathan@acm.org>
925         PR c++/83160
926         * cp-tree.h (mark_use): Declare.
927         * expr.c (mark_use): Make extern.
928         * call.c (direct_reference_binding): Set inner conv's
929         rvaluedness_matches_p, if it is an identity.
930         (convert_like_real): Mark lvalue or rvalue use for identity as
931         rvaledness_matches_p demands.
933 2018-01-18  Jakub Jelinek  <jakub@redhat.com>
935         PR c++/83824
936         * parser.c (attr_chainon): New function.
937         (cp_parser_label_for_labeled_statement, cp_parser_decl_specifier_seq,
938         cp_parser_namespace_definition, cp_parser_init_declarator,
939         cp_parser_type_specifier_seq, cp_parser_parameter_declaration,
940         cp_parser_gnu_attributes_opt): Use it.
941         (cp_parser_member_declaration, cp_parser_objc_class_ivars,
942         cp_parser_objc_struct_declaration): Likewise.  Don't reset
943         prefix_attributes if attributes is error_mark_node.
945 2018-01-17  Paolo Carlini  <paolo.carlini@oracle.com>
947         PR c++/78344
948         * decl.c (grokdeclarator): Do not append the error_mark_node
949         due to an erroneous optional attribute-specifier-seq.
951 2018-01-17  Jakub Jelinek  <jakub@redhat.com>
953         PR c++/83897
954         * cp-gimplify.c (cp_maybe_instrument_return): Handle
955         CLEANUP_POINT_EXPR.
957 2018-01-17  Paolo Carlini  <paolo.carlini@oracle.com>
959         PR c++/81054
960         * constexpr.c (ensure_literal_type_for_constexpr_object): Return
961         error_mark_node when we give an error.
962         * decl.c (cp_finish_decl): Use the latter.
964 2018-01-17  Nathan Sidwell  <nathan@acm.org>
966         PR c++/83287
967         * init.c (build_raw_new_expr): Scan list for lookups to keep.
969 2018-01-17  David Malcolm  <dmalcolm@redhat.com>
971         PR c++/83814
972         * expr.c (fold_for_warn): Move from c-common.c, reducing to just
973         the C++ part.  If processing a template, call
974         fold_non_dependent_expr rather than fully folding.
976 2018-01-17  Jason Merrill  <jason@redhat.com>
978         PR c++/81067 - redundant NULL warning.
979         * call.c (convert_like_real): Restore null_node handling.
981 2018-01-17  Jason Merrill  <jason@redhat.com>
983         PR c++/81843 - ICE with variadic member template.
984         PR c++/72801
985         * pt.c (unify_pack_expansion): Don't try to deduce enclosing
986         template args.
988 2018-01-17  David Malcolm  <dmalcolm@redhat.com>
990         PR c++/83799
991         * pt.c (type_dependent_expression_p): Strip any location wrapper
992         before testing tree codes.
993         (selftest::test_type_dependent_expression_p): New function.
994         (selftest::cp_pt_c_tests): Call it.
996 2018-01-17  Nathan Sidwell  <nathan@acm.org>
998         PR c++/83739
999         * pt.c (tsubst_expr) <case RANGE_FOR_STMT>: Rebuild a range_for if
1000         this not a final instantiation.
1002 2018-01-16  Jason Merrill  <jason@redhat.com>
1004         PR c++/83714 - ICE checking return in template.
1005         * typeck.c (check_return_expr): Call build_non_dependent_expr.
1007 2018-01-16  Jakub Jelinek  <jakub@redhat.com>
1009         PR c++/83817
1010         * pt.c (tsubst_copy_and_build) <case CALL_EXPR>: If function
1011         is AGGR_INIT_EXPR rather than CALL_EXPR, set AGGR_INIT_FROM_THUNK_P
1012         instead of CALL_FROM_THUNK_P.
1014         PR c++/83825
1015         * name-lookup.c (member_vec_dedup): Return early if len is 0.
1016         (resort_type_member_vec, set_class_bindings,
1017         insert_late_enum_def_bindings): Use vec qsort method instead of
1018         calling qsort directly.
1020 2018-01-15  Martin Sebor  <msebor@redhat.com>
1022         PR c++/83588
1023         * class.c (find_flexarrays): Make a record of multiple flexible array
1024         members.
1026 2018-01-12  Jason Merrill  <jason@redhat.com>
1028         PR c++/83186 - ICE with static_cast of list-initialized temporary.
1029         * typeck.c (build_static_cast): Use build_non_dependent_expr.
1031 2018-01-12  Nathan Sidwell  <nathan@acm.org>
1033         * cp-tree.h (mark_rvalue_use): Add parm name.
1034         * expr.c (mark_lvalue_use, mark_lvalue_use_nonread): Move next to
1035         mark_rvalue_use.
1036         * call.c (convert_like_real): Fix formatting.
1038 2018-01-11  Jason Merrill  <jason@redhat.com>
1040         PR c++/82728 - wrong -Wunused-but-set-variable
1041         PR c++/82799
1042         PR c++/83690
1043         * call.c (perform_implicit_conversion_flags): Call mark_rvalue_use.
1044         * decl.c (case_conversion): Likewise.
1045         * semantics.c (finish_static_assert): Call
1046         perform_implicit_conversion_flags.
1048 2018-01-11  Nathan Sidwell  <nathan@acm.org>
1050         * method.c (enum mangling_flags): Delete long-dead enum.
1052 2018-01-10  Paolo Carlini  <paolo.carlini@oracle.com>
1054         * parser.c (cp_parser_std_attribute_spec): When
1055         token_pair::require_open / require_close return false simply
1056         return error_mark_node, avoid duplicate cp_parser_error about
1057         expected '(' / ')', respectively.
1059 2018-01-10  David Malcolm  <dmalcolm@redhat.com>
1061         PR c++/43486
1062         * call.c (null_ptr_cst_p): Strip location wrappers when
1063         converting from '0' to a pointer type in C++11 onwards.
1064         (conversion_null_warnings): Replace comparison with null_node with
1065         call to null_node_p.
1066         (build_over_call): Likewise.
1067         * cp-gimplify.c (cp_fold): Remove the early bailout when
1068         processing_template_decl.
1069         * cp-lang.c (selftest::run_cp_tests): Call
1070         selftest::cp_pt_c_tests and selftest::cp_tree_c_tests.
1071         * cp-tree.h (cp_expr::maybe_add_location_wrapper): New method.
1072         (selftest::run_cp_tests): Move decl to bottom of file.
1073         (null_node_p): New inline function.
1074         (selftest::cp_pt_c_tests): New decl.
1075         (selftest::cp_tree_c_tests): New decl.
1076         * cvt.c (build_expr_type_conversion): Replace comparison with
1077         null_node with call to null_node_p.
1078         * error.c (args_to_string): Likewise.
1079         * except.c (build_throw): Likewise.
1080         * mangle.c (write_expression): Skip location wrapper nodes.
1081         * parser.c (literal_integer_zerop): New function.
1082         (cp_parser_postfix_expression): Call maybe_add_location_wrapper on
1083         the result for RID_TYPEID. Pass true for new "wrap_locations_p"
1084         param of cp_parser_parenthesized_expression_list.  When calling
1085         warn_for_memset, replace integer_zerop calls with
1086         literal_integer_zerop, eliminating the double logical negation
1087         cast to bool.  Eliminate the special-casing for CONST_DECL in
1088         favor of the fold_for_warn within warn_for_memset.
1089         (cp_parser_parenthesized_expression_list): Add "wrap_locations_p"
1090         param, defaulting to false.  Convert "expr" to a cp_expr, and call
1091         maybe_add_location_wrapper on it when wrap_locations_p is true.
1092         (cp_parser_unary_expression): Call maybe_add_location_wrapper on
1093         the result for RID_ALIGNOF and RID_SIZEOF.
1094         (cp_parser_builtin_offsetof): Likewise.
1095         * pt.c: Include "selftest.h".
1096         (tsubst_copy): Handle location wrappers.
1097         (tsubst_copy_and_build): Likewise.
1098         (build_non_dependent_expr): Likewise.
1099         (selftest::test_build_non_dependent_expr): New function.
1100         (selftest::cp_pt_c_tests): New function.
1101         * tree.c: Include "selftest.h".
1102         (lvalue_kind): Handle VIEW_CONVERT_EXPR location wrapper nodes.
1103         (selftest::test_lvalue_kind): New function.
1104         (selftest::cp_tree_c_tests): New function.
1105         * typeck.c (string_conv_p): Strip any location wrapper from "exp".
1106         (cp_build_binary_op): Replace comparison with null_node with call
1107         to null_node_p.
1108         (build_address): Use location of operand when building address
1109         expression.
1111 2018-01-10  Marek Polacek  <polacek@redhat.com>
1113         PR c++/82541
1114         * call.c (build_conditional_expr_1): Check complain before warning.
1115         * pt.c (tsubst_copy_and_build) <case COND_EXPR>: Suppress
1116         -Wduplicated-branches.
1118 2018-01-10  Jakub Jelinek  <jakub@redhat.com>
1120         PR c++/81327
1121         * call.c (maybe_warn_class_memaccess): Add forward declaration.
1122         Change last argument from tree * to const vec<tree, va_gc> *, adjust
1123         args uses and check number of operands too.  Don't strip away any
1124         nops.  Use maybe_constant_value when looking for INTEGER_CST args.
1125         Deal with src argument not having pointer type.  Check
1126         tree_fits_uhwi_p before calling tree_to_uhwi.  Remove useless
1127         test.
1128         (build_over_call): Call maybe_warn_class_memaccess here on the
1129         original arguments.
1130         (build_cxx_call): Rather than here on converted arguments.
1132 2018-01-10  Paolo Carlini  <paolo.carlini@oracle.com>
1134         PR c++/81055
1135         * init.c (build_vec_init): Avoid building an INIT_EXPR with
1136         error_mark_node as second argument.
1138 2018-01-09  Jakub Jelinek  <jakub@redhat.com>
1140         PR c++/83734
1141         * constexpr.c (cxx_eval_statement_list): Ignore DEBUG_BEGIN_STMTs
1142         in STATEMENT_LIST.  Remove unneeded assert.
1144 2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
1145             Alan Hayward  <alan.hayward@arm.com>
1146             David Sherwood  <david.sherwood@arm.com>
1148         * constexpr.c (cxx_eval_array_reference): Handle polynomial
1149         VECTOR_CST_NELTS.
1150         (cxx_fold_indirect_ref): Handle polynomial TYPE_VECTOR_SUBPARTS.
1151         * call.c (build_conditional_expr_1): Likewise.
1152         * decl.c (cp_finish_decomp): Likewise.
1153         * mangle.c (write_type): Likewise.
1154         * typeck.c (structural_comptypes): Likewise.
1155         (cp_build_binary_op): Likewise.
1156         * typeck2.c (process_init_constructor_array): Likewise.
1158 2018-01-03  Jakub Jelinek  <jakub@redhat.com>
1160         PR c++/83555
1161         * typeck.c (build_static_cast_1): For static casts to reference types,
1162         call build_base_path with flag_delete_null_pointer_checks as nonnull
1163         instead of always false.  When -fsanitize=null, call
1164         ubsan_maybe_instrument_reference on the NULL reference INTEGER_CST.
1165         * cp-gimplify.c (cp_genericize_r): Don't walk subtrees of UBSAN_NULL
1166         call if the first argument is INTEGER_CST with REFERENCE_TYPE.
1168 2018-01-03  Nathan Sidwell  <nathan@acm.org>
1170         PR c++/83667
1171         * method.c (make_alias_for): Copy DECL_CONTEXT.
1173 2018-01-03  Marek Polacek  <polacek@redhat.com>
1175         PR c++/83592
1176         * decl.c (grokdeclarator): Don't warn about MVP in typename context.
1178 2018-01-03  Jakub Jelinek  <jakub@redhat.com>
1180         PR preprocessor/83602
1181         * name-lookup.c (lookup_name_fuzzy): Don't use macro_use_before_def
1182         for builtin macros.
1184         PR c++/83634
1185         * cp-gimplify.c (cp_fold) <case NOP_EXPR>: If the operand folds to
1186         error_mark_node, return error_mark_node.
1188         Update copyright years.
1190 2018-01-02  Jakub Jelinek  <jakub@redhat.com>
1192         PR c++/83556
1193         * tree.c (replace_placeholders_r): Pass NULL as last argument to
1194         cp_walk_tree instead of d->pset.  If non-TREE_CONSTANT and
1195         non-PLACEHOLDER_EXPR tree has been seen already, set *walk_subtrees
1196         to false and return.
1197         (replace_placeholders): Pass NULL instead of &pset as last argument
1198         to cp_walk_tree.
1200 2018-01-02  Nathan Sidwell  <nathan@acm.org>
1202         * constexpr.c (cxx_bind_parameters_in_call): Remove unneeded local
1203         lval var.
1205 Copyright (C) 2018 Free Software Foundation, Inc.
1207 Copying and distribution of this file, with or without modification,
1208 are permitted in any medium without royalty provided the copyright
1209 notice and this notice are preserved.