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