]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/cp/ChangeLog
PR c++/89640 - GNU attributes on lambda.
[thirdparty/gcc.git] / gcc / cp / ChangeLog
CommitLineData
640c769f 12019-03-18 Jason Merrill <jason@redhat.com>
2
4273f124 3 PR c++/89640 - GNU attributes on lambda.
4 * parser.c (cp_parser_lambda_declarator_opt): Allow GNU attributes.
5
640c769f 6 PR c++/89682 - wrong access error in default argument.
7 * pt.c (tsubst_default_argument): Don't defer access checks.
8
24c67877 92019-03-18 Paolo Carlini <paolo.carlini@oracle.com>
10
11 PR c++/85014
12 * semantics.c (finish_non_static_data_member): Check return value
13 of context_for_name_lookup and immediately return error_mark_node
14 if isn't a type.
15
ce139b21 162019-03-17 Jason Merrill <jason@redhat.com>
17
18 PR c++/89571 - ICE with ill-formed noexcept on constructor.
19 * pt.c (maybe_instantiate_noexcept): Only return false if defaulted.
20 (regenerate_decl_from_template): Use it for noexcept-specs.
21
773c8785 222019-03-14 Jason Merrill <jason@redhat.com>
23
24 * parser.c (cp_parser_decl_specifier_seq): Support C++20
25 concept-definition syntax without 'bool'.
26
d0782a7e 272019-03-14 Jakub Jelinek <jakub@redhat.com>
28
c17b0b28 29 PR c++/89512
30 * semantics.c (finish_qualified_id_expr): Reject variable templates.
31
d0782a7e 32 PR c++/89652
33 * constexpr.c (struct constexpr_ctx): Change save_exprs type from
34 hash_set<tree> to vec<tree>.
35 (cxx_eval_call_expression): Adjust for save_exprs being a vec instead
36 of hash_set.
37 (cxx_eval_loop_expr): Likewise. Truncate the vector after each
38 removal of SAVE_EXPRs from values.
39 (cxx_eval_constant_expression) <case SAVE_EXPR>: Call safe_push
40 method on save_exprs instead of add.
41
d28a979f 422019-03-13 Jason Merrill <jason@redhat.com>
43
44 PR c++/86521 - C++17 copy elision in initialization by constructor.
45 * call.c (joust_maybe_elide_copy): New.
46 (joust): Call it.
47
e214ee76 482019-03-13 Marek Polacek <polacek@redhat.com>
49
50 PR c++/88979 - further P0634 fix for constructors.
51 * parser.c (cp_parser_decl_specifier_seq): Pass flags to
52 cp_parser_constructor_declarator_p.
53 (cp_parser_direct_declarator): Allow missing typename for constructor
54 parameters.
55 (cp_parser_constructor_declarator_p): Add FLAGS parameter. Pass it to
56 cp_parser_type_specifier.
57
3c78ad42 58 PR c++/89686 - mixing init-capture and simple-capture in lambda.
59 * parser.c (cp_parser_lambda_introducer): Give error when combining
60 init-capture and simple-capture.
61
8b953246 62 PR c++/89660 - bogus error with -Wredundant-move.
63 * typeck.c (maybe_warn_pessimizing_move): Only accept (T &) &arg
64 as the std::move's argument. Don't call convert_for_initialization
65 when warn_redundant_move isn't on.
66
4ca87658 672019-03-11 Jason Merrill <jason@redhat.com>
68
69 PR c++/86521 - wrong overload resolution with ref-qualifiers.
70 * call.c (build_user_type_conversion_1): Don't use a conversion to a
71 reference of the wrong rvalueness for direct binding.
72
f2a60d44 732019-03-11 Martin Liska <mliska@suse.cz>
74
75 * cvt.c (build_expr_type_conversion): Wrap apostrophes
76 in gcc internal format with %'.
77 * decl.c (check_no_redeclaration_friend_default_args): Likewise.
78 (grokfndecl): Likewise.
79 * name-lookup.c (do_pushtag): Likewise.
80 * pt.c (unify_parameter_deduction_failure): Likewise.
81 (unify_template_deduction_failure): Likewise.
82
2f6d557f 832019-03-11 Martin Liska <mliska@suse.cz>
84
85 * call.c (convert_arg_to_ellipsis): Wrap an option name
86 in a string format message and fix GNU coding style.
87 (build_over_call): Likewise.
88 * class.c (check_field_decl): Likewise.
89 (layout_nonempty_base_or_field): Likewise.
90 * constexpr.c (cxx_eval_loop_expr): Likewise.
91 * cvt.c (type_promotes_to): Likewise.
92 * decl.c (cxx_init_decl_processing): Likewise.
93 (mark_inline_variable): Likewise.
94 (grokdeclarator): Likewise.
95 * decl2.c (record_mangling): Likewise.
96 * error.c (maybe_warn_cpp0x): Likewise.
97 * except.c (doing_eh): Likewise.
98 * mangle.c (maybe_check_abi_tags): Likewise.
99 * parser.c (cp_parser_diagnose_invalid_type_name): Likewise.
100 (cp_parser_userdef_numeric_literal): Likewise.
101 (cp_parser_primary_expression): Likewise.
102 (cp_parser_unqualified_id): Likewise.
103 (cp_parser_pseudo_destructor_name): Likewise.
104 (cp_parser_builtin_offsetof): Likewise.
105 (cp_parser_lambda_expression): Likewise.
106 (cp_parser_lambda_introducer): Likewise.
107 (cp_parser_lambda_declarator_opt): Likewise.
108 (cp_parser_selection_statement): Likewise.
109 (cp_parser_init_statement): Likewise.
110 (cp_parser_decomposition_declaration): Likewise.
111 (cp_parser_function_specifier_opt): Likewise.
112 (cp_parser_static_assert): Likewise.
113 (cp_parser_simple_type_specifier): Likewise.
114 (cp_parser_namespace_definition): Likewise.
115 (cp_parser_using_declaration): Likewise.
116 (cp_parser_ctor_initializer_opt_and_function_body): Likewise.
117 (cp_parser_initializer_list): Likewise.
118 (cp_parser_type_parameter_key): Likewise.
119 (cp_parser_member_declaration): Likewise.
120 (cp_parser_try_block): Likewise.
121 (cp_parser_std_attribute_spec): Likewise.
122 (cp_parser_requires_clause_opt): Likewise.
123 * pt.c (check_template_variable): Likewise.
124 (check_default_tmpl_args): Likewise.
125 (push_tinst_level_loc): Likewise.
126 (instantiate_pending_templates): Likewise.
127 (invalid_nontype_parm_type_p): Likewise.
128 * repo.c (get_base_filename): Likewise.
129 * rtti.c (typeid_ok_p): Likewise.
130 (build_dynamic_cast_1): Likewise.
131 * tree.c (maybe_warn_parm_abi): Likewise.
132
29005d9c 1332019-03-08 Jakub Jelinek <jakub@redhat.com>
134
000969f9 135 PR other/80058
136 * parser.c (cp_parser_template_declaration_after_parameters): Avoid
137 one space before " at the end of line and another after " on another
138 line in a string literal.
139
94a62c5a 140 PR tree-optimization/89550
141 * semantics.c (maybe_convert_cond): Only set TREE_NO_WARNING if
142 warning_at returned true.
143 * decl2.c (c_parse_final_cleanups): Likewise.
144 * typeck.c (convert_for_assignment): Likewise.
145 * decl.c (finish_function): Likewise.
146
222c113b 147 PR c++/89585
148 * parser.c (cp_parser_asm_definition): Just warn instead of error
149 on volatile qualifier outside of function body.
150
92651efb 151 PR c++/89599
152 * constexpr.c (potential_constant_expression_1): Reject
153 REINTERPRET_CAST_P NOP_EXPRs.
154
29005d9c 155 PR c++/89622
156 * call.c (joust): Call print_z_candidate only if pedwarn returned
157 true.
158
bddb19c4 1592019-03-07 Jason Merrill <jason@redhat.com>
160
84982f0e 161 PR c++/88123 - lambda and using-directive.
162 * name-lookup.c (op_unqualified_lookup)
163 (maybe_save_operator_binding, discard_operator_bindings)
164 (push_operator_bindings): New.
165 * typeck.c (build_x_binary_op, build_x_unary_op): Call
166 maybe_save_operator_binding.
167 * decl.c (start_preparsed_function): Call push_operator_bindings.
168 * tree.c (cp_free_lang_data): Call discard_operator_bindings.
169
bddb19c4 170 PR c++/88820 - ICE with CTAD and member template used in DMI.
171 * pt.c (do_class_deduction): Handle parm used as its own arg.
172
02a7fc59 1732019-03-07 Jakub Jelinek <jakub@redhat.com>
174
175 PR c++/89585
176 * parser.c (cp_parser_asm_definition): Parse asm qualifiers even
177 at toplevel, but diagnose them.
178
bc17f5fd 1792019-03-06 Jason Merrill <jason@redhat.com>
180
181 PR c++/89381 - implicit copy and using-declaration.
182 * class.c (classtype_has_move_assign_or_move_ctor_p): Don't consider
183 op= brought in by a using-declaration.
184
aa49bda0 1852019-03-06 Jakub Jelinek <jakub@redhat.com>
186
187 PR c++/87148
188 * init.c (build_value_init_noctor): Ignore flexible array members.
189
02daf5d2 1902019-03-06 Jason Merrill <jason@redhat.com>
191
192 PR c++/89576 - if constexpr of lambda capture.
193 * semantics.c (maybe_convert_cond): Do convert a non-dependent
194 condition in a template.
195 * typeck.c (condition_conversion): Handle being called in a
196 template.
197
55d0cc00 1982019-03-06 Marek Polacek <polacek@redhat.com>
199
200 PR c++/87378 - bogus -Wredundant-move warning.
201 * typeck.c (maybe_warn_pessimizing_move): See if the maybe-rvalue
202 overload resolution would actually succeed.
203
cd5a9ed1 2042019-03-05 Jason Merrill <jason@redhat.com>
205
206 * class.c (is_really_empty_class): Add ignore_vptr parm.
207 (trivial_default_constructor_is_constexpr): Pass it.
208 * call.c (build_over_call): Pass it.
209 * constexpr.c (cxx_eval_constant_expression): Pass it instead of
210 checking TYPE_POLYMORPHIC_P.
211 (cxx_eval_component_reference, potential_constant_expression_1):
212 Pass it.
213 * cp-gimplify.c (simple_empty_class_p): Pass it.
214 * init.c (expand_aggr_init_1): Pass it.
215
1751c288 2162019-03-04 Paolo Carlini <paolo.carlini@oracle.com>
217
218 PR c++/84605
219 * parser.c (cp_parser_class_head): Reject TYPE_BEING_DEFINED too.
220
10599713 2212019-03-04 Jakub Jelinek <jakub@redhat.com>
222
223 PR c++/71446
224 * call.c (field_in_pset): New function.
225 (build_aggr_conv): Handle CONSTRUCTOR_IS_DESIGNATED_INIT correctly.
226
73e3d2ee 2272019-03-02 Jakub Jelinek <jakub@redhat.com>
228
229 PR c++/71446
230 * cp-tree.h (CONSTRUCTOR_IS_DESIGNATED_INIT): Define.
231 * parser.c (cp_parser_braced_list): Adjust cp_parser_initializer_list
232 caller, set CONSTRUCTOR_IS_DESIGNATED_INIT.
233 (cp_parser_initializer_list): Add designated parameter, set *designated
234 to a bool whether any designators were parsed.
235 * decl.c (reshape_init): Copy over CONSTRUCTOR_IS_DESIGNATED_INIT if
236 needed.
237 * pt.c (tsubst_copy_and_build): Likewise.
238 * call.c (implicit_conversion): If CONSTRUCTOR_IS_DESIGNATED_INIT,
239 don't call build_list_conv, nor build_complex_conv, nor attempt to
240 convert a single element initializer to scalar.
241
f409a882 2422019-03-01 Marek Polacek <polacek@redhat.com>
243
ae8e3cb6 244 PR c++/89537 - missing location for error with non-static member fn.
245 * call.c (resolve_args): Use EXPR_LOCATION.
246 * typeck.c (build_class_member_access_expr): Use input_location.
247
f409a882 248 PR c++/89532 - ICE with incomplete type in decltype.
249 * semantics.c (finish_compound_literal): Return error_mark_node
250 if digest_init_flags returns error_mark_node.
251
b279a142 2522019-03-01 Jakub Jelinek <jakub@redhat.com>
253
254 Implement P1002R1, Try-catch blocks in constexpr functions
255 PR c++/89513
256 * parser.c (cp_parser_ctor_initializer_opt_and_function_body):
257 Diagnose constexpr ctor or function with function-try-block with
258 pedwarn for c++17 and earlier. Formatting fix.
259 (cp_parser_try_block): Use pedwarn instead of error and only for
260 c++17 and earlier when try block appears in constexpr function.
261 * constexpr.c (build_constexpr_constructor_member_initializers):
262 Handle TRY_BLOCK here instead of erroring on it.
263
c7110ca7 2642019-02-28 Jason Merrill <jason@redhat.com>
265
bb019931 266 PR c++/88183 - ICE with .* fold-expression.
267 * pt.c (fold_expression) [DOTSTAR_EXPR]: Remove special handling.
268
9b4cf3ba 269 PR c++/86969 - ICE with constexpr if and recursive generic lambdas.
270 * class.c, lambda.c, pt.c: Revert earlier change.
271 * lambda.c (add_capture): Don't special-case capture of dependent
272 VLA.
273
c7110ca7 274 * name-lookup.c (print_binding_level): Print this_entity.
275
90c2137c 2762019-02-27 Marek Polacek <polacek@redhat.com>
277
278 PR c++/88857 - ICE with value-initialization of argument in template.
279 * call.c (convert_like_real): Don't call build_value_init in template.
280
9ecd4044 2812019-02-27 Jason Merrill <jason@redhat.com>
282
283 PR c++/86969 - ICE with constexpr if and recursive generic lambdas.
284 * semantics.c (process_outer_var_ref): Do capture dependent vars.
285 * class.c (finish_struct): Only add TAG_DEFN if T is in
286 current_function_decl.
287 * lambda.c (vla_capture_type): Force the capture type out into the
288 lambda's enclosing function.
289 (add_capture): Pass in the lambda.
290 * pt.c (tsubst_lambda_expr): complete_type a VLA capture type.
291
7304edd1 2922019-02-27 Marek Polacek <polacek@redhat.com>
293
294 PR c++/89511 - ICE with using-declaration and unscoped enumerator.
295 * parser.c (cp_parser_using_declaration): For an unscoped enum
296 only use its context if it's not a function declaration.
297
c9f30cbb 2982019-02-27 Paolo Carlini <paolo.carlini@oracle.com>
299
300 PR c++/89488
301 * method.c (process_subob_fn): When maybe_instantiate_noexcept
302 returns false don't call merge_exception_specifiers.
303
3042019-02-27 Paolo Carlini <paolo.carlini@oracle.com>
305
306 PR c++/88987
307 * parser.c (cp_parser_noexcept_specification_opt): Return NULL_TREE
308 for a non-constant parsed expression.
309
a165fd90 3102019-02-26 Jakub Jelinek <jakub@redhat.com>
311
312 PR c++/89481
313 * constexpr.c (cxx_eval_store_expression): When changing active union
314 member, set no_zero_init.
315
c005651d 3162019-02-23 Marek Polacek <polacek@redhat.com>
317
318 PR c++/88294 - ICE with non-constant noexcept-specifier.
319 * pt.c (maybe_instantiate_noexcept): Set up the list of local
320 specializations. Set current_class_{ptr,ref}.
321
689cc9b6 3222019-02-22 David Malcolm <dmalcolm@redhat.com>
323
324 PR c++/89390
325 * parser.c (cp_parser_unqualified_id): Capture and use locations
326 for destructors.
327
e7652833 3282019-02-22 Marek Polacek <polacek@redhat.com>
329
330 PR c++/89420 - ICE with CAST_EXPR in explicit-specifier.
331 * decl.c (build_explicit_specifier): Don't check
332 processing_template_decl. Call instantiation_dependent_expression_p
333 instead of value_dependent_expression_p. Call
334 instantiate_non_dependent_expr_sfinae before
335 build_converted_constant_expr instead of calling
336 instantiate_non_dependent_expr after it. Add
337 processing_template_decl_sentinel.
338
51391c1d 3392019-02-22 Thomas Schwinge <thomas@codesourcery.com>
340
341 * parser.c (cp_parser_oacc_simple_clause): Remove parser formal
342 parameter, move loc formal parameter to the front. Adjust all
343 users.
344 (cp_parser_oacc_shape_clause): Add loc formal parameter. Adjust
345 all users.
346
b6700c1a 3472019-02-21 Jason Merrill <jason@redhat.com>
348
532cca3f 349 PR c++/87685 - generic lambda 'this' capture error.
350 * lambda.c (lambda_expr_this_capture): Change add_capture_p to int.
351 (maybe_generic_this_capture): Pass -1.
352
a7ea8f96 353 PR c++/88394 - ICE with VLA init-capture.
354 * lambda.c (is_normal_capture_proxy): Check DECL_CAPTURED_VARIABLE.
355
e2d4b8be 356 PR c++/88869 - C++17 ICE with CTAD and explicit specialization.
357 * pt.c (do_class_deduction): Don't include explicit specialization
358 args in outer_args.
359
b6700c1a 360 PR c++/89422 - ICE with -g and lambda in default arg in template.
361 * pt.c (tsubst_function_decl): SET_DECL_FRIEND_CONTEXT sooner.
362
147a31b6 3632019-02-21 Jason Merrill <jason@redhat.com>
364
365 PR c++/88419 - C++17 ICE with class template arg deduction.
366 * pt.c (make_template_placeholder): Set TYPE_CANONICAL after
367 CLASS_PLACEHOLDER_TEMPLATE.
368
02d7a132 3692019-02-21 Jakub Jelinek <jakub@redhat.com>
370
371 PR c++/89285
372 * constexpr.c (struct constexpr_fundef): Add parms and result members.
373 (retrieve_constexpr_fundef): Adjust for the above change.
374 (register_constexpr_fundef): Save constexpr body with copy_fn,
375 temporarily set DECL_CONTEXT on DECL_RESULT before that.
376 (get_fundef_copy): Change FUN argument to FUNDEF with
377 constexpr_fundef * type, grab body and parms/result out of
378 constexpr_fundef struct and temporarily change it for copy_fn calls
379 too.
380 (cxx_eval_builtin_function_call): For __builtin_FUNCTION temporarily
381 adjust current_function_decl from ctx->call context. Test
382 !potential_constant_expression instead of !is_constant_expression.
383 (cxx_bind_parameters_in_call): Grab parameters from new_call. Undo
384 convert_for_arg_passing changes for TREE_ADDRESSABLE type passing.
385 (cxx_eval_call_expression): Adjust get_fundef_copy caller.
386 (cxx_eval_conditional_expression): For IF_STMT, allow then or else
387 operands to be NULL.
388 (label_matches): Handle BREAK_STMT and CONTINUE_STMT.
389 (cxx_eval_loop_expr): Add support for FOR_STMT, WHILE_STMT and DO_STMT.
390 (cxx_eval_switch_expr): Add support for SWITCH_STMT.
391 (cxx_eval_constant_expression): Handle IF_STMT, FOR_STMT, WHILE_STMT,
392 DO_STMT, CONTINUE_STMT, SWITCH_STMT, BREAK_STMT and CONTINUE_STMT.
393 For SIZEOF_EXPR, recurse on the result of fold_sizeof_expr. Ignore
394 DECL_EXPR with USING_DECL operand.
395 * lambda.c (maybe_add_lambda_conv_op): Build thisarg using
396 build_int_cst to make it a valid constant expression.
397
dcd8f919 3982019-02-20 Jason Merrill <jason@redhat.com>
399
400 PR c++/88690 - C++17 ICE with empty base in aggregate.
401 * typeck2.c (process_init_constructor_record): Skip trivial
402 initialization of an empty base.
403
309e5f71 4042019-02-21 Richard Biener <rguenther@suse.de>
405
406 PR middle-end/89392
407 * vtable-class-hierarchy.c (vtv_generate_init_routine): Do not
408 make symtab process new functions here.
409
4e60ed29 4102019-02-20 Jason Merrill <jason@redhat.com>
411
412 PR c++/87921 - wrong error with inline static data member.
413 * decl2.c (finish_static_data_member_decl): Don't set DECL_IN_AGGR_P
414 for a non-template inline variable. Do nothing for an
415 already-instantiated variable.
416 (c_parse_final_cleanups): Check DECL_IN_AGGR_P without
417 DECL_INLINE_VAR_P.
418 * decl.c (check_initializer): Likewise.
419 (make_rtl_for_nonlocal_decl): Likewise.
420 * pt.c (instantiate_decl): Likewise.
421 * typeck2.c (store_init_value): Likewise.
422
b47245f1 4232019-02-20 Jakub Jelinek <jakub@redhat.com>
424
0c3f2aa9 425 PR c++/89403
426 * decl2.c (c_parse_final_cleanups): Move TREE_ASM_WRITTEN setting
427 for flag_syntax_only from here...
428 * semantics.c (expand_or_defer_fn_1): ... here.
429
02dc6028 430 PR c++/89405
431 * decl.c (maybe_commonize_var): When clearing TREE_PUBLIC and
432 DECL_COMMON, set DECL_INTERFACE_KNOWN.
433
b47245f1 434 PR c++/89336
435 * constexpr.c (cxx_eval_store_expression): Diagnose changing of active
436 union member for -std=c++17 and earlier.
437
af48cea2 4382019-02-19 Jason Merrill <jason@redhat.com>
439
440 PR c++/87513 - 'sorry' mangling PMF template-id.
441 * mangle.c (write_expression): Handle SCOPE_REF to BASELINK.
442
fd8a4665 4432019-02-19 Jason Merrill <jason@redhat.com>
444
445 PR c++/88380 - wrong-code with flexible array and NSDMI.
446 * typeck2.c (process_init_constructor_record): Skip flexarrays.
447
53ceddc9 4482019-02-20 will wray <wjwray@gmail.com>
449
450 PR c++/88572 - wrong handling of braces on scalar init.
451 * decl.c (reshape_init_r): Allow braces around scalar initializer
452 within aggregate init. Reject double braced-init of scalar
453 variable.
454
ab0fbe16 4552019-02-20 Paolo Carlini <paolo.carlini@oracle.com>
456
457 PR c++/84536
458 * pt.c (tsubst_init): Diagnose an initializer expanding to an
459 empty list of expressions; tweak wrt dependent types.
460 (regenerate_decl_from_template): For VAR_DECLs call tsubst_init
461 instead of tsubst_expr.
462
ce7f22f1 4632019-02-19 Jason Merrill <jason@redhat.com>
464
465 PR c++/88368 - wrong 'use of deleted function'
466 * method.c (walk_field_subobs): Remember errors from get_nsdmi.
467 (get_defaulted_eh_spec): Call push_tinst_level.
468 * pt.c (maybe_instantiate_noexcept): Keep error_mark_node.
469 * typeck2.c (merge_exception_specifiers): Handle error_mark_node.
470
d572a4c3 4712019-02-19 Chung-Lin Tang <cltang@codesourcery.com>
472
473 PR c/87924
474 * parser.c (cp_parser_oacc_clause_wait): Add representation of wait
475 clause without argument as 'wait (GOMP_ASYNC_NOVAL)', adjust comments.
476
31358ed0 4772019-02-19 Jakub Jelinek <jakub@redhat.com>
478
5ebe5c44 479 PR c++/89387
480 * lambda.c (maybe_generic_this_capture): Don't check
481 DECL_NONSTATIC_MEMBER_FUNCTION_P on USING_DECLs.
482
fcea8c4d 483 PR c++/89391
484 * typeck.c (build_reinterpret_cast_1): Don't handle void to
485 && conversion go through build_target_expr_with_type.
486
31358ed0 487 PR c++/89390
488 * error.c (qualified_name_lookup_error): Only call
489 suggest_alternative_in_scoped_enum if name is IDENTIFIER_NODE.
490
25694c85 4912019-02-19 Tom Honermann <tom@honermann.net>
492
493 * name-lookup.c (get_std_name_hint): Added u8string as a name hint.
494
a1e1b603 4952019-02-18 Jason Merrill <jason@redhat.com>
496
6aaacaf1 497 PR c++/89336 - multiple stores in constexpr stmt.
498 * constexpr.c (cxx_eval_store_expression): Preevaluate scalar or
499 assigned value.
500
f6347d1a 501 * pt.c (check_explicit_specialization): If the declarator is a
502 template-id, only check whether the arguments are dependent.
503
a1e1b603 504 Improve duplicate [[likely]] diagnostic.
505 * parser.c (cp_parser_statement): Make attrs_loc a range. Pass it
506 to process_stmt_hotness_attribute.
507 * cp-gimplify.c (process_stmt_hotness_attribute): Take attrs_loc.
508 (genericize_if_stmt): Use likely/unlikely instead of predictor_name.
509
33e6651d 5102019-02-17 Marek Polacek <polacek@redhat.com>
511
512 PR c++/89217 - ICE with list-initialization in range-based for loop.
513 * constexpr.c (unshare_constructor): No longer static.
514 * cp-tree.h (unshare_constructor): Declare.
515 * semantics.c (finish_compound_literal): When dealing with a
516 non-dependent expression in a template, return the original
517 expression. Pass LOOKUP_NO_NARROWING to digest_init_flags.
518
3a860627 5192019-02-13 Marek Polacek <polacek@redhat.com>
520
521 PR c++/89297 - ICE with OVERLOAD in template.
522 * semantics.c (finish_compound_literal): Call
523 instantiate_non_dependent_expr_sfinae.
524
601c59dd 5252019-02-13 Alexandre Oliva <aoliva@redhat.com>
526
40563cf7 527 PR c++/86379
528 * cp-tree.h (USING_DECL_SCOPE): Use result rather than type.
529 * name-lookup.c (strip_using_decl): Use USING_DECL_SCOPE.
530 * search.c (protected_accessible_p): Follow USING_DECL_DECLS.
531 (shared_member_p): Likewise.
532 (lookup_member): Likewise.
533 * decl.c (grok_special_member_properties): Skip USING_DECLs.
534 * semantics.c (finish_omp_declare_simd_methods): Likewise.
535 (finish_qualified_id_expr): Do not call shared_member_p with
536 a dependent expr.
537
601c59dd 538 PR c++/87322
539 * pt.c (tsubst_lambda_expr): Avoid duplicate tsubsting.
540 Move cp_evaluated resetting before signature tsubsting.
541 (gen_elem_of_pack_expansion_instantiation): Separate local
542 specializations per index.
543
f2da1a76 5442019-02-13 David Malcolm <dmalcolm@redhat.com>
545
546 PR c++/89036
547 * class.c (add_method): Drop destructor assertion.
548
64bd49fa 5492019-02-13 Paolo Carlini <paolo.carlini@oracle.com>
550
551 PR c++/88986
552 * decl.c (make_typename_type): Allow for TYPE_PACK_EXPANSION as
553 context (the first argument).
554 * pt.c (tsubst, case TYPENAME_TYPE): Handle TYPE_PACK_EXPANSION
555 as context.
556
c8e19553 5572019-02-12 Jason Merrill <jason@redhat.com>
558
559 PR c++/89144 - link error with constexpr initializer_list.
560 * call.c (convert_like_real) [ck_list]: Don't allocate a temporary
561 array for an empty list.
562 * typeck2.c (store_init_value): Don't use cxx_constant_init in a
563 template.
564
33fe677e 5652019-02-11 Jason Merrill <jason@redhat.com>
566
567 PR c++/89241 - ICE with __func__ in lambda in template.
568 * pt.c (enclosing_instantiation_of): Also check
569 instantiated_lambda_fn_p for the template context.
570
44263306 5712019-02-11 Marek Polacek <polacek@redhat.com>
572
573 PR c++/89212 - ICE converting nullptr to pointer-to-member-function.
574 * pt.c (tsubst_copy_and_build) <case CONSTRUCTOR>: Return early for
575 null member pointer value.
576
61b94553 5772019-02-11 Jakub Jelinek <jakub@redhat.com>
578
579 PR c++/88977
580 * pt.c (convert_nontype_argument): Pass true as manifestly_const_eval
581 to maybe_constant_value calls.
582
b10193f4 5832019-02-11 Marek Polacek <polacek@redhat.com>
584
585 * typeck2.c (digest_init_r): Remove commented code.
586
08acf739 5872019-02-11 Martin Sebor <msebor@redhat.com>
588
589 PR c++/87996
590 * decl.c (compute_array_index_type_loc): Preserve signed sizes
591 for diagnostics. Call valid_array_size_p instead of error.
592 * init.c (build_new_1): Compute size for diagnostic. Call
593 invalid_array_size_error
594 (build_new): Call valid_array_size_p instead of error.
595
939d44f3 5962019-02-07 Alexandre Oliva <aoliva@redhat.com>
597
598 PR c++/86218
599 * call.c (compare_ics): Deal with ck_aggr in either cs.
600
c92ab8d4 6012019-02-06 David Malcolm <dmalcolm@redhat.com>
602
603 PR c++/71302
604 * call.c (get_location_for_expr_unwinding_for_system_header): New
605 function.
606 (conversion_null_warnings): Use it when getting locations for
607 EXPR, effectively adding a call to
608 get_location_for_expr_unwinding_for_system_header for
609 -Wconversion-null and making use of EXPR_LOCATION for
610 -Wzero-as-null-pointer-constant.
611
b5a6b127 6122019-02-05 Jakub Jelinek <jakub@redhat.com>
613
614 PR c++/89187
615 * optimize.c (maybe_thunk_body): Clear TREE_ADDRESSABLE on
616 PARM_DECLs of the thunk.
617 * lambda.c (maybe_add_lambda_conv_op): Likewise.
618
74ce2ebb 6192019-02-05 Marek Polacek <polacek@redhat.com>
620
621 PR c++/89158 - by-value capture of constexpr variable broken.
622 * call.c (convert_like_real) <case ck_user>: Call mark_exp_read
623 instead of mark_rvalue_use.
624
9ca54fa1 6252019-02-05 Alexandre Oliva <aoliva@redhat.com>
626
627 PR c++/87770
628 * pt.c (instantiates_primary_template_p): New.
629 (type_dependent_expression_p): Use it.
630
c758dd5a 6312019-02-01 Jason Merrill <jason@redhat.com>
632
633 PR c++/88761 - ICE with reference capture of constant.
634 * lambda.c (mark_const_cap_r): Do walk subtrees of DECL_EXPR for
635 non-proxy decls.
636
bdb43276 6372019-02-01 Marek Polacek <polacek@redhat.com>
638
639 PR c++/88325 - ICE with invalid out-of-line template member definition.
640 * parser.c (cp_parser_class_name): Don't call make_typename_type
641 for overloads.
642
5ab8180e 6432019-02-01 Jakub Jelinek <jakub@redhat.com>
644
645 PR c++/87175
646 * parser.c (cp_parser_gnu_attributes_opt): Set ok to false
647 if require_open failed.
648
c8f861a0 6492019-01-31 Marek Polacek <polacek@redhat.com>
650
651 PR c++/89083, c++/80864 - ICE with list initialization in template.
652 * constexpr.c (adjust_temp_type): Use copy_node and change the type
653 instead of using build_constructor.
654 * decl.c (reshape_init_r): Don't reshape a digested initializer.
655 Return the initializer for COMPOUND_LITERAL_P.
656
f1329be6 657 PR c++/88983 - ICE with switch in constexpr function.
658 * constexpr.c (cxx_eval_switch_expr): Use SWITCH_COND and SWITCH_BODY.
659 (cxx_eval_constant_expression) <case COND_EXPR>: Don't look for the
660 label in the else branch if we found it in the then branch.
661
8c28f0ef 6622019-01-30 Jason Merrill <jason@redhat.com>
663
664 PR c++/88752 - ICE with lambda and constexpr if.
665 * cp-tree.h (LAMBDA_EXPR_INSTANTIATED): New.
666 * pt.c (tsubst_lambda_expr): Set it.
667 (instantiated_lambda_fn_p): Check it.
668 (enclosing_instantiation_of): Use it.
669
abb9ae66 6702019-01-31 Jakub Jelinek <jakub@redhat.com>
671
672 PR libstdc++/88170
673 * cxx-pretty-print.c (pp_cxx_enumeration_constant): Print always as
674 a C cast in pp_c_flag_gnu_v3 mode.
675
9b0e9786 6762019-01-30 Jakub Jelinek <jakub@redhat.com>
677
678 PR c++/88988
679 * lambda.c (is_capture_proxy): Don't return true for
680 DECL_OMP_PRIVATIZED_MEMBER artificial vars.
681
7066144a 6822019-01-30 Marek Polacek <polacek@redhat.com>
683
684 PR c++/89119 - ICE with value-initialization in template.
685 * pt.c (tsubst_copy_and_build): Handle RANGE_EXPR.
686
64e3499e 6872019-01-29 Jason Merrill <jason@redhat.com>
688
689 PR c++/86943 - wrong code converting lambda to function pointer.
690 * lambda.c (maybe_add_lambda_conv_op): Use a template-id in the
691 call. Only forward parms for decltype.
692 * pt.c (tsubst_copy_and_build) [CALL_EXPR]: Handle CALL_FROM_THUNK_P
693 specially.
694 * typeck.c (check_return_expr): Don't mess with a thunk call.
695
107cba11 6962019-01-28 Jason Merrill <jason@redhat.com>
697
698 PR c++/89089 - ICE with [[no_unique_address]].
699 PR c++/88865 - wrong layout with [[no_unique_address]].
700 * class.c (check_field_decls): A potentially-overlapping field makes
701 the class non-layout-POD, but not non-empty.
702 (end_of_class): Always consider empty data members.
703 (layout_class_type): Set DECL_SIZE for empty fields.
704
44da2a17 7052019-01-28 Marek Polacek <polacek@redhat.com>
706
707 PR c++/88358 - name wrongly treated as type.
708 * parser.c (cp_parser_direct_declarator): Don't assume a qualified-id
709 in parameter-list is a type if the function's declarator-id is not
710 qualified.
711
1d41b42f 7122019-01-27 Marek Polacek <polacek@redhat.com>
713
b7feeace 714 PR c++/88815 - narrowing conversion lost in decltype.
715 PR c++/78244 - narrowing conversion in template not detected.
716 * cp-tree.h (CONSTRUCTOR_IS_DEPENDENT): New.
717 * pt.c (instantiation_dependent_r): Consider a CONSTRUCTOR with
718 CONSTRUCTOR_IS_DEPENDENT instantiation-dependent.
719 * semantics.c (finish_compound_literal): When the compound literal
720 isn't instantiation-dependent and the type isn't type-dependent,
721 fall back to the normal processing. Set CONSTRUCTOR_IS_DEPENDENT.
722
1d41b42f 723 PR c++/89024 - ICE with incomplete enum type.
724 * call.c (standard_conversion): When converting an
725 ARITHMETIC_TYPE_P to an incomplete type, return NULL.
726
837ddebd 7272019-01-25 Paolo Carlini <paolo.carlini@oracle.com>
728
729 PR c++/88969
730 * call.c (build_op_delete_call): Implement 7.6.2.5/(10.1).
731 * decl2.c (coerce_delete_type): Use build_pointer_type instead
732 of TYPE_POINTER_TO.
733
8c89c5fc 7342019-01-24 Jason Merrill <jason@redhat.com>
735
736 PR c++/89001 - mangling of reference temporaries
737 * cp-tree.h (struct saved_scope): Add ref_temp_count.
738 (current_ref_temp_count): New macro.
739 * mangle.c (mangle_ref_init_variable): Use it.
740 * typeck2.c (store_init_value): Clear it.
741 * call.c (make_temporary_var_for_ref_to_temp): Copy public and
742 comdat.
743
b5e76680 7442019-01-24 Jakub Jelinek <jakub@redhat.com>
745
746 PR c++/88976
747 * semantics.c (finish_omp_cancel): Diagnose more than one if
748 on #pragma omp cancel with different modifiers. Use
749 maybe_convert_cond when not in template or build_x_binary_op
750 otherwise.
751
dffbcba8 7522019-01-23 Marek Polacek <polacek@redhat.com>
753
754 PR c++/88757 - qualified name treated wrongly as type.
755 * parser.c (cp_parser_direct_declarator): Don't treat qualified-ids
756 in parameter-list as types if name lookup for declarator-id didn't
757 find one or more function templates.
758
1f03c410 7592019-01-23 Jakub Jelinek <jakub@redhat.com>
760
8090d51c 761 PR c/44715
762 * cp-gimplify.c (genericize_cp_loop): Call begin_bc_block only
763 after genericizing cond and incr expressions.
764
1f03c410 765 PR c++/88984
766 * cp-gimplify.c (genericize_switch_stmt): Move cond genericization
767 before the begin_bc_block call.
768
48c03f15 7692019-01-21 Jason Merrill <jason@redhat.com>
770
771 PR c++/87893 - constexpr ctor ICE on ARM.
772 PR c++/88293 - ICE with comma expression.
773 * constexpr.c (initialized_type): Don't shortcut non-void type.
774 Handle COMPOUND_EXPR.
775 (cxx_eval_outermost_constant_expr): Return early for void type.
776
99bf4b63 7772019-01-21 Jakub Jelinek <jakub@redhat.com>
778
77fe9474 779 PR c++/88949
780 * optimize.c (cxx_copy_decl): New function.
781 (clone_body): Use it instead of copy_decl_no_change.
782
99bf4b63 783 PR sanitizer/88901
784 * typeck.c (cp_build_binary_op): Don't instrument
785 SANITIZE_POINTER_COMPARE if processing_template_decl.
786 (pointer_diff): Similarly for SANITIZE_POINTER_SUBTRACT.
787
ecd2d842 7882019-01-18 Jason Merrill <jason@redhat.com>
789
790 PR c++/88875 - error with explicit list constructor.
791 * call.c (reference_binding): Don't modify EXPR. Set
792 need_temporary_p on the ck_user conversion for a temporary.
793 (convert_like_real): Check it.
794
6d4e8a95 7952019-01-18 H.J. Lu <hongjiu.lu@intel.com>
796
797 PR c/51628
798 PR c/88664
799 * call.c (convert_for_arg_passing): Upate the
800 warn_for_address_or_pointer_of_packed_member call.
801 * typeck.c (convert_for_assignment): Likewise.
802
9d3c4130 8032019-01-17 Jason Merrill <jason@redhat.com>
804
bc9c0483 805 PR c++/86205 - ICE with ?: of throw and template-id.
806 * pt.c (resolve_nondeduced_context_or_error): Split out from...
807 * typeck.c (decay_conversion): ...here.
808 * call.c (build_conditional_expr_1): Use it.
809
9d3c4130 810 PR c++/86740, ICE with constexpr if and nested generic lambdas.
811 * tree.c (cp_walk_subtrees): Handle LAMBDA_EXPR.
812
0f910e62 8132019-01-17 Paolo Carlini <paolo.carlini@oracle.com>
814
815 * decl.c (grokdeclarator): Use typespec_loc in error messages
816 about 'auto' and trailing return type.
817
098cc8f0 8182019-01-17 David Malcolm <dmalcolm@redhat.com>
819
820 PR c++/88699
821 * class.c (add_method): Don't use DECL_DESTRUCTOR_P on
822 USING_DECLs.
823
a395125a 8242019-01-17 Nathan Sidwell <nathan@acm.org>
825
826 PR c++/86610
827 * semantics.c (process_outer_var_ref): Only skip dependent types
828 in templates.
829
5461905d 8302019-01-17 Alexandre Oliva <aoliva@redhat.com>
831
c5f929a4 832 PR c++/87768
833 * cp-tree.h (saved_scope): Add suppress_location_wrappers.
834 * name-lookup.c (do_push_to_top_level): Save and reset it.
835 (do_pop_from_top_level): Restore it.
836
f97941b7 837 PR c++/86648
838 * pt.c (make_template_placeholder): Use auto_identifier.
839 (is_auto): Drop CLASS_PLACEHOLDER_TEMPLATE test.
840 * error.c (dump_type): Handle template placeholders.
841 * cxx-pretty-print.c (pp_cx_unqualified_id): Likewise.
842
5461905d 843 PR c++/88146
844 * cvt.c (convert_to_void): Handle all cdtor calls as if
845 returning void.
846
b92cc3ed 8472019-01-16 Paolo Carlini <paolo.carlini@oracle.com>
848
849 * decl.c (grokdeclarator): Use locations[ds_storage_class] in
850 error messages about ill-formed uses of mutable.
851
9fc2172c 8522019-01-16 Marek Polacek <polacek@redhat.com>
853
854 PR c++/78244 - narrowing conversion in template not detected.
855 * call.c (perform_implicit_conversion_flags): Set
856 IMPLICIT_CONV_EXPR_BRACED_INIT.
857 * cp-tree.h (IMPLICIT_CONV_EXPR_BRACED_INIT): New.
858 * pt.c (tsubst_copy_and_build): Use it.
859
727d210b 8602019-01-15 David Malcolm <dmalcolm@redhat.com>
861
862 PR c++/88795
863 * pt.c (build_deduction_guide): Bail out if tsubst_arg_types
864 fails.
865
39a51021 8662019-01-15 Paolo Carlini <paolo.carlini@oracle.com>
867
868 * decl.c (start_decl): Improve error location.
869 * decl2.c (grokfield): Likewise.
870
8712019-01-15 Paolo Carlini <paolo.carlini@oracle.com>
872
873 * decl.c (grokdeclarator): Move further up the location_t loc
874 declaration and use the location when building a TYPE_DECL for
875 a typedef name.
876 * decl2.c (grokbitfield): Use DECL_SOURCE_LOCATION in the error
877 about an ill-formed bit-field as typedef.
878
affca1c8 8792019-01-14 Marek Polacek <polacek@redhat.com>
880
881 PR c++/88830 - ICE with abstract class.
882 * decl2.c (maybe_emit_vtables): Check CLASSTYPE_LAZY_DESTRUCTOR.
883 Fix formatting.
884
9f8a8956 885 PR c++/88825 - ICE with bogus function return type deduction.
886 * typeck.c (can_do_nrvo_p): Check error_mark_node.
887
82362779 8882019-01-14 Tom Honermann <tom@honermann.net>
889
890 Implement P0482R5, char8_t: A type for UTF-8 characters and strings
891 * cvt.c (type_promotes_to): Handle char8_t promotion.
892 * decl.c (grokdeclarator): Handle invalid type specifier
893 combinations involving char8_t.
894 * lex.c (init_reswords): Add char8_t as a reserved word.
895 * mangle.c (write_builtin_type): Add name mangling for char8_t (Du).
896 * parser.c (cp_keyword_starts_decl_specifier_p)
897 (cp_parser_simple_type_specifier): Recognize char8_t as a simple
898 type specifier.
899 (cp_parser_string_literal): Use char8_array_type_node for the type
900 of CPP_UTF8STRING.
901 (cp_parser_set_decl_spec_type): Tolerate char8_t typedefs in system
902 headers.
903 * rtti.c (emit_support_tinfos): type_info support for char8_t.
904 * tree.c (char_type_p): Recognize char8_t as a character type.
905 * typeck.c (string_conv_p): Handle conversions of u8 string
906 literals of char8_t type.
907 (check_literal_operator_args): Handle UDLs with u8 string literals
908 of char8_t type.
909 * typeck2.c (ordinary_char_type_p): New.
910 (digest_init_r): Disallow initializing a char array with a u8 string
911 literal.
912
bf4eb32b 9132019-01-14 Martin Liska <mliska@suse.cz>
914
915 PR gcov-profile/88263
916 * decl2.c (get_tls_wrapper_fn): Use DECL_SOURCE_LOCATION
917 as location of the TLS wrapper.
918
2fa582a9 9192019-01-12 Paolo Carlini <paolo.carlini@oracle.com>
920
921 * decl.c (cp_finish_decl): Improve error location.
922 * decl2.c (grokfield): Likewise, improve two locations.
923
0b5957b9 9242019-01-11 Marek Polacek <polacek@redhat.com>
925
926 PR c++/88692, c++/87882 - -Wredundant-move false positive with *this.
927 * typeck.c (maybe_warn_pessimizing_move): Return if ARG isn't
928 ADDR_EXPR.
929
d07c152b 9302019-01-11 Jason Merrill <jason@redhat.com>
931
932 PR c++/88312 - pack expansion of decltype.
933 * pt.c (instantiation_dependent_r): A template non-type parameter
934 pack is instantiation-dependent.
935
0c2ebbc4 9362019-01-11 Jason Merrill <jason@redhat.com>
937
938 PR c++/88613 - ICE with use of const var in lambda.
939 * expr.c (mark_use): Fix location wrapper handling.
940 * cp-gimplify.c (cp_fold_maybe_rvalue): Call mark_rvalue_use.
941
1b2f170e 9422019-01-11 Tobias Burnus <burnus@net-b.de>
943
944 PR C++/88114
945 * decl2.c (maybe_emit_vtables): If needed, generate code for
946 the destructor of an abstract class.
947 (mark_used): Update comment for older function-name change.
948
b385e516 9492019-01-11 Paolo Carlini <paolo.carlini@oracle.com>
950
951 * decl.c (start_decl): Improve error location.
952 (grokdeclarator): Likewise, improve two locations.
953
f4d3c071 9542019-01-09 Sandra Loosemore <sandra@codesourcery.com>
955
956 PR other/16615
957
958 * cp-tree.h: Mechanically replace "can not" with "cannot".
959 * parser.c: Likewise.
960 * pt.c: Likewise.
961
7cc45975 9622019-01-08 Paolo Carlini <paolo.carlini@oracle.com>
963
964 * decl.c (grok_reference_init): Improve error location.
965 (grokdeclarator): Likewise, improve two locations.
966
90e20c9c 9672019-01-08 Marek Polacek <polacek@redhat.com>
968
91902bb4 969 PR c++/88538 - braced-init-list in template-argument-list.
970 * parser.c (cp_parser_template_argument): Handle braced-init-list when
971 in C++20.
972
90e20c9c 973 PR c++/88548 - this accepted in static member functions.
974 * parser.c (cp_debug_parser): Adjust printing of
975 local_variables_forbidden_p.
976 (cp_parser_new): Set local_variables_forbidden_p to 0 rather than false.
977 (cp_parser_primary_expression): When checking
978 local_variables_forbidden_p, use THIS_FORBIDDEN or
979 LOCAL_VARS_FORBIDDEN.
980 (cp_parser_lambda_body): Update the type of
981 local_variables_forbidden_p. Set it to 0 rather than false.
982 (cp_parser_condition): Adjust call to cp_parser_declarator.
983 (cp_parser_explicit_instantiation): Likewise.
984 (cp_parser_init_declarator): Likewise.
985 (cp_parser_declarator): New parameter. Use it.
986 (cp_parser_direct_declarator): New parameter. Use it to set
987 local_variables_forbidden_p. Adjust call to cp_parser_declarator.
988 (cp_parser_type_id_1): Adjust call to cp_parser_declarator.
989 (cp_parser_parameter_declaration): Likewise.
990 (cp_parser_default_argument): Update the type of
991 local_variables_forbidden_p. Set it to LOCAL_VARS_AND_THIS_FORBIDDEN
992 rather than true.
993 (cp_parser_member_declaration): Tell cp_parser_declarator if we saw
994 'static' or 'friend'.
995 (cp_parser_exception_declaration): Adjust call to cp_parser_declarator.
996 (cp_parser_late_parsing_default_args): Update the type of
997 local_variables_forbidden_p. Set it to LOCAL_VARS_AND_THIS_FORBIDDEN
998 rather than true.
999 (cp_parser_cache_defarg): Adjust call to cp_parser_declarator.
1000 (cp_parser_objc_class_ivars): Likewise.
1001 (cp_parser_objc_struct_declaration): Likewise.
1002 (cp_parser_omp_for_loop_init): Likewise.
1003 * parser.h (cp_parser): Change the type of local_variables_forbidden_p
1004 to unsigned char.
1005 (LOCAL_VARS_FORBIDDEN, LOCAL_VARS_AND_THIS_FORBIDDEN, THIS_FORBIDDEN):
1006 Define.
1007
8f7d5246 10082019-01-08 Paolo Carlini <paolo.carlini@oracle.com>
1009
1010 * decl.c (start_decl): Improve permerror location.
1011
6e5908c9 10122019-01-08 Jonathan Wakely <jwakely@redhat.com>
1013 Jakub Jelinek <jakub@redhat.com>
1014
1015 PR c++/88554
1016 * decl.c (finish_function): For -Wreturn-type don't add a return *this;
1017 fixit hint if current_class_ref is NULL. Use a single if instead of
1018 two nested ones.
1019
2318c037 10202019-01-07 Paolo Carlini <paolo.carlini@oracle.com>
1021
1022 * decl.c (start_decl): Improve two error_at locations.
1023 (expand_static_init): Likewise.
1024
677576f7 10252019-01-07 Marek Polacek <polacek@redhat.com>
1026
1027 PR c++/88741 - wrong error with initializer-string.
1028 * decl.c (cp_complete_array_type): Strip any location wrappers.
1029
c38103e8 10302019-01-07 Bernd Edlinger <bernd.edlinger@hotmail.de>
1031
1032 PR c++/88261
1033 PR c++/69338
1034 PR c++/69696
1035 PR c++/69697
1036 * cp-tree.h (LOOKUP_ALLOW_FLEXARRAY_INIT): New flag value.
1037 * typeck2.c (digest_init_r): Raise an error for non-static
1038 initialization of a flexible array member.
1039 (process_init_constructor, massage_init_elt,
1040 process_init_constructor_array, process_init_constructor_record,
1041 process_init_constructor_union, process_init_constructor): Add the
1042 flags parameter and pass it thru.
1043 (store_init_value): Pass LOOKUP_ALLOW_FLEXARRAY_INIT parameter to
1044 digest_init_flags for static decls.
1045
59409f09 10462019-01-07 Jakub Jelinek <jakub@redhat.com>
1047
1048 PR c++/85052
1049 * cp-tree.h (cp_build_vec_convert): Declare.
1050 * parser.c (cp_parser_postfix_expression): Parse
1051 __builtin_convertvector.
1052 * constexpr.c: Include fold-const-call.h.
1053 (cxx_eval_internal_function): Handle IFN_VEC_CONVERT.
1054 (potential_constant_expression_1): Likewise.
1055 * semantics.c (cp_build_vec_convert): New function.
1056 * pt.c (tsubst_copy_and_build): Handle CALL_EXPR to
1057 IFN_VEC_CONVERT.
1058
0627c5c9 10592019-01-03 Jakub Jelinek <jakub@redhat.com>
1060
1061 PR c++/88636
1062 * decl.c (builtin_function_1): Return result of pushdecl_top_level
1063 or pushdecl rather than decl.
1064
f9f7d90c 10652019-01-03 Paolo Carlini <paolo.carlini@oracle.com>
1066
1067 * tree.c (handle_nodiscard_attribute): Improve warning location.
1068
37fb9cf6 10692019-01-02 Marek Polacek <polacek@redhat.com>
1070
1071 PR c++/88612 - ICE with -Waddress-of-packed-member.
1072 * call.c (convert_for_arg_passing): Only give warnings with tf_warning.
1073 * typeck.c (convert_for_assignment): Likewise.
1074
6080dd2f 1075 PR c++/88631 - CTAD failing for value-initialization.
1076 * typeck2.c (build_functional_cast): Try deducing the template
1077 arguments even if there are no arguments to deduce from.
1078
fbd26352 10792019-01-01 Jakub Jelinek <jakub@redhat.com>
ca29c574 1080
8e8f6434 1081 Update copyright years.
7dfbd804 1082\f
fbd26352 1083Copyright (C) 2019 Free Software Foundation, Inc.
7dfbd804 1084
1085Copying and distribution of this file, with or without modification,
1086are permitted in any medium without royalty provided the copyright
1087notice and this notice are preserved.