]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/cp/ChangeLog
PR libstdc++/89416 fix __is_move_insertable trait
[thirdparty/gcc.git] / gcc / cp / ChangeLog
CommitLineData
dcd8f919 12019-02-20 Jason Merrill <jason@redhat.com>
2
3 PR c++/88690 - C++17 ICE with empty base in aggregate.
4 * typeck2.c (process_init_constructor_record): Skip trivial
5 initialization of an empty base.
6
309e5f71 72019-02-21 Richard Biener <rguenther@suse.de>
8
9 PR middle-end/89392
10 * vtable-class-hierarchy.c (vtv_generate_init_routine): Do not
11 make symtab process new functions here.
12
4e60ed29 132019-02-20 Jason Merrill <jason@redhat.com>
14
15 PR c++/87921 - wrong error with inline static data member.
16 * decl2.c (finish_static_data_member_decl): Don't set DECL_IN_AGGR_P
17 for a non-template inline variable. Do nothing for an
18 already-instantiated variable.
19 (c_parse_final_cleanups): Check DECL_IN_AGGR_P without
20 DECL_INLINE_VAR_P.
21 * decl.c (check_initializer): Likewise.
22 (make_rtl_for_nonlocal_decl): Likewise.
23 * pt.c (instantiate_decl): Likewise.
24 * typeck2.c (store_init_value): Likewise.
25
b47245f1 262019-02-20 Jakub Jelinek <jakub@redhat.com>
27
0c3f2aa9 28 PR c++/89403
29 * decl2.c (c_parse_final_cleanups): Move TREE_ASM_WRITTEN setting
30 for flag_syntax_only from here...
31 * semantics.c (expand_or_defer_fn_1): ... here.
32
02dc6028 33 PR c++/89405
34 * decl.c (maybe_commonize_var): When clearing TREE_PUBLIC and
35 DECL_COMMON, set DECL_INTERFACE_KNOWN.
36
b47245f1 37 PR c++/89336
38 * constexpr.c (cxx_eval_store_expression): Diagnose changing of active
39 union member for -std=c++17 and earlier.
40
af48cea2 412019-02-19 Jason Merrill <jason@redhat.com>
42
43 PR c++/87513 - 'sorry' mangling PMF template-id.
44 * mangle.c (write_expression): Handle SCOPE_REF to BASELINK.
45
fd8a4665 462019-02-19 Jason Merrill <jason@redhat.com>
47
48 PR c++/88380 - wrong-code with flexible array and NSDMI.
49 * typeck2.c (process_init_constructor_record): Skip flexarrays.
50
53ceddc9 512019-02-20 will wray <wjwray@gmail.com>
52
53 PR c++/88572 - wrong handling of braces on scalar init.
54 * decl.c (reshape_init_r): Allow braces around scalar initializer
55 within aggregate init. Reject double braced-init of scalar
56 variable.
57
ab0fbe16 582019-02-20 Paolo Carlini <paolo.carlini@oracle.com>
59
60 PR c++/84536
61 * pt.c (tsubst_init): Diagnose an initializer expanding to an
62 empty list of expressions; tweak wrt dependent types.
63 (regenerate_decl_from_template): For VAR_DECLs call tsubst_init
64 instead of tsubst_expr.
65
ce7f22f1 662019-02-19 Jason Merrill <jason@redhat.com>
67
68 PR c++/88368 - wrong 'use of deleted function'
69 * method.c (walk_field_subobs): Remember errors from get_nsdmi.
70 (get_defaulted_eh_spec): Call push_tinst_level.
71 * pt.c (maybe_instantiate_noexcept): Keep error_mark_node.
72 * typeck2.c (merge_exception_specifiers): Handle error_mark_node.
73
d572a4c3 742019-02-19 Chung-Lin Tang <cltang@codesourcery.com>
75
76 PR c/87924
77 * parser.c (cp_parser_oacc_clause_wait): Add representation of wait
78 clause without argument as 'wait (GOMP_ASYNC_NOVAL)', adjust comments.
79
31358ed0 802019-02-19 Jakub Jelinek <jakub@redhat.com>
81
5ebe5c44 82 PR c++/89387
83 * lambda.c (maybe_generic_this_capture): Don't check
84 DECL_NONSTATIC_MEMBER_FUNCTION_P on USING_DECLs.
85
fcea8c4d 86 PR c++/89391
87 * typeck.c (build_reinterpret_cast_1): Don't handle void to
88 && conversion go through build_target_expr_with_type.
89
31358ed0 90 PR c++/89390
91 * error.c (qualified_name_lookup_error): Only call
92 suggest_alternative_in_scoped_enum if name is IDENTIFIER_NODE.
93
25694c85 942019-02-19 Tom Honermann <tom@honermann.net>
95
96 * name-lookup.c (get_std_name_hint): Added u8string as a name hint.
97
a1e1b603 982019-02-18 Jason Merrill <jason@redhat.com>
99
6aaacaf1 100 PR c++/89336 - multiple stores in constexpr stmt.
101 * constexpr.c (cxx_eval_store_expression): Preevaluate scalar or
102 assigned value.
103
f6347d1a 104 * pt.c (check_explicit_specialization): If the declarator is a
105 template-id, only check whether the arguments are dependent.
106
a1e1b603 107 Improve duplicate [[likely]] diagnostic.
108 * parser.c (cp_parser_statement): Make attrs_loc a range. Pass it
109 to process_stmt_hotness_attribute.
110 * cp-gimplify.c (process_stmt_hotness_attribute): Take attrs_loc.
111 (genericize_if_stmt): Use likely/unlikely instead of predictor_name.
112
33e6651d 1132019-02-17 Marek Polacek <polacek@redhat.com>
114
115 PR c++/89217 - ICE with list-initialization in range-based for loop.
116 * constexpr.c (unshare_constructor): No longer static.
117 * cp-tree.h (unshare_constructor): Declare.
118 * semantics.c (finish_compound_literal): When dealing with a
119 non-dependent expression in a template, return the original
120 expression. Pass LOOKUP_NO_NARROWING to digest_init_flags.
121
3a860627 1222019-02-13 Marek Polacek <polacek@redhat.com>
123
124 PR c++/89297 - ICE with OVERLOAD in template.
125 * semantics.c (finish_compound_literal): Call
126 instantiate_non_dependent_expr_sfinae.
127
601c59dd 1282019-02-13 Alexandre Oliva <aoliva@redhat.com>
129
40563cf7 130 PR c++/86379
131 * cp-tree.h (USING_DECL_SCOPE): Use result rather than type.
132 * name-lookup.c (strip_using_decl): Use USING_DECL_SCOPE.
133 * search.c (protected_accessible_p): Follow USING_DECL_DECLS.
134 (shared_member_p): Likewise.
135 (lookup_member): Likewise.
136 * decl.c (grok_special_member_properties): Skip USING_DECLs.
137 * semantics.c (finish_omp_declare_simd_methods): Likewise.
138 (finish_qualified_id_expr): Do not call shared_member_p with
139 a dependent expr.
140
601c59dd 141 PR c++/87322
142 * pt.c (tsubst_lambda_expr): Avoid duplicate tsubsting.
143 Move cp_evaluated resetting before signature tsubsting.
144 (gen_elem_of_pack_expansion_instantiation): Separate local
145 specializations per index.
146
f2da1a76 1472019-02-13 David Malcolm <dmalcolm@redhat.com>
148
149 PR c++/89036
150 * class.c (add_method): Drop destructor assertion.
151
64bd49fa 1522019-02-13 Paolo Carlini <paolo.carlini@oracle.com>
153
154 PR c++/88986
155 * decl.c (make_typename_type): Allow for TYPE_PACK_EXPANSION as
156 context (the first argument).
157 * pt.c (tsubst, case TYPENAME_TYPE): Handle TYPE_PACK_EXPANSION
158 as context.
159
c8e19553 1602019-02-12 Jason Merrill <jason@redhat.com>
161
162 PR c++/89144 - link error with constexpr initializer_list.
163 * call.c (convert_like_real) [ck_list]: Don't allocate a temporary
164 array for an empty list.
165 * typeck2.c (store_init_value): Don't use cxx_constant_init in a
166 template.
167
33fe677e 1682019-02-11 Jason Merrill <jason@redhat.com>
169
170 PR c++/89241 - ICE with __func__ in lambda in template.
171 * pt.c (enclosing_instantiation_of): Also check
172 instantiated_lambda_fn_p for the template context.
173
44263306 1742019-02-11 Marek Polacek <polacek@redhat.com>
175
176 PR c++/89212 - ICE converting nullptr to pointer-to-member-function.
177 * pt.c (tsubst_copy_and_build) <case CONSTRUCTOR>: Return early for
178 null member pointer value.
179
61b94553 1802019-02-11 Jakub Jelinek <jakub@redhat.com>
181
182 PR c++/88977
183 * pt.c (convert_nontype_argument): Pass true as manifestly_const_eval
184 to maybe_constant_value calls.
185
b10193f4 1862019-02-11 Marek Polacek <polacek@redhat.com>
187
188 * typeck2.c (digest_init_r): Remove commented code.
189
08acf739 1902019-02-11 Martin Sebor <msebor@redhat.com>
191
192 PR c++/87996
193 * decl.c (compute_array_index_type_loc): Preserve signed sizes
194 for diagnostics. Call valid_array_size_p instead of error.
195 * init.c (build_new_1): Compute size for diagnostic. Call
196 invalid_array_size_error
197 (build_new): Call valid_array_size_p instead of error.
198
939d44f3 1992019-02-07 Alexandre Oliva <aoliva@redhat.com>
200
201 PR c++/86218
202 * call.c (compare_ics): Deal with ck_aggr in either cs.
203
c92ab8d4 2042019-02-06 David Malcolm <dmalcolm@redhat.com>
205
206 PR c++/71302
207 * call.c (get_location_for_expr_unwinding_for_system_header): New
208 function.
209 (conversion_null_warnings): Use it when getting locations for
210 EXPR, effectively adding a call to
211 get_location_for_expr_unwinding_for_system_header for
212 -Wconversion-null and making use of EXPR_LOCATION for
213 -Wzero-as-null-pointer-constant.
214
b5a6b127 2152019-02-05 Jakub Jelinek <jakub@redhat.com>
216
217 PR c++/89187
218 * optimize.c (maybe_thunk_body): Clear TREE_ADDRESSABLE on
219 PARM_DECLs of the thunk.
220 * lambda.c (maybe_add_lambda_conv_op): Likewise.
221
74ce2ebb 2222019-02-05 Marek Polacek <polacek@redhat.com>
223
224 PR c++/89158 - by-value capture of constexpr variable broken.
225 * call.c (convert_like_real) <case ck_user>: Call mark_exp_read
226 instead of mark_rvalue_use.
227
9ca54fa1 2282019-02-05 Alexandre Oliva <aoliva@redhat.com>
229
230 PR c++/87770
231 * pt.c (instantiates_primary_template_p): New.
232 (type_dependent_expression_p): Use it.
233
c758dd5a 2342019-02-01 Jason Merrill <jason@redhat.com>
235
236 PR c++/88761 - ICE with reference capture of constant.
237 * lambda.c (mark_const_cap_r): Do walk subtrees of DECL_EXPR for
238 non-proxy decls.
239
bdb43276 2402019-02-01 Marek Polacek <polacek@redhat.com>
241
242 PR c++/88325 - ICE with invalid out-of-line template member definition.
243 * parser.c (cp_parser_class_name): Don't call make_typename_type
244 for overloads.
245
5ab8180e 2462019-02-01 Jakub Jelinek <jakub@redhat.com>
247
248 PR c++/87175
249 * parser.c (cp_parser_gnu_attributes_opt): Set ok to false
250 if require_open failed.
251
c8f861a0 2522019-01-31 Marek Polacek <polacek@redhat.com>
253
254 PR c++/89083, c++/80864 - ICE with list initialization in template.
255 * constexpr.c (adjust_temp_type): Use copy_node and change the type
256 instead of using build_constructor.
257 * decl.c (reshape_init_r): Don't reshape a digested initializer.
258 Return the initializer for COMPOUND_LITERAL_P.
259
f1329be6 260 PR c++/88983 - ICE with switch in constexpr function.
261 * constexpr.c (cxx_eval_switch_expr): Use SWITCH_COND and SWITCH_BODY.
262 (cxx_eval_constant_expression) <case COND_EXPR>: Don't look for the
263 label in the else branch if we found it in the then branch.
264
8c28f0ef 2652019-01-30 Jason Merrill <jason@redhat.com>
266
267 PR c++/88752 - ICE with lambda and constexpr if.
268 * cp-tree.h (LAMBDA_EXPR_INSTANTIATED): New.
269 * pt.c (tsubst_lambda_expr): Set it.
270 (instantiated_lambda_fn_p): Check it.
271 (enclosing_instantiation_of): Use it.
272
abb9ae66 2732019-01-31 Jakub Jelinek <jakub@redhat.com>
274
275 PR libstdc++/88170
276 * cxx-pretty-print.c (pp_cxx_enumeration_constant): Print always as
277 a C cast in pp_c_flag_gnu_v3 mode.
278
9b0e9786 2792019-01-30 Jakub Jelinek <jakub@redhat.com>
280
281 PR c++/88988
282 * lambda.c (is_capture_proxy): Don't return true for
283 DECL_OMP_PRIVATIZED_MEMBER artificial vars.
284
7066144a 2852019-01-30 Marek Polacek <polacek@redhat.com>
286
287 PR c++/89119 - ICE with value-initialization in template.
288 * pt.c (tsubst_copy_and_build): Handle RANGE_EXPR.
289
64e3499e 2902019-01-29 Jason Merrill <jason@redhat.com>
291
292 PR c++/86943 - wrong code converting lambda to function pointer.
293 * lambda.c (maybe_add_lambda_conv_op): Use a template-id in the
294 call. Only forward parms for decltype.
295 * pt.c (tsubst_copy_and_build) [CALL_EXPR]: Handle CALL_FROM_THUNK_P
296 specially.
297 * typeck.c (check_return_expr): Don't mess with a thunk call.
298
107cba11 2992019-01-28 Jason Merrill <jason@redhat.com>
300
301 PR c++/89089 - ICE with [[no_unique_address]].
302 PR c++/88865 - wrong layout with [[no_unique_address]].
303 * class.c (check_field_decls): A potentially-overlapping field makes
304 the class non-layout-POD, but not non-empty.
305 (end_of_class): Always consider empty data members.
306 (layout_class_type): Set DECL_SIZE for empty fields.
307
44da2a17 3082019-01-28 Marek Polacek <polacek@redhat.com>
309
310 PR c++/88358 - name wrongly treated as type.
311 * parser.c (cp_parser_direct_declarator): Don't assume a qualified-id
312 in parameter-list is a type if the function's declarator-id is not
313 qualified.
314
1d41b42f 3152019-01-27 Marek Polacek <polacek@redhat.com>
316
b7feeace 317 PR c++/88815 - narrowing conversion lost in decltype.
318 PR c++/78244 - narrowing conversion in template not detected.
319 * cp-tree.h (CONSTRUCTOR_IS_DEPENDENT): New.
320 * pt.c (instantiation_dependent_r): Consider a CONSTRUCTOR with
321 CONSTRUCTOR_IS_DEPENDENT instantiation-dependent.
322 * semantics.c (finish_compound_literal): When the compound literal
323 isn't instantiation-dependent and the type isn't type-dependent,
324 fall back to the normal processing. Set CONSTRUCTOR_IS_DEPENDENT.
325
1d41b42f 326 PR c++/89024 - ICE with incomplete enum type.
327 * call.c (standard_conversion): When converting an
328 ARITHMETIC_TYPE_P to an incomplete type, return NULL.
329
837ddebd 3302019-01-25 Paolo Carlini <paolo.carlini@oracle.com>
331
332 PR c++/88969
333 * call.c (build_op_delete_call): Implement 7.6.2.5/(10.1).
334 * decl2.c (coerce_delete_type): Use build_pointer_type instead
335 of TYPE_POINTER_TO.
336
8c89c5fc 3372019-01-24 Jason Merrill <jason@redhat.com>
338
339 PR c++/89001 - mangling of reference temporaries
340 * cp-tree.h (struct saved_scope): Add ref_temp_count.
341 (current_ref_temp_count): New macro.
342 * mangle.c (mangle_ref_init_variable): Use it.
343 * typeck2.c (store_init_value): Clear it.
344 * call.c (make_temporary_var_for_ref_to_temp): Copy public and
345 comdat.
346
b5e76680 3472019-01-24 Jakub Jelinek <jakub@redhat.com>
348
349 PR c++/88976
350 * semantics.c (finish_omp_cancel): Diagnose more than one if
351 on #pragma omp cancel with different modifiers. Use
352 maybe_convert_cond when not in template or build_x_binary_op
353 otherwise.
354
dffbcba8 3552019-01-23 Marek Polacek <polacek@redhat.com>
356
357 PR c++/88757 - qualified name treated wrongly as type.
358 * parser.c (cp_parser_direct_declarator): Don't treat qualified-ids
359 in parameter-list as types if name lookup for declarator-id didn't
360 find one or more function templates.
361
1f03c410 3622019-01-23 Jakub Jelinek <jakub@redhat.com>
363
8090d51c 364 PR c/44715
365 * cp-gimplify.c (genericize_cp_loop): Call begin_bc_block only
366 after genericizing cond and incr expressions.
367
1f03c410 368 PR c++/88984
369 * cp-gimplify.c (genericize_switch_stmt): Move cond genericization
370 before the begin_bc_block call.
371
48c03f15 3722019-01-21 Jason Merrill <jason@redhat.com>
373
374 PR c++/87893 - constexpr ctor ICE on ARM.
375 PR c++/88293 - ICE with comma expression.
376 * constexpr.c (initialized_type): Don't shortcut non-void type.
377 Handle COMPOUND_EXPR.
378 (cxx_eval_outermost_constant_expr): Return early for void type.
379
99bf4b63 3802019-01-21 Jakub Jelinek <jakub@redhat.com>
381
77fe9474 382 PR c++/88949
383 * optimize.c (cxx_copy_decl): New function.
384 (clone_body): Use it instead of copy_decl_no_change.
385
99bf4b63 386 PR sanitizer/88901
387 * typeck.c (cp_build_binary_op): Don't instrument
388 SANITIZE_POINTER_COMPARE if processing_template_decl.
389 (pointer_diff): Similarly for SANITIZE_POINTER_SUBTRACT.
390
ecd2d842 3912019-01-18 Jason Merrill <jason@redhat.com>
392
393 PR c++/88875 - error with explicit list constructor.
394 * call.c (reference_binding): Don't modify EXPR. Set
395 need_temporary_p on the ck_user conversion for a temporary.
396 (convert_like_real): Check it.
397
6d4e8a95 3982019-01-18 H.J. Lu <hongjiu.lu@intel.com>
399
400 PR c/51628
401 PR c/88664
402 * call.c (convert_for_arg_passing): Upate the
403 warn_for_address_or_pointer_of_packed_member call.
404 * typeck.c (convert_for_assignment): Likewise.
405
9d3c4130 4062019-01-17 Jason Merrill <jason@redhat.com>
407
bc9c0483 408 PR c++/86205 - ICE with ?: of throw and template-id.
409 * pt.c (resolve_nondeduced_context_or_error): Split out from...
410 * typeck.c (decay_conversion): ...here.
411 * call.c (build_conditional_expr_1): Use it.
412
9d3c4130 413 PR c++/86740, ICE with constexpr if and nested generic lambdas.
414 * tree.c (cp_walk_subtrees): Handle LAMBDA_EXPR.
415
0f910e62 4162019-01-17 Paolo Carlini <paolo.carlini@oracle.com>
417
418 * decl.c (grokdeclarator): Use typespec_loc in error messages
419 about 'auto' and trailing return type.
420
098cc8f0 4212019-01-17 David Malcolm <dmalcolm@redhat.com>
422
423 PR c++/88699
424 * class.c (add_method): Don't use DECL_DESTRUCTOR_P on
425 USING_DECLs.
426
a395125a 4272019-01-17 Nathan Sidwell <nathan@acm.org>
428
429 PR c++/86610
430 * semantics.c (process_outer_var_ref): Only skip dependent types
431 in templates.
432
5461905d 4332019-01-17 Alexandre Oliva <aoliva@redhat.com>
434
c5f929a4 435 PR c++/87768
436 * cp-tree.h (saved_scope): Add suppress_location_wrappers.
437 * name-lookup.c (do_push_to_top_level): Save and reset it.
438 (do_pop_from_top_level): Restore it.
439
f97941b7 440 PR c++/86648
441 * pt.c (make_template_placeholder): Use auto_identifier.
442 (is_auto): Drop CLASS_PLACEHOLDER_TEMPLATE test.
443 * error.c (dump_type): Handle template placeholders.
444 * cxx-pretty-print.c (pp_cx_unqualified_id): Likewise.
445
5461905d 446 PR c++/88146
447 * cvt.c (convert_to_void): Handle all cdtor calls as if
448 returning void.
449
b92cc3ed 4502019-01-16 Paolo Carlini <paolo.carlini@oracle.com>
451
452 * decl.c (grokdeclarator): Use locations[ds_storage_class] in
453 error messages about ill-formed uses of mutable.
454
9fc2172c 4552019-01-16 Marek Polacek <polacek@redhat.com>
456
457 PR c++/78244 - narrowing conversion in template not detected.
458 * call.c (perform_implicit_conversion_flags): Set
459 IMPLICIT_CONV_EXPR_BRACED_INIT.
460 * cp-tree.h (IMPLICIT_CONV_EXPR_BRACED_INIT): New.
461 * pt.c (tsubst_copy_and_build): Use it.
462
727d210b 4632019-01-15 David Malcolm <dmalcolm@redhat.com>
464
465 PR c++/88795
466 * pt.c (build_deduction_guide): Bail out if tsubst_arg_types
467 fails.
468
39a51021 4692019-01-15 Paolo Carlini <paolo.carlini@oracle.com>
470
471 * decl.c (start_decl): Improve error location.
472 * decl2.c (grokfield): Likewise.
473
4742019-01-15 Paolo Carlini <paolo.carlini@oracle.com>
475
476 * decl.c (grokdeclarator): Move further up the location_t loc
477 declaration and use the location when building a TYPE_DECL for
478 a typedef name.
479 * decl2.c (grokbitfield): Use DECL_SOURCE_LOCATION in the error
480 about an ill-formed bit-field as typedef.
481
affca1c8 4822019-01-14 Marek Polacek <polacek@redhat.com>
483
484 PR c++/88830 - ICE with abstract class.
485 * decl2.c (maybe_emit_vtables): Check CLASSTYPE_LAZY_DESTRUCTOR.
486 Fix formatting.
487
9f8a8956 488 PR c++/88825 - ICE with bogus function return type deduction.
489 * typeck.c (can_do_nrvo_p): Check error_mark_node.
490
82362779 4912019-01-14 Tom Honermann <tom@honermann.net>
492
493 Implement P0482R5, char8_t: A type for UTF-8 characters and strings
494 * cvt.c (type_promotes_to): Handle char8_t promotion.
495 * decl.c (grokdeclarator): Handle invalid type specifier
496 combinations involving char8_t.
497 * lex.c (init_reswords): Add char8_t as a reserved word.
498 * mangle.c (write_builtin_type): Add name mangling for char8_t (Du).
499 * parser.c (cp_keyword_starts_decl_specifier_p)
500 (cp_parser_simple_type_specifier): Recognize char8_t as a simple
501 type specifier.
502 (cp_parser_string_literal): Use char8_array_type_node for the type
503 of CPP_UTF8STRING.
504 (cp_parser_set_decl_spec_type): Tolerate char8_t typedefs in system
505 headers.
506 * rtti.c (emit_support_tinfos): type_info support for char8_t.
507 * tree.c (char_type_p): Recognize char8_t as a character type.
508 * typeck.c (string_conv_p): Handle conversions of u8 string
509 literals of char8_t type.
510 (check_literal_operator_args): Handle UDLs with u8 string literals
511 of char8_t type.
512 * typeck2.c (ordinary_char_type_p): New.
513 (digest_init_r): Disallow initializing a char array with a u8 string
514 literal.
515
bf4eb32b 5162019-01-14 Martin Liska <mliska@suse.cz>
517
518 PR gcov-profile/88263
519 * decl2.c (get_tls_wrapper_fn): Use DECL_SOURCE_LOCATION
520 as location of the TLS wrapper.
521
2fa582a9 5222019-01-12 Paolo Carlini <paolo.carlini@oracle.com>
523
524 * decl.c (cp_finish_decl): Improve error location.
525 * decl2.c (grokfield): Likewise, improve two locations.
526
0b5957b9 5272019-01-11 Marek Polacek <polacek@redhat.com>
528
529 PR c++/88692, c++/87882 - -Wredundant-move false positive with *this.
530 * typeck.c (maybe_warn_pessimizing_move): Return if ARG isn't
531 ADDR_EXPR.
532
d07c152b 5332019-01-11 Jason Merrill <jason@redhat.com>
534
535 PR c++/88312 - pack expansion of decltype.
536 * pt.c (instantiation_dependent_r): A template non-type parameter
537 pack is instantiation-dependent.
538
0c2ebbc4 5392019-01-11 Jason Merrill <jason@redhat.com>
540
541 PR c++/88613 - ICE with use of const var in lambda.
542 * expr.c (mark_use): Fix location wrapper handling.
543 * cp-gimplify.c (cp_fold_maybe_rvalue): Call mark_rvalue_use.
544
1b2f170e 5452019-01-11 Tobias Burnus <burnus@net-b.de>
546
547 PR C++/88114
548 * decl2.c (maybe_emit_vtables): If needed, generate code for
549 the destructor of an abstract class.
550 (mark_used): Update comment for older function-name change.
551
b385e516 5522019-01-11 Paolo Carlini <paolo.carlini@oracle.com>
553
554 * decl.c (start_decl): Improve error location.
555 (grokdeclarator): Likewise, improve two locations.
556
f4d3c071 5572019-01-09 Sandra Loosemore <sandra@codesourcery.com>
558
559 PR other/16615
560
561 * cp-tree.h: Mechanically replace "can not" with "cannot".
562 * parser.c: Likewise.
563 * pt.c: Likewise.
564
7cc45975 5652019-01-08 Paolo Carlini <paolo.carlini@oracle.com>
566
567 * decl.c (grok_reference_init): Improve error location.
568 (grokdeclarator): Likewise, improve two locations.
569
90e20c9c 5702019-01-08 Marek Polacek <polacek@redhat.com>
571
91902bb4 572 PR c++/88538 - braced-init-list in template-argument-list.
573 * parser.c (cp_parser_template_argument): Handle braced-init-list when
574 in C++20.
575
90e20c9c 576 PR c++/88548 - this accepted in static member functions.
577 * parser.c (cp_debug_parser): Adjust printing of
578 local_variables_forbidden_p.
579 (cp_parser_new): Set local_variables_forbidden_p to 0 rather than false.
580 (cp_parser_primary_expression): When checking
581 local_variables_forbidden_p, use THIS_FORBIDDEN or
582 LOCAL_VARS_FORBIDDEN.
583 (cp_parser_lambda_body): Update the type of
584 local_variables_forbidden_p. Set it to 0 rather than false.
585 (cp_parser_condition): Adjust call to cp_parser_declarator.
586 (cp_parser_explicit_instantiation): Likewise.
587 (cp_parser_init_declarator): Likewise.
588 (cp_parser_declarator): New parameter. Use it.
589 (cp_parser_direct_declarator): New parameter. Use it to set
590 local_variables_forbidden_p. Adjust call to cp_parser_declarator.
591 (cp_parser_type_id_1): Adjust call to cp_parser_declarator.
592 (cp_parser_parameter_declaration): Likewise.
593 (cp_parser_default_argument): Update the type of
594 local_variables_forbidden_p. Set it to LOCAL_VARS_AND_THIS_FORBIDDEN
595 rather than true.
596 (cp_parser_member_declaration): Tell cp_parser_declarator if we saw
597 'static' or 'friend'.
598 (cp_parser_exception_declaration): Adjust call to cp_parser_declarator.
599 (cp_parser_late_parsing_default_args): Update the type of
600 local_variables_forbidden_p. Set it to LOCAL_VARS_AND_THIS_FORBIDDEN
601 rather than true.
602 (cp_parser_cache_defarg): Adjust call to cp_parser_declarator.
603 (cp_parser_objc_class_ivars): Likewise.
604 (cp_parser_objc_struct_declaration): Likewise.
605 (cp_parser_omp_for_loop_init): Likewise.
606 * parser.h (cp_parser): Change the type of local_variables_forbidden_p
607 to unsigned char.
608 (LOCAL_VARS_FORBIDDEN, LOCAL_VARS_AND_THIS_FORBIDDEN, THIS_FORBIDDEN):
609 Define.
610
8f7d5246 6112019-01-08 Paolo Carlini <paolo.carlini@oracle.com>
612
613 * decl.c (start_decl): Improve permerror location.
614
6e5908c9 6152019-01-08 Jonathan Wakely <jwakely@redhat.com>
616 Jakub Jelinek <jakub@redhat.com>
617
618 PR c++/88554
619 * decl.c (finish_function): For -Wreturn-type don't add a return *this;
620 fixit hint if current_class_ref is NULL. Use a single if instead of
621 two nested ones.
622
2318c037 6232019-01-07 Paolo Carlini <paolo.carlini@oracle.com>
624
625 * decl.c (start_decl): Improve two error_at locations.
626 (expand_static_init): Likewise.
627
677576f7 6282019-01-07 Marek Polacek <polacek@redhat.com>
629
630 PR c++/88741 - wrong error with initializer-string.
631 * decl.c (cp_complete_array_type): Strip any location wrappers.
632
c38103e8 6332019-01-07 Bernd Edlinger <bernd.edlinger@hotmail.de>
634
635 PR c++/88261
636 PR c++/69338
637 PR c++/69696
638 PR c++/69697
639 * cp-tree.h (LOOKUP_ALLOW_FLEXARRAY_INIT): New flag value.
640 * typeck2.c (digest_init_r): Raise an error for non-static
641 initialization of a flexible array member.
642 (process_init_constructor, massage_init_elt,
643 process_init_constructor_array, process_init_constructor_record,
644 process_init_constructor_union, process_init_constructor): Add the
645 flags parameter and pass it thru.
646 (store_init_value): Pass LOOKUP_ALLOW_FLEXARRAY_INIT parameter to
647 digest_init_flags for static decls.
648
59409f09 6492019-01-07 Jakub Jelinek <jakub@redhat.com>
650
651 PR c++/85052
652 * cp-tree.h (cp_build_vec_convert): Declare.
653 * parser.c (cp_parser_postfix_expression): Parse
654 __builtin_convertvector.
655 * constexpr.c: Include fold-const-call.h.
656 (cxx_eval_internal_function): Handle IFN_VEC_CONVERT.
657 (potential_constant_expression_1): Likewise.
658 * semantics.c (cp_build_vec_convert): New function.
659 * pt.c (tsubst_copy_and_build): Handle CALL_EXPR to
660 IFN_VEC_CONVERT.
661
0627c5c9 6622019-01-03 Jakub Jelinek <jakub@redhat.com>
663
664 PR c++/88636
665 * decl.c (builtin_function_1): Return result of pushdecl_top_level
666 or pushdecl rather than decl.
667
f9f7d90c 6682019-01-03 Paolo Carlini <paolo.carlini@oracle.com>
669
670 * tree.c (handle_nodiscard_attribute): Improve warning location.
671
37fb9cf6 6722019-01-02 Marek Polacek <polacek@redhat.com>
673
674 PR c++/88612 - ICE with -Waddress-of-packed-member.
675 * call.c (convert_for_arg_passing): Only give warnings with tf_warning.
676 * typeck.c (convert_for_assignment): Likewise.
677
6080dd2f 678 PR c++/88631 - CTAD failing for value-initialization.
679 * typeck2.c (build_functional_cast): Try deducing the template
680 arguments even if there are no arguments to deduce from.
681
fbd26352 6822019-01-01 Jakub Jelinek <jakub@redhat.com>
ca29c574 683
8e8f6434 684 Update copyright years.
7dfbd804 685\f
fbd26352 686Copyright (C) 2019 Free Software Foundation, Inc.
7dfbd804 687
688Copying and distribution of this file, with or without modification,
689are permitted in any medium without royalty provided the copyright
690notice and this notice are preserved.