]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/cp/ChangeLog
PR c++/89336 - multiple stores in constexpr stmt.
[thirdparty/gcc.git] / gcc / cp / ChangeLog
CommitLineData
a1e1b603 12019-02-18 Jason Merrill <jason@redhat.com>
2
6aaacaf1 3 PR c++/89336 - multiple stores in constexpr stmt.
4 * constexpr.c (cxx_eval_store_expression): Preevaluate scalar or
5 assigned value.
6
f6347d1a 7 * pt.c (check_explicit_specialization): If the declarator is a
8 template-id, only check whether the arguments are dependent.
9
a1e1b603 10 Improve duplicate [[likely]] diagnostic.
11 * parser.c (cp_parser_statement): Make attrs_loc a range. Pass it
12 to process_stmt_hotness_attribute.
13 * cp-gimplify.c (process_stmt_hotness_attribute): Take attrs_loc.
14 (genericize_if_stmt): Use likely/unlikely instead of predictor_name.
15
33e6651d 162019-02-17 Marek Polacek <polacek@redhat.com>
17
18 PR c++/89217 - ICE with list-initialization in range-based for loop.
19 * constexpr.c (unshare_constructor): No longer static.
20 * cp-tree.h (unshare_constructor): Declare.
21 * semantics.c (finish_compound_literal): When dealing with a
22 non-dependent expression in a template, return the original
23 expression. Pass LOOKUP_NO_NARROWING to digest_init_flags.
24
3a860627 252019-02-13 Marek Polacek <polacek@redhat.com>
26
27 PR c++/89297 - ICE with OVERLOAD in template.
28 * semantics.c (finish_compound_literal): Call
29 instantiate_non_dependent_expr_sfinae.
30
601c59dd 312019-02-13 Alexandre Oliva <aoliva@redhat.com>
32
40563cf7 33 PR c++/86379
34 * cp-tree.h (USING_DECL_SCOPE): Use result rather than type.
35 * name-lookup.c (strip_using_decl): Use USING_DECL_SCOPE.
36 * search.c (protected_accessible_p): Follow USING_DECL_DECLS.
37 (shared_member_p): Likewise.
38 (lookup_member): Likewise.
39 * decl.c (grok_special_member_properties): Skip USING_DECLs.
40 * semantics.c (finish_omp_declare_simd_methods): Likewise.
41 (finish_qualified_id_expr): Do not call shared_member_p with
42 a dependent expr.
43
601c59dd 44 PR c++/87322
45 * pt.c (tsubst_lambda_expr): Avoid duplicate tsubsting.
46 Move cp_evaluated resetting before signature tsubsting.
47 (gen_elem_of_pack_expansion_instantiation): Separate local
48 specializations per index.
49
f2da1a76 502019-02-13 David Malcolm <dmalcolm@redhat.com>
51
52 PR c++/89036
53 * class.c (add_method): Drop destructor assertion.
54
64bd49fa 552019-02-13 Paolo Carlini <paolo.carlini@oracle.com>
56
57 PR c++/88986
58 * decl.c (make_typename_type): Allow for TYPE_PACK_EXPANSION as
59 context (the first argument).
60 * pt.c (tsubst, case TYPENAME_TYPE): Handle TYPE_PACK_EXPANSION
61 as context.
62
c8e19553 632019-02-12 Jason Merrill <jason@redhat.com>
64
65 PR c++/89144 - link error with constexpr initializer_list.
66 * call.c (convert_like_real) [ck_list]: Don't allocate a temporary
67 array for an empty list.
68 * typeck2.c (store_init_value): Don't use cxx_constant_init in a
69 template.
70
33fe677e 712019-02-11 Jason Merrill <jason@redhat.com>
72
73 PR c++/89241 - ICE with __func__ in lambda in template.
74 * pt.c (enclosing_instantiation_of): Also check
75 instantiated_lambda_fn_p for the template context.
76
44263306 772019-02-11 Marek Polacek <polacek@redhat.com>
78
79 PR c++/89212 - ICE converting nullptr to pointer-to-member-function.
80 * pt.c (tsubst_copy_and_build) <case CONSTRUCTOR>: Return early for
81 null member pointer value.
82
61b94553 832019-02-11 Jakub Jelinek <jakub@redhat.com>
84
85 PR c++/88977
86 * pt.c (convert_nontype_argument): Pass true as manifestly_const_eval
87 to maybe_constant_value calls.
88
b10193f4 892019-02-11 Marek Polacek <polacek@redhat.com>
90
91 * typeck2.c (digest_init_r): Remove commented code.
92
08acf739 932019-02-11 Martin Sebor <msebor@redhat.com>
94
95 PR c++/87996
96 * decl.c (compute_array_index_type_loc): Preserve signed sizes
97 for diagnostics. Call valid_array_size_p instead of error.
98 * init.c (build_new_1): Compute size for diagnostic. Call
99 invalid_array_size_error
100 (build_new): Call valid_array_size_p instead of error.
101
939d44f3 1022019-02-07 Alexandre Oliva <aoliva@redhat.com>
103
104 PR c++/86218
105 * call.c (compare_ics): Deal with ck_aggr in either cs.
106
c92ab8d4 1072019-02-06 David Malcolm <dmalcolm@redhat.com>
108
109 PR c++/71302
110 * call.c (get_location_for_expr_unwinding_for_system_header): New
111 function.
112 (conversion_null_warnings): Use it when getting locations for
113 EXPR, effectively adding a call to
114 get_location_for_expr_unwinding_for_system_header for
115 -Wconversion-null and making use of EXPR_LOCATION for
116 -Wzero-as-null-pointer-constant.
117
b5a6b127 1182019-02-05 Jakub Jelinek <jakub@redhat.com>
119
120 PR c++/89187
121 * optimize.c (maybe_thunk_body): Clear TREE_ADDRESSABLE on
122 PARM_DECLs of the thunk.
123 * lambda.c (maybe_add_lambda_conv_op): Likewise.
124
74ce2ebb 1252019-02-05 Marek Polacek <polacek@redhat.com>
126
127 PR c++/89158 - by-value capture of constexpr variable broken.
128 * call.c (convert_like_real) <case ck_user>: Call mark_exp_read
129 instead of mark_rvalue_use.
130
9ca54fa1 1312019-02-05 Alexandre Oliva <aoliva@redhat.com>
132
133 PR c++/87770
134 * pt.c (instantiates_primary_template_p): New.
135 (type_dependent_expression_p): Use it.
136
c758dd5a 1372019-02-01 Jason Merrill <jason@redhat.com>
138
139 PR c++/88761 - ICE with reference capture of constant.
140 * lambda.c (mark_const_cap_r): Do walk subtrees of DECL_EXPR for
141 non-proxy decls.
142
bdb43276 1432019-02-01 Marek Polacek <polacek@redhat.com>
144
145 PR c++/88325 - ICE with invalid out-of-line template member definition.
146 * parser.c (cp_parser_class_name): Don't call make_typename_type
147 for overloads.
148
5ab8180e 1492019-02-01 Jakub Jelinek <jakub@redhat.com>
150
151 PR c++/87175
152 * parser.c (cp_parser_gnu_attributes_opt): Set ok to false
153 if require_open failed.
154
c8f861a0 1552019-01-31 Marek Polacek <polacek@redhat.com>
156
157 PR c++/89083, c++/80864 - ICE with list initialization in template.
158 * constexpr.c (adjust_temp_type): Use copy_node and change the type
159 instead of using build_constructor.
160 * decl.c (reshape_init_r): Don't reshape a digested initializer.
161 Return the initializer for COMPOUND_LITERAL_P.
162
f1329be6 163 PR c++/88983 - ICE with switch in constexpr function.
164 * constexpr.c (cxx_eval_switch_expr): Use SWITCH_COND and SWITCH_BODY.
165 (cxx_eval_constant_expression) <case COND_EXPR>: Don't look for the
166 label in the else branch if we found it in the then branch.
167
8c28f0ef 1682019-01-30 Jason Merrill <jason@redhat.com>
169
170 PR c++/88752 - ICE with lambda and constexpr if.
171 * cp-tree.h (LAMBDA_EXPR_INSTANTIATED): New.
172 * pt.c (tsubst_lambda_expr): Set it.
173 (instantiated_lambda_fn_p): Check it.
174 (enclosing_instantiation_of): Use it.
175
abb9ae66 1762019-01-31 Jakub Jelinek <jakub@redhat.com>
177
178 PR libstdc++/88170
179 * cxx-pretty-print.c (pp_cxx_enumeration_constant): Print always as
180 a C cast in pp_c_flag_gnu_v3 mode.
181
9b0e9786 1822019-01-30 Jakub Jelinek <jakub@redhat.com>
183
184 PR c++/88988
185 * lambda.c (is_capture_proxy): Don't return true for
186 DECL_OMP_PRIVATIZED_MEMBER artificial vars.
187
7066144a 1882019-01-30 Marek Polacek <polacek@redhat.com>
189
190 PR c++/89119 - ICE with value-initialization in template.
191 * pt.c (tsubst_copy_and_build): Handle RANGE_EXPR.
192
64e3499e 1932019-01-29 Jason Merrill <jason@redhat.com>
194
195 PR c++/86943 - wrong code converting lambda to function pointer.
196 * lambda.c (maybe_add_lambda_conv_op): Use a template-id in the
197 call. Only forward parms for decltype.
198 * pt.c (tsubst_copy_and_build) [CALL_EXPR]: Handle CALL_FROM_THUNK_P
199 specially.
200 * typeck.c (check_return_expr): Don't mess with a thunk call.
201
107cba11 2022019-01-28 Jason Merrill <jason@redhat.com>
203
204 PR c++/89089 - ICE with [[no_unique_address]].
205 PR c++/88865 - wrong layout with [[no_unique_address]].
206 * class.c (check_field_decls): A potentially-overlapping field makes
207 the class non-layout-POD, but not non-empty.
208 (end_of_class): Always consider empty data members.
209 (layout_class_type): Set DECL_SIZE for empty fields.
210
44da2a17 2112019-01-28 Marek Polacek <polacek@redhat.com>
212
213 PR c++/88358 - name wrongly treated as type.
214 * parser.c (cp_parser_direct_declarator): Don't assume a qualified-id
215 in parameter-list is a type if the function's declarator-id is not
216 qualified.
217
1d41b42f 2182019-01-27 Marek Polacek <polacek@redhat.com>
219
b7feeace 220 PR c++/88815 - narrowing conversion lost in decltype.
221 PR c++/78244 - narrowing conversion in template not detected.
222 * cp-tree.h (CONSTRUCTOR_IS_DEPENDENT): New.
223 * pt.c (instantiation_dependent_r): Consider a CONSTRUCTOR with
224 CONSTRUCTOR_IS_DEPENDENT instantiation-dependent.
225 * semantics.c (finish_compound_literal): When the compound literal
226 isn't instantiation-dependent and the type isn't type-dependent,
227 fall back to the normal processing. Set CONSTRUCTOR_IS_DEPENDENT.
228
1d41b42f 229 PR c++/89024 - ICE with incomplete enum type.
230 * call.c (standard_conversion): When converting an
231 ARITHMETIC_TYPE_P to an incomplete type, return NULL.
232
837ddebd 2332019-01-25 Paolo Carlini <paolo.carlini@oracle.com>
234
235 PR c++/88969
236 * call.c (build_op_delete_call): Implement 7.6.2.5/(10.1).
237 * decl2.c (coerce_delete_type): Use build_pointer_type instead
238 of TYPE_POINTER_TO.
239
8c89c5fc 2402019-01-24 Jason Merrill <jason@redhat.com>
241
242 PR c++/89001 - mangling of reference temporaries
243 * cp-tree.h (struct saved_scope): Add ref_temp_count.
244 (current_ref_temp_count): New macro.
245 * mangle.c (mangle_ref_init_variable): Use it.
246 * typeck2.c (store_init_value): Clear it.
247 * call.c (make_temporary_var_for_ref_to_temp): Copy public and
248 comdat.
249
b5e76680 2502019-01-24 Jakub Jelinek <jakub@redhat.com>
251
252 PR c++/88976
253 * semantics.c (finish_omp_cancel): Diagnose more than one if
254 on #pragma omp cancel with different modifiers. Use
255 maybe_convert_cond when not in template or build_x_binary_op
256 otherwise.
257
dffbcba8 2582019-01-23 Marek Polacek <polacek@redhat.com>
259
260 PR c++/88757 - qualified name treated wrongly as type.
261 * parser.c (cp_parser_direct_declarator): Don't treat qualified-ids
262 in parameter-list as types if name lookup for declarator-id didn't
263 find one or more function templates.
264
1f03c410 2652019-01-23 Jakub Jelinek <jakub@redhat.com>
266
8090d51c 267 PR c/44715
268 * cp-gimplify.c (genericize_cp_loop): Call begin_bc_block only
269 after genericizing cond and incr expressions.
270
1f03c410 271 PR c++/88984
272 * cp-gimplify.c (genericize_switch_stmt): Move cond genericization
273 before the begin_bc_block call.
274
48c03f15 2752019-01-21 Jason Merrill <jason@redhat.com>
276
277 PR c++/87893 - constexpr ctor ICE on ARM.
278 PR c++/88293 - ICE with comma expression.
279 * constexpr.c (initialized_type): Don't shortcut non-void type.
280 Handle COMPOUND_EXPR.
281 (cxx_eval_outermost_constant_expr): Return early for void type.
282
99bf4b63 2832019-01-21 Jakub Jelinek <jakub@redhat.com>
284
77fe9474 285 PR c++/88949
286 * optimize.c (cxx_copy_decl): New function.
287 (clone_body): Use it instead of copy_decl_no_change.
288
99bf4b63 289 PR sanitizer/88901
290 * typeck.c (cp_build_binary_op): Don't instrument
291 SANITIZE_POINTER_COMPARE if processing_template_decl.
292 (pointer_diff): Similarly for SANITIZE_POINTER_SUBTRACT.
293
ecd2d842 2942019-01-18 Jason Merrill <jason@redhat.com>
295
296 PR c++/88875 - error with explicit list constructor.
297 * call.c (reference_binding): Don't modify EXPR. Set
298 need_temporary_p on the ck_user conversion for a temporary.
299 (convert_like_real): Check it.
300
6d4e8a95 3012019-01-18 H.J. Lu <hongjiu.lu@intel.com>
302
303 PR c/51628
304 PR c/88664
305 * call.c (convert_for_arg_passing): Upate the
306 warn_for_address_or_pointer_of_packed_member call.
307 * typeck.c (convert_for_assignment): Likewise.
308
9d3c4130 3092019-01-17 Jason Merrill <jason@redhat.com>
310
bc9c0483 311 PR c++/86205 - ICE with ?: of throw and template-id.
312 * pt.c (resolve_nondeduced_context_or_error): Split out from...
313 * typeck.c (decay_conversion): ...here.
314 * call.c (build_conditional_expr_1): Use it.
315
9d3c4130 316 PR c++/86740, ICE with constexpr if and nested generic lambdas.
317 * tree.c (cp_walk_subtrees): Handle LAMBDA_EXPR.
318
0f910e62 3192019-01-17 Paolo Carlini <paolo.carlini@oracle.com>
320
321 * decl.c (grokdeclarator): Use typespec_loc in error messages
322 about 'auto' and trailing return type.
323
098cc8f0 3242019-01-17 David Malcolm <dmalcolm@redhat.com>
325
326 PR c++/88699
327 * class.c (add_method): Don't use DECL_DESTRUCTOR_P on
328 USING_DECLs.
329
a395125a 3302019-01-17 Nathan Sidwell <nathan@acm.org>
331
332 PR c++/86610
333 * semantics.c (process_outer_var_ref): Only skip dependent types
334 in templates.
335
5461905d 3362019-01-17 Alexandre Oliva <aoliva@redhat.com>
337
c5f929a4 338 PR c++/87768
339 * cp-tree.h (saved_scope): Add suppress_location_wrappers.
340 * name-lookup.c (do_push_to_top_level): Save and reset it.
341 (do_pop_from_top_level): Restore it.
342
f97941b7 343 PR c++/86648
344 * pt.c (make_template_placeholder): Use auto_identifier.
345 (is_auto): Drop CLASS_PLACEHOLDER_TEMPLATE test.
346 * error.c (dump_type): Handle template placeholders.
347 * cxx-pretty-print.c (pp_cx_unqualified_id): Likewise.
348
5461905d 349 PR c++/88146
350 * cvt.c (convert_to_void): Handle all cdtor calls as if
351 returning void.
352
b92cc3ed 3532019-01-16 Paolo Carlini <paolo.carlini@oracle.com>
354
355 * decl.c (grokdeclarator): Use locations[ds_storage_class] in
356 error messages about ill-formed uses of mutable.
357
9fc2172c 3582019-01-16 Marek Polacek <polacek@redhat.com>
359
360 PR c++/78244 - narrowing conversion in template not detected.
361 * call.c (perform_implicit_conversion_flags): Set
362 IMPLICIT_CONV_EXPR_BRACED_INIT.
363 * cp-tree.h (IMPLICIT_CONV_EXPR_BRACED_INIT): New.
364 * pt.c (tsubst_copy_and_build): Use it.
365
727d210b 3662019-01-15 David Malcolm <dmalcolm@redhat.com>
367
368 PR c++/88795
369 * pt.c (build_deduction_guide): Bail out if tsubst_arg_types
370 fails.
371
39a51021 3722019-01-15 Paolo Carlini <paolo.carlini@oracle.com>
373
374 * decl.c (start_decl): Improve error location.
375 * decl2.c (grokfield): Likewise.
376
3772019-01-15 Paolo Carlini <paolo.carlini@oracle.com>
378
379 * decl.c (grokdeclarator): Move further up the location_t loc
380 declaration and use the location when building a TYPE_DECL for
381 a typedef name.
382 * decl2.c (grokbitfield): Use DECL_SOURCE_LOCATION in the error
383 about an ill-formed bit-field as typedef.
384
affca1c8 3852019-01-14 Marek Polacek <polacek@redhat.com>
386
387 PR c++/88830 - ICE with abstract class.
388 * decl2.c (maybe_emit_vtables): Check CLASSTYPE_LAZY_DESTRUCTOR.
389 Fix formatting.
390
9f8a8956 391 PR c++/88825 - ICE with bogus function return type deduction.
392 * typeck.c (can_do_nrvo_p): Check error_mark_node.
393
82362779 3942019-01-14 Tom Honermann <tom@honermann.net>
395
396 Implement P0482R5, char8_t: A type for UTF-8 characters and strings
397 * cvt.c (type_promotes_to): Handle char8_t promotion.
398 * decl.c (grokdeclarator): Handle invalid type specifier
399 combinations involving char8_t.
400 * lex.c (init_reswords): Add char8_t as a reserved word.
401 * mangle.c (write_builtin_type): Add name mangling for char8_t (Du).
402 * parser.c (cp_keyword_starts_decl_specifier_p)
403 (cp_parser_simple_type_specifier): Recognize char8_t as a simple
404 type specifier.
405 (cp_parser_string_literal): Use char8_array_type_node for the type
406 of CPP_UTF8STRING.
407 (cp_parser_set_decl_spec_type): Tolerate char8_t typedefs in system
408 headers.
409 * rtti.c (emit_support_tinfos): type_info support for char8_t.
410 * tree.c (char_type_p): Recognize char8_t as a character type.
411 * typeck.c (string_conv_p): Handle conversions of u8 string
412 literals of char8_t type.
413 (check_literal_operator_args): Handle UDLs with u8 string literals
414 of char8_t type.
415 * typeck2.c (ordinary_char_type_p): New.
416 (digest_init_r): Disallow initializing a char array with a u8 string
417 literal.
418
bf4eb32b 4192019-01-14 Martin Liska <mliska@suse.cz>
420
421 PR gcov-profile/88263
422 * decl2.c (get_tls_wrapper_fn): Use DECL_SOURCE_LOCATION
423 as location of the TLS wrapper.
424
2fa582a9 4252019-01-12 Paolo Carlini <paolo.carlini@oracle.com>
426
427 * decl.c (cp_finish_decl): Improve error location.
428 * decl2.c (grokfield): Likewise, improve two locations.
429
0b5957b9 4302019-01-11 Marek Polacek <polacek@redhat.com>
431
432 PR c++/88692, c++/87882 - -Wredundant-move false positive with *this.
433 * typeck.c (maybe_warn_pessimizing_move): Return if ARG isn't
434 ADDR_EXPR.
435
d07c152b 4362019-01-11 Jason Merrill <jason@redhat.com>
437
438 PR c++/88312 - pack expansion of decltype.
439 * pt.c (instantiation_dependent_r): A template non-type parameter
440 pack is instantiation-dependent.
441
0c2ebbc4 4422019-01-11 Jason Merrill <jason@redhat.com>
443
444 PR c++/88613 - ICE with use of const var in lambda.
445 * expr.c (mark_use): Fix location wrapper handling.
446 * cp-gimplify.c (cp_fold_maybe_rvalue): Call mark_rvalue_use.
447
1b2f170e 4482019-01-11 Tobias Burnus <burnus@net-b.de>
449
450 PR C++/88114
451 * decl2.c (maybe_emit_vtables): If needed, generate code for
452 the destructor of an abstract class.
453 (mark_used): Update comment for older function-name change.
454
b385e516 4552019-01-11 Paolo Carlini <paolo.carlini@oracle.com>
456
457 * decl.c (start_decl): Improve error location.
458 (grokdeclarator): Likewise, improve two locations.
459
f4d3c071 4602019-01-09 Sandra Loosemore <sandra@codesourcery.com>
461
462 PR other/16615
463
464 * cp-tree.h: Mechanically replace "can not" with "cannot".
465 * parser.c: Likewise.
466 * pt.c: Likewise.
467
7cc45975 4682019-01-08 Paolo Carlini <paolo.carlini@oracle.com>
469
470 * decl.c (grok_reference_init): Improve error location.
471 (grokdeclarator): Likewise, improve two locations.
472
90e20c9c 4732019-01-08 Marek Polacek <polacek@redhat.com>
474
91902bb4 475 PR c++/88538 - braced-init-list in template-argument-list.
476 * parser.c (cp_parser_template_argument): Handle braced-init-list when
477 in C++20.
478
90e20c9c 479 PR c++/88548 - this accepted in static member functions.
480 * parser.c (cp_debug_parser): Adjust printing of
481 local_variables_forbidden_p.
482 (cp_parser_new): Set local_variables_forbidden_p to 0 rather than false.
483 (cp_parser_primary_expression): When checking
484 local_variables_forbidden_p, use THIS_FORBIDDEN or
485 LOCAL_VARS_FORBIDDEN.
486 (cp_parser_lambda_body): Update the type of
487 local_variables_forbidden_p. Set it to 0 rather than false.
488 (cp_parser_condition): Adjust call to cp_parser_declarator.
489 (cp_parser_explicit_instantiation): Likewise.
490 (cp_parser_init_declarator): Likewise.
491 (cp_parser_declarator): New parameter. Use it.
492 (cp_parser_direct_declarator): New parameter. Use it to set
493 local_variables_forbidden_p. Adjust call to cp_parser_declarator.
494 (cp_parser_type_id_1): Adjust call to cp_parser_declarator.
495 (cp_parser_parameter_declaration): Likewise.
496 (cp_parser_default_argument): Update the type of
497 local_variables_forbidden_p. Set it to LOCAL_VARS_AND_THIS_FORBIDDEN
498 rather than true.
499 (cp_parser_member_declaration): Tell cp_parser_declarator if we saw
500 'static' or 'friend'.
501 (cp_parser_exception_declaration): Adjust call to cp_parser_declarator.
502 (cp_parser_late_parsing_default_args): Update the type of
503 local_variables_forbidden_p. Set it to LOCAL_VARS_AND_THIS_FORBIDDEN
504 rather than true.
505 (cp_parser_cache_defarg): Adjust call to cp_parser_declarator.
506 (cp_parser_objc_class_ivars): Likewise.
507 (cp_parser_objc_struct_declaration): Likewise.
508 (cp_parser_omp_for_loop_init): Likewise.
509 * parser.h (cp_parser): Change the type of local_variables_forbidden_p
510 to unsigned char.
511 (LOCAL_VARS_FORBIDDEN, LOCAL_VARS_AND_THIS_FORBIDDEN, THIS_FORBIDDEN):
512 Define.
513
8f7d5246 5142019-01-08 Paolo Carlini <paolo.carlini@oracle.com>
515
516 * decl.c (start_decl): Improve permerror location.
517
6e5908c9 5182019-01-08 Jonathan Wakely <jwakely@redhat.com>
519 Jakub Jelinek <jakub@redhat.com>
520
521 PR c++/88554
522 * decl.c (finish_function): For -Wreturn-type don't add a return *this;
523 fixit hint if current_class_ref is NULL. Use a single if instead of
524 two nested ones.
525
2318c037 5262019-01-07 Paolo Carlini <paolo.carlini@oracle.com>
527
528 * decl.c (start_decl): Improve two error_at locations.
529 (expand_static_init): Likewise.
530
677576f7 5312019-01-07 Marek Polacek <polacek@redhat.com>
532
533 PR c++/88741 - wrong error with initializer-string.
534 * decl.c (cp_complete_array_type): Strip any location wrappers.
535
c38103e8 5362019-01-07 Bernd Edlinger <bernd.edlinger@hotmail.de>
537
538 PR c++/88261
539 PR c++/69338
540 PR c++/69696
541 PR c++/69697
542 * cp-tree.h (LOOKUP_ALLOW_FLEXARRAY_INIT): New flag value.
543 * typeck2.c (digest_init_r): Raise an error for non-static
544 initialization of a flexible array member.
545 (process_init_constructor, massage_init_elt,
546 process_init_constructor_array, process_init_constructor_record,
547 process_init_constructor_union, process_init_constructor): Add the
548 flags parameter and pass it thru.
549 (store_init_value): Pass LOOKUP_ALLOW_FLEXARRAY_INIT parameter to
550 digest_init_flags for static decls.
551
59409f09 5522019-01-07 Jakub Jelinek <jakub@redhat.com>
553
554 PR c++/85052
555 * cp-tree.h (cp_build_vec_convert): Declare.
556 * parser.c (cp_parser_postfix_expression): Parse
557 __builtin_convertvector.
558 * constexpr.c: Include fold-const-call.h.
559 (cxx_eval_internal_function): Handle IFN_VEC_CONVERT.
560 (potential_constant_expression_1): Likewise.
561 * semantics.c (cp_build_vec_convert): New function.
562 * pt.c (tsubst_copy_and_build): Handle CALL_EXPR to
563 IFN_VEC_CONVERT.
564
0627c5c9 5652019-01-03 Jakub Jelinek <jakub@redhat.com>
566
567 PR c++/88636
568 * decl.c (builtin_function_1): Return result of pushdecl_top_level
569 or pushdecl rather than decl.
570
f9f7d90c 5712019-01-03 Paolo Carlini <paolo.carlini@oracle.com>
572
573 * tree.c (handle_nodiscard_attribute): Improve warning location.
574
37fb9cf6 5752019-01-02 Marek Polacek <polacek@redhat.com>
576
577 PR c++/88612 - ICE with -Waddress-of-packed-member.
578 * call.c (convert_for_arg_passing): Only give warnings with tf_warning.
579 * typeck.c (convert_for_assignment): Likewise.
580
6080dd2f 581 PR c++/88631 - CTAD failing for value-initialization.
582 * typeck2.c (build_functional_cast): Try deducing the template
583 arguments even if there are no arguments to deduce from.
584
fbd26352 5852019-01-01 Jakub Jelinek <jakub@redhat.com>
ca29c574 586
8e8f6434 587 Update copyright years.
7dfbd804 588\f
fbd26352 589Copyright (C) 2019 Free Software Foundation, Inc.
7dfbd804 590
591Copying and distribution of this file, with or without modification,
592are permitted in any medium without royalty provided the copyright
593notice and this notice are preserved.