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