1 2018-02-26 Jakub Jelinek <jakub@redhat.com>
4 * parser.c (cp_parser_omp_var_list_no_open): Only call
5 cp_parser_lookup_name_simple on names satisfying identifier_p.
6 (cp_parser_oacc_routine): Likewise.
8 2018-02-26 Jason Merrill <jason@redhat.com>
10 PR c++/84551 - ICE with concepts and -g.
11 * parser.c (add_debug_begin_stmt): Do nothing in a concept.
13 2018-02-26 Marek Polacek <polacek@redhat.com>
16 * tree.c (replace_placeholders_r): Only check TREE_CONSTANT on
19 2018-02-26 Jason Merrill <jason@redhat.com>
21 PR c++/84447 - ICE with deleted inherited ctor with default arg.
22 * call.c (build_over_call): Handle deleted functions in one place.
24 2018-02-26 Paolo Carlini <paolo.carlini@oracle.com>
27 * decl.c (redeclaration_error_message): Don't try to use
28 DECL_DECLARED_CONSTEXPR_P on CONST_DECLs.
30 2018-02-26 Paolo Carlini <paolo.carlini@oracle.com>
32 * lambda.c (build_capture_proxy): Define static.
33 * cp-tree.h (build_capture_proxy): Remove.
35 2018-02-26 Marek Polacek <polacek@redhat.com>
38 * name-lookup.c (suggest_alternative_in_explicit_scope): Return false
39 if name is error node.
41 2018-02-25 Jason Merrill <jason@redhat.com>
43 PR c++/84015 - ICE with class deduction and auto template parm.
44 * pt.c (rewrite_template_parm): Use tf_partial in first tsubst.
46 2018-02-24 Marek Polacek <polacek@redhat.com>
49 * constexpr.c (maybe_constant_init_1): New function.
50 (maybe_constant_init): Make it a wrapper around maybe_constant_init_1.
51 (cxx_constant_init): New function.
52 * cp-tree.h (cxx_constant_init): Declare.
53 * typeck2.c (store_init_value): Call cxx_constant_init instead of
54 cxx_constant_value. Move the maybe_constant_init call under an 'else'.
56 2018-02-22 Jason Merrill <jason@redhat.com>
58 PR c++/70468 - ICE with constructor delegation via typedef.
59 * pt.c (tsubst_initializer_list): Check for other mem-initializers
60 with constructor delegation.
62 2018-02-22 Jason Merrill <jason@redhat.com>
64 PR c++/84424 - ICE with constexpr and __builtin_shuffle.
65 * constexpr.c (reduced_constant_expression_p): Handle CONSTRUCTOR of
68 2018-02-22 Marek Polacek <polacek@redhat.com>
71 * parser.c (cp_parser_braced_list): Use require_open instead of
74 2018-02-21 Jason Merrill <jason@redhat.com>
76 PR c++/84454 - ICE with pack expansion in signature.
77 * error.c (find_typenames_r): Also stop on EXPR_PACK_EXPANSION.
79 2018-02-20 Siddhesh Poyarekar <siddhesh@sourceware.org>
81 * cp-objcp-common.c (cxx_block_may_fallthru): Add case for
84 2018-02-20 Paolo Carlini <paolo.carlini@oracle.com>
87 * parser.c (cp_parser_init_declarator): Don't call start_lambda_scope
90 2018-02-20 Jakub Jelinek <jakub@redhat.com>
93 * class.c (fixed_type_or_null) <case CALL_EXPR>: Only test
94 TREE_HAS_CONSTRUCTOR if instance is not an internal function call.
97 * tree.c (bot_manip): If build_cplus_new or break_out_target_exprs
98 returns error_mark_node, return it immediately.
99 (break_out_target_exprs): If cp_walk_tree with bot_manip returns
100 error_mark_node, return error_mark_node.
103 * pt.c (tsubst_lambda_expr): If not nested, increment temporarily
104 function_depth to avoid GC during finish_lambda_function.
106 2018-02-19 Jason Merrill <jason@redhat.com>
108 PR c++/84429 - ICE capturing VLA.
109 * lambda.c (build_capture_proxy): Handle reference refs.
111 2018-02-19 Jakub Jelinek <jakub@redhat.com>
114 * parser.c (cp_parser_binary_expression): For no_toplevel_fold_p, if
115 either operand is error_mark_node, set current.lhs to that instead of
116 creating a binary op with error_mark_node operands.
119 * constexpr.c (potential_constant_expression_1): Handle OMP_SIMD.
121 2018-02-19 Paolo Carlini <paolo.carlini@oracle.com>
124 * decl.c (grokdeclarator): Early return error_mark_node upon
125 ill-formed friend declaration.
127 2018-02-16 Marek Polacek <polacek@redhat.com>
128 Jakub Jelinek <jakub@redhat.com>
131 * constexpr.c (cxx_eval_constant_expression) <case RETURN_EXPR>: Don't
132 set *jump_target to anything if jump_target is NULL.
134 2018-02-16 Jason Merrill <jason@redhat.com>
136 PR c++/84151 - unnecessary volatile load with static member.
137 * call.c (build_new_method_call_1): Avoid loading from a volatile
138 lvalue used as the object argument for a static member function.
140 PR c++/81853 - using-directive and constexpr.
141 * constexpr.c (cxx_eval_constant_expression): Handle USING_STMT.
143 PR c++/84420 - ICE with structured binding in lambda.
144 * lambda.c (is_capture_proxy): Check DECL_DECOMPOSITION_P.
146 PR c++/83835 - C++17 error with constructor ctors.
147 * call.c (build_special_member_call): Set TARGET_EXPR_DIRECT_INIT_P.
149 PR c++/82664 - ICE with reference to function template parm.
150 * pt.c (convert_nontype_argument_function): Avoid obfuscationg
153 PR c++/82764 - C++17 ICE with empty base
154 * class.c (build_base_field_1): Set DECL_SIZE to zero for empty base.
156 2018-02-16 Jason Merrill <jason@redhat.com>
158 PR c++/84421 - type-dependent if constexpr
159 * semantics.c (finish_if_stmt_cond): Check type_dependent_expression_p.
161 2018-02-16 Nathan Sidwell <nathan@acm.org>
163 Deprecate -ffriend-injection.
164 * decl.c (cxx_init_decl_processing): Emit warning on option.
165 * name-lookup.c (do_pushdecl): Emit warning if we push a visible
168 2018-02-16 Paolo Carlini <paolo.carlini@oracle.com>
171 * decl.c (check_special_function_return_type): Reject template
172 template parameter in deduction guide.
174 2018-02-16 Nathan Sidwell <nathan@acm.org>
177 * name-lookup.c (do_pushdecl): Bail out on bad local friend injection.
179 2018-02-15 Jason Merrill <jason@redhat.com>
181 PR c++/83227 - C++17 ICE with init-list derived-to-base conversion.
182 * call.c (convert_like_real): Don't use the copy-list-initialization
183 shortcut for ck_base.
185 PR c++/84045 - ICE with typedef and noexcept.
186 * except.c (build_noexcept_spec): Use strip_typedefs_expr.
188 PR c++/84376 - ICE with omitted template arguments.
189 * pt.c (dguide_name_p): Check for IDENTIFIER_NODE.
191 PR c++/84368 - wrong error with local variable in variadic lambda.
192 * pt.c (tsubst_pack_expansion): Fix handling of non-packs in
193 local_specializations.
195 2018-02-15 Paolo Carlini <paolo.carlini@oracle.com>
198 * constraint.cc (tsubst_constraint_info): Handle an error_mark_node
201 2018-02-14 Paolo Carlini <paolo.carlini@oracle.com>
204 * pt.c (do_auto_deduction): Don't check the TREE_TYPE of a null
207 2018-02-14 Nathan Sidwell <nathan@acm.org>
209 * decl2.c (mark_vtable_entries): Set input_location to decl's.
210 (c_parse_final_cleanups): Restore input_location after emitting
213 2018-02-14 Paolo Carlini <paolo.carlini@oracle.com>
215 * cp-tree.h (do_auto_deduction (tree, tree, tree)): Remove.
216 (do_auto_deduction (tree, tree, tree, tsubst_flags_t,
217 auto_deduction_context, tree, int): Add defaults.
218 * pt.c (do_auto_deduction (tree, tree, tree)): Remove definition.
219 (tsubst_omp_for_iterator): Adjust do_auto_deduction call, forward
220 tsubst_flags_t argument.
221 * init.c (build_new): Likewise.
223 2018-02-13 Jakub Jelinek <jakub@redhat.com>
226 * typeck.c (check_return_expr): Don't emit -Weffc++ warning
227 about return other than *this in assignment operators if
228 retval is type dependent expression.
230 2018-02-13 Paolo Carlini <paolo.carlini@oracle.com>
233 * call.c (build_conditional_expr_1): Use cp_save_expr instead of
234 save_expr for the G++ extension.
236 2018-02-13 Jason Merrill <jason@redhat.com>
238 PR c++/84080 - ICE with return type deduction and specialization.
239 * pt.c (determine_specialization): Check uses_template_parms.
241 Fix more variadic capture issues.
242 * pt.c (find_parameter_packs_r): Also look at explicit captures.
243 (check_for_bare_parameter_packs): Check current_class_type for
245 (extract_locals_r): Handle seeing a full instantiation of a pack.
246 (tsubst_pack_expansion): Likewise. Force lambda capture.
247 * parser.c (cp_parser_lambda_introducer): Don't
248 check_for_bare_parameter_packs.
250 PR c++/84338 - wrong variadic sizeof.
251 * pt.c (argument_pack_select_arg): Like the macro, but look through
253 (tsubst, tsubst_copy, dependent_template_arg_p): Use it.
254 (extract_fnparm_pack): Do make_pack_expansion.
255 (extract_locals_r): Do strip a pack expansion.
256 * cp-tree.h (ARGUMENT_PACK_SELECT_ARG): Remove.
258 2018-02-12 Jakub Jelinek <jakub@redhat.com>
261 * parser.c (cp_parser_binary_expression): Use build_min instead of
262 build2_loc to build the no_toplevel_fold_p toplevel binary expression.
264 2018-02-12 Nathan Sidwell <nathan@acm.org>
267 * parser.c (cp_parser_decltype): Push and pop
268 deferring_access_checks. Reorganize to avoid goto.
270 2018-02-12 Richard Biener <rguenther@suse.de>
273 * constexpr.c (cxx_eval_vec_init_1): Use a RANGE_EXPR to compact
274 uniform constructors and delay allocating them fully.
276 2018-02-09 Jason Merrill <jason@redhat.com>
278 PR c++/84036 - ICE with variadic capture.
279 Handle variadic capture proxies more like non-variadic.
280 * lambda.c (build_capture_proxy): Remove workaround.
281 * pt.c (find_parameter_packs_r): The proxy is a pack.
282 (instantiate_class_template_1): Remove dead lambda code.
283 (extract_fnparm_pack): Don't make_pack_expansion.
284 (extract_locals_r): Don't strip a pack expansion.
285 (tsubst_pack_expansion): Handle proxy packs. Use
286 PACK_EXPANSION_EXTRA_ARGS less.
287 (tsubst_decl) [FIELD_DECL]: Don't register_specialization.
288 (tsubst_copy) [FIELD_DECL]: Don't retrieve*_specialization.
289 [VAR_DECL]: Handle ARGUMENT_PACK_SELECT.
290 (tsubst_expr) [DECL_EXPR]: Handle proxy packs.
291 (tsubst_copy_and_build) [VAR_DECL]: Handle proxy packs normally.
293 2018-02-10 Jakub Jelinek <jakub@redhat.com>
296 * tree.c (cp_free_lang_data): Revert 2018-01-23 change.
298 2018-02-09 Jason Merrill <jason@redhat.com>
300 PR c++/81917 - ICE with void_t and partial specialization.
301 * pt.c (instantiate_class_template_1): Set TYPE_BEING_DEFINED before
302 calling most_specialized_partial_spec.
304 2018-02-09 Nathan Sidwell <nathan@acm.org>
307 * typeck.c (cp_build_indirect_ref_1, build_reinterpret_cast_1):
308 Pass expr location to strict_aliasing_warning.
310 2018-02-09 Jason Merrill <jason@redhat.com>
312 PR c++/84296 - ICE with qualified-id in template.
314 * pt.c (unknown_base_ref_p): New.
315 (instantiation_dependent_scope_ref_p): Use it instead of
316 any_dependent_bases_p.
318 2018-02-09 Marek Polacek <polacek@redhat.com>
319 Jakub Jelinek <jakub@redhat.com>
322 * constexpr.c (cxx_fold_indirect_ref): Sync some changes from
323 fold_indirect_ref_1, including poly_*int64. Verify first that
324 tree_fits_poly_int64_p (op01). Formatting fixes.
326 2018-02-08 Paolo Carlini <paolo.carlini@oracle.com>
328 * constexpr.c (cxx_eval_component_reference): Use INDIRECT_REF_P.
329 * lambda.c (build_capture_proxy): Likewise.
330 * search.c (field_access_p): Likewise.
331 * semantics.c (omp_clause_decl, omp_privatize_field,
332 finish_omp_clauses): Likewise.
334 2018-02-08 Paolo Carlini <paolo.carlini@oracle.com>
337 * typeck.c (decay_conversion): Use mark_rvalue_use for the special
340 2018-02-08 Nathan Sidwell <nathan@acm.org>
342 * class.c (finish_struct): Fix std:initializer_list diagnostic
345 2018-02-08 Paolo Carlini <paolo.carlini@oracle.com>
348 * pt.c (tsubst_copy_and_build): Use force_paren_expr for INDIRECT_REF.
350 2018-02-07 Jakub Jelinek <jakub@redhat.com>
353 * parser.c (cp_parser_dot_deref_incomplete): New function.
354 (cp_parser_postfix_dot_deref_expression): Use it.
356 2018-02-07 David Malcolm <dmalcolm@redhat.com>
360 * name-lookup.c (suggest_rid_p): New function.
361 (lookup_name_fuzzy): Replace enum-rid-filtering logic with call to
364 2018-02-07 Jason Merrill <jason@redhat.com>
366 PR c++/84182 - ICE with captured lambda
368 * pt.c (extract_locals_r, extract_local_specs): New.
369 (tsubst_pack_expansion): Use them.
371 2018-02-07 Martin Liska <mliska@suse.cz>
374 * class.c (add_method): Append argument value.
375 * cp-tree.h (maybe_version_functions): Add new argument.
376 * decl.c (decls_match): Call it if a declaration does not
377 have DECL_FUNCTION_VERSIONED.
378 (maybe_version_functions): record argument is added.
380 2018-02-05 Marek Polacek <polacek@redhat.com>
382 * class.c: Remove unused global variables.
383 (build_primary_vtable): Don't gather statistics.
384 (print_class_statistics): Remove.
385 * cp-tree.h (print_class_statistics): Remove.
386 * tree.c (cxx_print_statistics): Don't call print_class_statistics.
388 2018-02-02 Paolo Carlini <paolo.carlini@oracle.com>
390 * class.c (is_really_empty_class): Use DECL_UNNAMED_BIT_FIELD.
391 * constexpr.c (cx_check_missing_mem_inits): Likewise.
392 * decl.c (next_initializable_field, find_decomp_class_base,
393 cp_finish_decomp): Likewise.
394 * typeck2.c (process_init_constructor_record): Likewise.
396 2018-02-02 Jason Merrill <jason@redhat.com>
398 PR c++/84181 - ICE with lambda parm in template argument.
399 * tree.c (strip_typedefs_expr): Use cp_tree_operand_length.
401 2018-02-01 Jason Merrill <jason@redhat.com>
403 PR c++/84160 - ICE with nested variadic capture.
404 * lambda.c (is_capture_proxy_with_ref): New.
405 (insert_capture_proxy): Don't set DECL_CAPTURED_VARIABLE from a
407 * expr.c (mark_use): Use is_capture_proxy_with_ref.
408 * constexpr.c (potential_constant_expression_1): Likewise.
409 * semantics.c (process_outer_var_ref): Likewise.
411 2018-02-01 Marek Polacek <polacek@redhat.com>
414 * typeck.c (build_address): Relax the assert when
415 processing_template_decl.
417 2018-02-01 Jason Merrill <jason@redhat.com>
419 PR c++/84126 - ICE with variadic generic lambda
422 * pt.c (tsubst_pack_expansion): Handle function parameter_packs in
423 PACK_EXPANSION_EXTRA_ARGS.
425 2018-02-01 Paolo Carlini <paolo.carlini@oracle.com>
428 * call.c (convert_like_real): If w're initializing from {} explicitly
429 call abstract_virtuals_error_sfinae.
431 2018-01-31 Jason Merrill <jason@redhat.com>
432 Jakub Jelinek <jakub@redhat.com>
435 * constexpr.c (cxx_eval_outermost_constant_expr): Build NOP_EXPR
436 around non-constant ADDR_EXPRs rather than clearing TREE_CONSTANT
439 2018-01-31 Jakub Jelinek <jakub@redhat.com>
442 * constexpr.c (diag_array_subscript): Emit different diagnostics
443 if TYPE_DOMAIN (arraytype) is NULL.
444 (cxx_eval_array_reference, cxx_eval_store_expression): For arrays
445 with NULL TYPE_DOMAIN use size_zero_node as nelts.
447 2018-01-31 Paolo Carlini <paolo.carlini@oracle.com>
450 * semantics.c (finish_qualified_id_expr): When handling an
451 UNBOUND_CLASS_TEMPLATE only adjust qualifying_class and expr.
453 2018-01-31 Marek Polacek <polacek@redhat.com>
456 * cp-gimplify.c (cp_fold): Check if X is an error node before
457 calling useless_type_conversion_p.
459 2018-01-30 Jason Merrill <jason@redhat.com>
461 PR c++/84091 - ICE with local class in lambda in template.
462 * decl2.c (determine_visibility): Look for outer containing template
465 PR c++/84098 - ICE with lambda in template NSDMI.
466 * pt.c (instantiate_class_template_1): Ignore more lambdas.
468 2018-01-29 Jason Merrill <jason@redhat.com>
470 PR c++/68810 - wrong location for reinterpret_cast error.
471 * cvt.c (cp_convert_to_pointer): Always build a CONVERT_EXPR when
474 2018-01-29 Marek Polacek <polacek@redhat.com>
477 * constexpr.c (cxx_fold_indirect_ref): Compute ((foo *)&fooarray)[1]
478 => fooarray[1] in offset_int.
480 2018-01-29 Jason Merrill <jason@redhat.com>
482 PR c++/83942 - wrong unused warning with static_cast.
483 * cvt.c (ocp_convert): Call mark_rvalue_use.
485 2018-01-26 Jason Merrill <jason@redhat.com>
487 PR c++/83956 - wrong dtor error with anonymous union
488 * method.c (walk_field_subobs): Variant members only affect
490 (maybe_explain_implicit_delete): Pass &deleted_p for diagnostic.
492 PR c++/84036 - ICE with variadic capture.
494 * pt.c (tsubst_pack_expansion): When optimizing a simple
495 substitution, pull a single pack expansion out of its pack.
497 PR c++/82514 - ICE with local class in generic lambda.
498 * pt.c (regenerated_lambda_fn_p): Remove.
499 (enclosing_instantiation_of): Don't use it.
500 (tsubst_function_decl): Call enclosing_instantiation_of.
502 * pt.c (lookup_template_class_1): Add sanity check.
503 * name-lookup.c (do_pushtag): Don't add closures to local_classes.
505 2018-01-25 Jakub Jelinek <jakub@redhat.com>
508 * decl.c (find_decomp_class_base): Ignore unnamed bitfields. Ignore
509 recursive calls that return ret.
510 (cp_finish_decomp): Ignore unnamed bitfields.
512 2018-01-23 Jason Merrill <jason@redhat.com>
514 PR c++/82249 - wrong mismatched pack length error.
515 * pt.c (extract_fnparm_pack, tsubst_pack_expansion): Handle
516 unsubstituted function parameter pack.
518 2018-01-23 Paolo Carlini <paolo.carlini@oracle.com>
521 * decl.c (check_for_uninitialized_const_var): Not static; add
522 bool and tsubst_flags_t parameters; adjust to be used both in
523 constexpr context and not.
524 * constexpr.c (potential_constant_expression_1): Use the above.
525 * cp-tree.h (check_for_uninitialized_const_var): Declare.
527 2018-01-23 Jason Merrill <jason@redhat.com>
529 PR c++/83947 - ICE with auto declarations.
530 * pt.c (do_auto_deduction): Don't deduce from an auto decl.
531 * decl.c (undeduced_auto_decl): Limit to vars and fns.
533 2018-01-23 David Malcolm <dmalcolm@redhat.com>
536 * pt.c (tsubst_copy_and_build) <CONSTRUCTOR>: Remove early bailout
537 for pointer to member function types.
539 2018-01-23 Jakub Jelinek <jakub@redhat.com>
542 * tree.c (cp_free_lang_data): Change DECL_VALUE_EXPR of
543 DECL_OMP_PRIVATIZED_MEMBER vars to error_mark_node.
545 2018-01-23 Nathan Sidwell <nathan@acm.org>
548 * pt.c (tsubst_baselink): Remove optype assert.
549 * ptree.c (cxx_print_xnode): <case BASELINK> Print BASELINK_OPTYPE.
551 2018-01-23 Jakub Jelinek <jakub@redhat.com>
554 * decl.c (cp_finish_decomp): Diagnose if reference structure binding
555 refers to incomplete type.
557 2018-01-23 Nathan Sidwell <nathan@acm.org>
559 Deprecate ARM-era for scope handling
560 * decl.c (poplevel): Flag_new_for_scope is a boolean-like.
561 (cxx_init_decl_processing): Deprecate flag_new_for_scope being
563 * name-lookup.c (check_for_out_of_scope_variable): Deprecate and
565 * semantics.c (begin_for_scope): Flag_new_for_scope is
567 (finish_for_stmt, begin_range_for_stmt): Likewise.
569 2018-01-22 Jason Merrill <jason@redhat.com>
572 * decl2.c (determine_visibility): Fix template_decl handling
573 instead of blocking it.
575 PR c++/83720 - ICE with lambda and LTO.
576 * decl2.c (determine_visibility): Clear template_decl for
577 function-scope decls. Propagate anonymous linkage from containing
580 2018-01-22 Marek Polacek <polacek@redhat.com>
583 * typeck2.c (split_nonconstant_init_1): Return false if we didn't
586 2018-01-22 Ville Voutilainen <ville.voutilainen@gmail.com>
589 * decl.c (grokdeclarator): Don't diagnose extra parens
592 2018-01-19 Jakub Jelinek <jakub@redhat.com>
595 * call.c (joust): Use TREE_TYPE (source) if source is
596 a POINTER_TYPE_P rather than if ! DECL_CONSTRUCTOR_P (w->fn).
599 * typeck.c (convert_for_assignment): Suppress warn_ignored_qualifiers
600 for direct enum init.
601 * decl.c (reshape_init): Likewise.
603 2018-01-19 Marek Polacek <polacek@redhat.com>
605 * constexpr.c (fold_simple): Simplify.
607 2018-01-18 Jason Merrill <jason@redhat.com>
610 * search.c (any_dependent_bases_p): Handle null TREE_BINFO.
611 * pt.c (instantiation_dependent_scope_ref_p): True if
612 any_dependent_bases_p.
614 2018-01-18 Paolo Carlini <paolo.carlini@oracle.com>
616 * cp-tree.h: Fix comment typo (DECL_NON_TRIVIALLY_INITIALIZED_P
617 vs DECL_NONTRIVIALLY_INITIALIZED_P).
619 2018-01-18 Jason Merrill <jason@redhat.com>
621 PR c++/82461 - constexpr list-initialized member
622 * constexpr.c (potential_constant_expression_1): Check
623 TARGET_EXPR_DIRECT_INIT_P.
625 2018-01-18 Paolo Carlini <paolo.carlini@oracle.com>
628 * decl.c (xref_basetypes): Early return upon error about derived
631 2018-01-18 Nathan Sidwell <nathan@acm.org>
634 * cp-tree.h (mark_use): Declare.
635 * expr.c (mark_use): Make extern.
636 * call.c (direct_reference_binding): Set inner conv's
637 rvaluedness_matches_p, if it is an identity.
638 (convert_like_real): Mark lvalue or rvalue use for identity as
639 rvaledness_matches_p demands.
641 2018-01-18 Jakub Jelinek <jakub@redhat.com>
644 * parser.c (attr_chainon): New function.
645 (cp_parser_label_for_labeled_statement, cp_parser_decl_specifier_seq,
646 cp_parser_namespace_definition, cp_parser_init_declarator,
647 cp_parser_type_specifier_seq, cp_parser_parameter_declaration,
648 cp_parser_gnu_attributes_opt): Use it.
649 (cp_parser_member_declaration, cp_parser_objc_class_ivars,
650 cp_parser_objc_struct_declaration): Likewise. Don't reset
651 prefix_attributes if attributes is error_mark_node.
653 2018-01-17 Paolo Carlini <paolo.carlini@oracle.com>
656 * decl.c (grokdeclarator): Do not append the error_mark_node
657 due to an erroneous optional attribute-specifier-seq.
659 2018-01-17 Jakub Jelinek <jakub@redhat.com>
662 * cp-gimplify.c (cp_maybe_instrument_return): Handle
665 2018-01-17 Paolo Carlini <paolo.carlini@oracle.com>
668 * constexpr.c (ensure_literal_type_for_constexpr_object): Return
669 error_mark_node when we give an error.
670 * decl.c (cp_finish_decl): Use the latter.
672 2018-01-17 Nathan Sidwell <nathan@acm.org>
675 * init.c (build_raw_new_expr): Scan list for lookups to keep.
677 2018-01-17 David Malcolm <dmalcolm@redhat.com>
680 * expr.c (fold_for_warn): Move from c-common.c, reducing to just
681 the C++ part. If processing a template, call
682 fold_non_dependent_expr rather than fully folding.
684 2018-01-17 Jason Merrill <jason@redhat.com>
686 PR c++/81067 - redundant NULL warning.
687 * call.c (convert_like_real): Restore null_node handling.
689 2018-01-17 Jason Merrill <jason@redhat.com>
691 PR c++/81843 - ICE with variadic member template.
693 * pt.c (unify_pack_expansion): Don't try to deduce enclosing
696 2018-01-17 David Malcolm <dmalcolm@redhat.com>
699 * pt.c (type_dependent_expression_p): Strip any location wrapper
700 before testing tree codes.
701 (selftest::test_type_dependent_expression_p): New function.
702 (selftest::cp_pt_c_tests): Call it.
704 2018-01-17 Nathan Sidwell <nathan@acm.org>
707 * pt.c (tsubst_expr) <case RANGE_FOR_STMT>: Rebuild a range_for if
708 this not a final instantiation.
710 2018-01-16 Jason Merrill <jason@redhat.com>
712 PR c++/83714 - ICE checking return in template.
713 * typeck.c (check_return_expr): Call build_non_dependent_expr.
715 2018-01-16 Jakub Jelinek <jakub@redhat.com>
718 * pt.c (tsubst_copy_and_build) <case CALL_EXPR>: If function
719 is AGGR_INIT_EXPR rather than CALL_EXPR, set AGGR_INIT_FROM_THUNK_P
720 instead of CALL_FROM_THUNK_P.
723 * name-lookup.c (member_vec_dedup): Return early if len is 0.
724 (resort_type_member_vec, set_class_bindings,
725 insert_late_enum_def_bindings): Use vec qsort method instead of
726 calling qsort directly.
728 2018-01-15 Martin Sebor <msebor@redhat.com>
731 * class.c (find_flexarrays): Make a record of multiple flexible array
734 2018-01-12 Jason Merrill <jason@redhat.com>
736 PR c++/83186 - ICE with static_cast of list-initialized temporary.
737 * typeck.c (build_static_cast): Use build_non_dependent_expr.
739 2018-01-12 Nathan Sidwell <nathan@acm.org>
741 * cp-tree.h (mark_rvalue_use): Add parm name.
742 * expr.c (mark_lvalue_use, mark_lvalue_use_nonread): Move next to
744 * call.c (convert_like_real): Fix formatting.
746 2018-01-11 Jason Merrill <jason@redhat.com>
748 PR c++/82728 - wrong -Wunused-but-set-variable
751 * call.c (perform_implicit_conversion_flags): Call mark_rvalue_use.
752 * decl.c (case_conversion): Likewise.
753 * semantics.c (finish_static_assert): Call
754 perform_implicit_conversion_flags.
756 2018-01-11 Nathan Sidwell <nathan@acm.org>
758 * method.c (enum mangling_flags): Delete long-dead enum.
760 2018-01-10 Paolo Carlini <paolo.carlini@oracle.com>
762 * parser.c (cp_parser_std_attribute_spec): When
763 token_pair::require_open / require_close return false simply
764 return error_mark_node, avoid duplicate cp_parser_error about
765 expected '(' / ')', respectively.
767 2018-01-10 David Malcolm <dmalcolm@redhat.com>
770 * call.c (null_ptr_cst_p): Strip location wrappers when
771 converting from '0' to a pointer type in C++11 onwards.
772 (conversion_null_warnings): Replace comparison with null_node with
774 (build_over_call): Likewise.
775 * cp-gimplify.c (cp_fold): Remove the early bailout when
776 processing_template_decl.
777 * cp-lang.c (selftest::run_cp_tests): Call
778 selftest::cp_pt_c_tests and selftest::cp_tree_c_tests.
779 * cp-tree.h (cp_expr::maybe_add_location_wrapper): New method.
780 (selftest::run_cp_tests): Move decl to bottom of file.
781 (null_node_p): New inline function.
782 (selftest::cp_pt_c_tests): New decl.
783 (selftest::cp_tree_c_tests): New decl.
784 * cvt.c (build_expr_type_conversion): Replace comparison with
785 null_node with call to null_node_p.
786 * error.c (args_to_string): Likewise.
787 * except.c (build_throw): Likewise.
788 * mangle.c (write_expression): Skip location wrapper nodes.
789 * parser.c (literal_integer_zerop): New function.
790 (cp_parser_postfix_expression): Call maybe_add_location_wrapper on
791 the result for RID_TYPEID. Pass true for new "wrap_locations_p"
792 param of cp_parser_parenthesized_expression_list. When calling
793 warn_for_memset, replace integer_zerop calls with
794 literal_integer_zerop, eliminating the double logical negation
795 cast to bool. Eliminate the special-casing for CONST_DECL in
796 favor of the fold_for_warn within warn_for_memset.
797 (cp_parser_parenthesized_expression_list): Add "wrap_locations_p"
798 param, defaulting to false. Convert "expr" to a cp_expr, and call
799 maybe_add_location_wrapper on it when wrap_locations_p is true.
800 (cp_parser_unary_expression): Call maybe_add_location_wrapper on
801 the result for RID_ALIGNOF and RID_SIZEOF.
802 (cp_parser_builtin_offsetof): Likewise.
803 * pt.c: Include "selftest.h".
804 (tsubst_copy): Handle location wrappers.
805 (tsubst_copy_and_build): Likewise.
806 (build_non_dependent_expr): Likewise.
807 (selftest::test_build_non_dependent_expr): New function.
808 (selftest::cp_pt_c_tests): New function.
809 * tree.c: Include "selftest.h".
810 (lvalue_kind): Handle VIEW_CONVERT_EXPR location wrapper nodes.
811 (selftest::test_lvalue_kind): New function.
812 (selftest::cp_tree_c_tests): New function.
813 * typeck.c (string_conv_p): Strip any location wrapper from "exp".
814 (cp_build_binary_op): Replace comparison with null_node with call
816 (build_address): Use location of operand when building address
819 2018-01-10 Marek Polacek <polacek@redhat.com>
822 * call.c (build_conditional_expr_1): Check complain before warning.
823 * pt.c (tsubst_copy_and_build) <case COND_EXPR>: Suppress
824 -Wduplicated-branches.
826 2018-01-10 Jakub Jelinek <jakub@redhat.com>
829 * call.c (maybe_warn_class_memaccess): Add forward declaration.
830 Change last argument from tree * to const vec<tree, va_gc> *, adjust
831 args uses and check number of operands too. Don't strip away any
832 nops. Use maybe_constant_value when looking for INTEGER_CST args.
833 Deal with src argument not having pointer type. Check
834 tree_fits_uhwi_p before calling tree_to_uhwi. Remove useless
836 (build_over_call): Call maybe_warn_class_memaccess here on the
838 (build_cxx_call): Rather than here on converted arguments.
840 2018-01-10 Paolo Carlini <paolo.carlini@oracle.com>
843 * init.c (build_vec_init): Avoid building an INIT_EXPR with
844 error_mark_node as second argument.
846 2018-01-09 Jakub Jelinek <jakub@redhat.com>
849 * constexpr.c (cxx_eval_statement_list): Ignore DEBUG_BEGIN_STMTs
850 in STATEMENT_LIST. Remove unneeded assert.
852 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org>
853 Alan Hayward <alan.hayward@arm.com>
854 David Sherwood <david.sherwood@arm.com>
856 * constexpr.c (cxx_eval_array_reference): Handle polynomial
858 (cxx_fold_indirect_ref): Handle polynomial TYPE_VECTOR_SUBPARTS.
859 * call.c (build_conditional_expr_1): Likewise.
860 * decl.c (cp_finish_decomp): Likewise.
861 * mangle.c (write_type): Likewise.
862 * typeck.c (structural_comptypes): Likewise.
863 (cp_build_binary_op): Likewise.
864 * typeck2.c (process_init_constructor_array): Likewise.
866 2018-01-03 Jakub Jelinek <jakub@redhat.com>
869 * typeck.c (build_static_cast_1): For static casts to reference types,
870 call build_base_path with flag_delete_null_pointer_checks as nonnull
871 instead of always false. When -fsanitize=null, call
872 ubsan_maybe_instrument_reference on the NULL reference INTEGER_CST.
873 * cp-gimplify.c (cp_genericize_r): Don't walk subtrees of UBSAN_NULL
874 call if the first argument is INTEGER_CST with REFERENCE_TYPE.
876 2018-01-03 Nathan Sidwell <nathan@acm.org>
879 * method.c (make_alias_for): Copy DECL_CONTEXT.
881 2018-01-03 Marek Polacek <polacek@redhat.com>
884 * decl.c (grokdeclarator): Don't warn about MVP in typename context.
886 2018-01-03 Jakub Jelinek <jakub@redhat.com>
888 PR preprocessor/83602
889 * name-lookup.c (lookup_name_fuzzy): Don't use macro_use_before_def
893 * cp-gimplify.c (cp_fold) <case NOP_EXPR>: If the operand folds to
894 error_mark_node, return error_mark_node.
896 Update copyright years.
898 2018-01-02 Jakub Jelinek <jakub@redhat.com>
901 * tree.c (replace_placeholders_r): Pass NULL as last argument to
902 cp_walk_tree instead of d->pset. If non-TREE_CONSTANT and
903 non-PLACEHOLDER_EXPR tree has been seen already, set *walk_subtrees
905 (replace_placeholders): Pass NULL instead of &pset as last argument
908 2018-01-02 Nathan Sidwell <nathan@acm.org>
910 * constexpr.c (cxx_bind_parameters_in_call): Remove unneeded local
913 Copyright (C) 2018 Free Software Foundation, Inc.
915 Copying and distribution of this file, with or without modification,
916 are permitted in any medium without royalty provided the copyright
917 notice and this notice are preserved.