Rotate ChangeLog files.
[official-gcc.git] / gcc / d / ChangeLog-2023
blob5510b99f1b90d5fe276605afb55ba84491e8cf5c
1 2023-12-16  Andrew Carlotti  <andrew.carlotti@arm.com>
3         * d-attribs.cc (attr_target_exclusions): Make
4         target/target_clones exclusion target-dependent.
5         (attr_target_clones_exclusions): Ditto.
7 2023-12-11  Iain Buclaw  <ibuclaw@gdcproject.org>
9         * Make-lang.in (D_FRONTEND_OBJS): Rename d/common-string.o to
10         d/common-smallbuffer.o.
11         * dmd/MERGE: Merge upstream dmd 2bbf64907c.
12         * dmd/VERSION: Bump version to v2.106.0.
13         * modules.cc (layout_moduleinfo_fields): Update for new front-end
14         interface.
15         (layout_moduleinfo): Likewise.
17 2023-12-05  Richard Sandiford  <richard.sandiford@arm.com>
19         * d-attribs.cc (d_langhook_common_attribute_table): Add extra braces
20         to work around PR 16333 in older compilers.
21         (d_langhook_gnu_attribute_table): Likewise.
23 2023-12-02  Richard Sandiford  <richard.sandiford@arm.com>
25         * d-tree.h (d_langhook_attribute_table): Replace with...
26         (d_langhook_gnu_attribute_table): ...this.
27         (d_langhook_common_attribute_table): Change type to
28         scoped_attribute_specs.
29         * d-attribs.cc (d_langhook_common_attribute_table): Change type to
30         scoped_attribute_specs, using...
31         (d_langhook_common_attributes): ...this as the underlying array.
32         (d_langhook_attribute_table): Replace with...
33         (d_langhook_gnu_attributes, d_langhook_gnu_attribute_table): ...these
34         new globals.
35         (uda_attribute_p): Update accordingly, and update for new
36         targetm.attribute_table type.
37         * d-lang.cc (d_langhook_attribute_table): New global.
38         (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE): Delete.
40 2023-11-21  Iain Buclaw  <ibuclaw@gdcproject.org>
42         * dmd/MERGE: Merge upstream dmd ff57fec515.
43         * dmd/VERSION: Bump version to v2.106.0-rc.1.
44         * expr.cc (ExprVisitor::visit (CatAssignExp *)): Update for new
45         front-end interface.
46         (ExprVisitor::visit (NewExp *)): Likewise.
47         * runtime.def (NEWARRAYMTX): Remove.
48         (NEWARRAYMITX): Remove.
50 2023-11-21  Iain Buclaw  <ibuclaw@gdcproject.org>
52         * dmd/MERGE: Merge upstream dmd 65a3da148c.
54 2023-11-02  Iain Buclaw  <ibuclaw@gdcproject.org>
56         * dmd/MERGE: Merge upstream dmd 643b1261bb.
57         * d-attribs.cc (build_attributes): Update for new front-end interface.
58         * d-lang.cc (d_post_options): Likewise.
59         * decl.cc (layout_class_initializer): Likewise.
61 2023-10-31  Iain Buclaw  <ibuclaw@gdcproject.org>
63         * expr.cc (ExprVisitor::visit (NewExp *)): Remove unused assignments.
65 2023-10-29  Iain Buclaw  <ibuclaw@gdcproject.org>
67         PR d/110712
68         * d-codegen.cc (d_build_call): Update call to convert_for_argument.
69         * d-convert.cc (is_valist_parameter_type): New function.
70         (check_valist_conversion): New function.
71         (convert_for_assignment): Update signature.  Add check whether
72         assigning va_list is permissible.
73         (convert_for_argument): Likewise.
74         * d-tree.h (convert_for_assignment): Update signature.
75         (convert_for_argument): Likewise.
76         * expr.cc (ExprVisitor::visit (AssignExp *)): Update call to
77         convert_for_assignment.
79 2023-10-29  Iain Buclaw  <ibuclaw@gdcproject.org>
81         * dmd/MERGE: Merge upstream dmd e48bc0987d.
82         * expr.cc (ExprVisitor::visit (NewExp *)): Update for new front-end
83         interface.
84         * runtime.def (NEWARRAYT): Remove.
85         (NEWARRAYIT): Remove.
87 2023-10-28  Iain Buclaw  <ibuclaw@gdcproject.org>
89         PR d/112270
90         * d-builtins.cc (d_build_d_type_nodes): Initialize d_bool_false_node,
91         d_bool_true_node.
92         * d-codegen.cc (build_array_struct_comparison): Use d_bool_false_node
93         instead of boolean_false_node.
94         * d-convert.cc (d_truthvalue_conversion): Use d_bool_false_node and
95         d_bool_true_node instead of boolean_false_node and boolean_true_node.
96         * d-tree.h (enum d_tree_index): Add DTI_BOOL_FALSE and DTI_BOOL_TRUE.
97         (d_bool_false_node): New macro.
98         (d_bool_true_node): New macro.
99         * modules.cc (build_dso_cdtor_fn): Use d_bool_false_node and
100         d_bool_true_node instead of boolean_false_node and boolean_true_node.
101         (register_moduleinfo): Use d_bool_type instead of boolean_type_node.
103 2023-10-28  Iain Buclaw  <ibuclaw@gdcproject.org>
105         * d-codegen.cc (call_side_effect_free_p): New function.
106         * d-tree.h (CALL_EXPR_WARN_IF_UNUSED): New macro.
107         (call_side_effect_free_p): New prototype.
108         * expr.cc (ExprVisitor::visit (CallExp *)): Set
109         CALL_EXPR_WARN_IF_UNUSED on matched call expressions.
110         (ExprVisitor::visit (NewExp *)): Don't dereference the result of an
111         allocation call here.
112         * toir.cc (add_stmt): Emit warning when call expression added to
113         statement list without being used.
115 2023-10-22  Iain Buclaw  <ibuclaw@gdcproject.org>
117         * dmd/MERGE: Merge upstream dmd f4be7f6f7b.
118         * Make-lang.in (D_FRONTEND_OBJS): Rename d/root-rootobject.o to
119         d/rootobject.o.
121 2023-10-17  Iain Buclaw  <ibuclaw@gdcproject.org>
123         * d-tree.h (intrinsic_code): Update define for DEF_D_INTRINSIC.
124         (maybe_reject_intrinsic): New prototype.
125         * expr.cc (ExprVisitor::visit (SymOffExp *)): Call
126         maybe_reject_intrinsic.
127         * intrinsics.cc (intrinsic_decl): Add fallback field.
128         (intrinsic_decls): Update define for DEF_D_INTRINSIC.
129         (maybe_reject_intrinsic): New function.
130         * intrinsics.def (DEF_D_LIB_BUILTIN): Update.
131         (DEF_CTFE_BUILTIN): Update.
132         (INTRINSIC_BSF): Declare as library builtin.
133         (INTRINSIC_BSR): Likewise.
134         (INTRINSIC_BT): Likewise.
135         (INTRINSIC_BSF64): Likewise.
136         (INTRINSIC_BSR64): Likewise.
137         (INTRINSIC_BT64): Likewise.
138         (INTRINSIC_POPCNT32): Likewise.
139         (INTRINSIC_POPCNT64): Likewise.
140         (INTRINSIC_ROL): Likewise.
141         (INTRINSIC_ROL_TIARG): Likewise.
142         (INTRINSIC_ROR): Likewise.
143         (INTRINSIC_ROR_TIARG): Likewise.
144         (INTRINSIC_ADDS): Likewise.
145         (INTRINSIC_ADDSL): Likewise.
146         (INTRINSIC_ADDU): Likewise.
147         (INTRINSIC_ADDUL): Likewise.
148         (INTRINSIC_SUBS): Likewise.
149         (INTRINSIC_SUBSL): Likewise.
150         (INTRINSIC_SUBU): Likewise.
151         (INTRINSIC_SUBUL): Likewise.
152         (INTRINSIC_MULS): Likewise.
153         (INTRINSIC_MULSL): Likewise.
154         (INTRINSIC_MULU): Likewise.
155         (INTRINSIC_MULUI): Likewise.
156         (INTRINSIC_MULUL): Likewise.
157         (INTRINSIC_NEGS): Likewise.
158         (INTRINSIC_NEGSL): Likewise.
159         (INTRINSIC_TOPRECF): Likewise.
160         (INTRINSIC_TOPREC): Likewise.
161         (INTRINSIC_TOPRECL): Likewise.
163 2023-10-16  Iain Buclaw  <ibuclaw@gdcproject.org>
165         * dmd/MERGE: Merge upstream dmd 4c18eed967.
166         * d-diagnostic.cc (verrorReport): Update for new front-end interface.
167         (verrorReportSupplemental): Likewise.
168         * d-lang.cc (d_init_options): Likewise.
169         (d_handle_option): Likewise.
170         (d_post_options): Likewise.
171         (d_parse_file): Likewise.
172         * decl.cc (get_symbol_decl): Likewise.
174 2023-10-15  Iain Buclaw  <ibuclaw@gdcproject.org>
176         * dmd/MERGE: Merge upstream dmd f9efc98fd7.
177         * dmd/VERSION: Bump version to v2.105.2.
178         * d-builtins.cc (build_frontend_type): Update for new front-end
179         interface.
180         * d-diagnostic.cc (verrorReport): Don't emit tips when error gagging
181         is turned on.
182         * d-lang.cc (d_handle_option): Remove obsolete parameter.
183         (d_post_options): Likewise.
184         (d_read_ddoc_files): New function.
185         (d_generate_ddoc_file): New function.
186         (d_parse_file): Update for new front-end interface.
187         * expr.cc (ExprVisitor::visit (AssocArrayLiteralExp *)): Check for new
188         front-end lowering of static associative arrays.
190 2023-10-14  Iain Buclaw  <ibuclaw@gdcproject.org>
192         PR d/111537
193         * expr.cc (ExprVisitor::visit (StringExp *)): Include null terminator
194         in STRING_CST string.
195         * modules.cc (get_compiler_dso_type): Generate ModuleInfo** type for
196         the minfo fields.
198 2023-10-14  Iain Buclaw  <ibuclaw@gdcproject.org>
200         * d-lang.cc (d_write_file): New function.
201         (d_parse_file): Reduce code duplication.
203 2023-10-03  David Malcolm  <dmalcolm@redhat.com>
205         * d-diagnostic.cc (d_diagnostic_report_diagnostic): Use text_info
206         ctor.
208 2023-09-23  Iain Buclaw  <ibuclaw@gdcproject.org>
210         * dmd/MERGE: Merge upstream dmd 4574d1728d.
211         * dmd/VERSION: Bump version to v2.105.0.
212         * d-diagnostic.cc (verror): Remove.
213         (verrorSupplemental): Remove.
214         (vwarning): Remove.
215         (vwarningSupplemental): Remove.
216         (vdeprecation): Remove.
217         (vdeprecationSupplemental): Remove.
218         (vmessage): Remove.
219         (vtip): Remove.
220         (verrorReport): New function.
221         (verrorReportSupplemental): New function.
222         * d-lang.cc (d_parse_file): Update for new front-end interface.
223         * decl.cc (d_mangle_decl): Update for new front-end interface.
224         * intrinsics.cc (maybe_set_intrinsic): Update for new front-end
225         interface.
227 2023-08-20  Iain Buclaw  <ibuclaw@gdcproject.org>
229         * dmd/MERGE: Merge upstream dmd 26f049fb26.
230         * dmd/VERSION: Bump version to v2.105.0-beta.1.
231         * d-codegen.cc (get_frameinfo): Check useGC in condition.
232         * d-lang.cc (d_handle_option): Set obsolete parameter when compiling
233         with -Wall.
234         (d_post_options): Set useGC to false when compiling with
235         -fno-druntime.  Propagate obsolete flag to compileEnv.
236         * expr.cc (ExprVisitor::visit (CatExp *)): Check useGC in condition.
238 2023-07-10  Iain Buclaw  <ibuclaw@gdcproject.org>
240         * dmd/MERGE: Merge upstream dmd a88e1335f7.
241         * dmd/VERSION: Bump version to v2.104.1.
243 2023-07-10  Iain Buclaw  <ibuclaw@gdcproject.org>
245         * dmd/MERGE: Merge upstream dmd 17ccd12af3.
246         * dmd/VERSION: Bump version to v2.104.0.
247         * Make-lang.in (D_FRONTEND_OBJS): Rename d/apply.o to
248         d/postordervisitor.o.
249         * d-codegen.cc (make_location_t): Update for new front-end interface.
250         (build_filename_from_loc): Likewise.
251         (build_assert_call): Likewise.
252         (build_array_bounds_call): Likewise.
253         (build_bounds_index_condition): Likewise.
254         (build_bounds_slice_condition): Likewise.
255         (build_frame_type): Likewise.
256         (get_frameinfo): Likewise.
257         * d-diagnostic.cc (d_diagnostic_report_diagnostic): Likewise.
258         * decl.cc (build_decl_tree): Likewise.
259         (start_function): Likewise.
260         * expr.cc (ExprVisitor::visit (NewExp *)): Replace code generation of
261         `new pointer' with front-end lowering.
262         * runtime.def (NEWITEMT): Remove.
263         (NEWITEMIT): Remove.
264         * toir.cc (IRVisitor::visit (LabelStatement *)): Update for new
265         front-end interface.
266         * typeinfo.cc (check_typeinfo_type): Likewise.
268 2023-07-09  Iain Buclaw  <ibuclaw@gdcproject.org>
270         * dmd/MERGE: Merge upstream dmd 28a3b24c2e.
271         * dmd/VERSION: Bump version to v2.104.0-beta.1.
272         * d-codegen.cc (build_bounds_slice_condition): Update for new
273         front-end interface.
274         * d-lang.cc (d_init_options): Likewise.
275         (d_handle_option): Likewise.
276         (d_post_options): Initialize global.compileEnv.
277         * expr.cc (ExprVisitor::visit (CatExp *)): Replace code generation
278         with new front-end lowering.
279         (ExprVisitor::visit (LoweredAssignExp *)): New method.
280         (ExprVisitor::visit (StructLiteralExp *)): Don't generate static
281         initializer symbols for structs defined in C sources.
282         * runtime.def (ARRAYCATT): Remove.
283         (ARRAYCATNTX): Remove.
285 2023-07-07  Iain Buclaw  <ibuclaw@gdcproject.org>
287         PR d/108842
288         * decl.cc (DeclVisitor::visit (VarDeclaration *)): Only emit scalar
289         manifest constants.
290         (get_symbol_decl): Don't generate CONST_DECL for non-scalar manifest
291         constants.
292         * imports.cc (ImportVisitor::visit (VarDeclaration *)): New method.
294 2023-07-02  Iain Buclaw  <ibuclaw@gdcproject.org>
296         PR d/110516
297         * intrinsics.cc (expand_volatile_load): Set TREE_SIDE_EFFECTS on the
298         expanded expression.
299         (expand_volatile_store): Likewise.
301 2023-07-01  Iain Buclaw  <ibuclaw@gdcproject.org>
303         PR d/110514
304         * decl.cc (get_symbol_decl): Set TREE_READONLY on certain kinds of
305         const and immutable variables.
306         * expr.cc (ExprVisitor::visit (ArrayLiteralExp *)): Set TREE_READONLY
307         on immutable dynamic array literals.
309 2023-07-01  Iain Buclaw  <ibuclaw@gdcproject.org>
311         PR d/110471
312         * d-builtins.cc (d_init_versions): Predefine D_ModuleInfo,
313         D_Exceptions, and D_TypeInfo only if feature is enabled.
314         * lang.opt: Add -fexceptions.
316 2023-06-28  Iain Buclaw  <ibuclaw@gdcproject.org>
318         PR d/106977
319         PR target/110406
320         * types.cc (finish_aggregate_mode): New function.
321         (finish_incomplete_fields): Call finish_aggregate_mode.
322         (finish_aggregate_type): Replace call to compute_record_mode with
323         finish_aggregate_mode.
325 2023-06-28  Iain Buclaw  <ibuclaw@gdcproject.org>
327         PR d/110193
328         * types.cc (d_signed_or_unsigned_type): Handle being called with any
329         vector or non-integral type.
331 2023-06-26  Iain Buclaw  <ibuclaw@gdcproject.org>
333         PR d/110359
334         * d-convert.cc (convert_for_rvalue): Only apply the @safe boolean
335         conversion to boolean fields of a union.
336         (convert_for_condition): Call convert_for_rvalue in the default case.
338 2023-06-25  Iain Buclaw  <ibuclaw@gdcproject.org>
340         * dmd/MERGE: Merge upstream dmd a45f4e9f43.
341         * dmd/VERSION: Bump version to v2.103.1.
343 2023-06-15  Marek Polacek  <polacek@redhat.com>
345         * Make-lang.in: Remove NO_PIE_CFLAGS.
347 2023-06-05  Iain Buclaw  <ibuclaw@gdcproject.org>
349         * gdc.texi (Warnings): Document -Wextra and -Wmismatched-special-enum.
350         * implement-d.texi (Special Enums): Add reference to warning option
351         -Wmismatched-special-enum.
352         * lang.opt: Add -Wextra and -Wmismatched-special-enum.
353         * types.cc (TypeVisitor::visit (TypeEnum *)): Warn when declared
354         special enum size mismatches its intrinsic type.
356 2023-05-18  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
358         * d-codegen.cc (underlying_complex_expr): Use _P defines from tree.h.
359         * d-convert.cc (convert): Ditto.
360         (convert_for_rvalue): Ditto.
362 2023-03-17  Iain Buclaw  <ibuclaw@gdcproject.org>
364         * dmd/MERGE: Merge upstream dmd 5f7552bb28.
365         * dmd/VERSION: Bump version to v2.103.0-rc.1.
367 2023-03-16  Iain Buclaw  <ibuclaw@gdcproject.org>
369         * dmd/MERGE: Merge upstream dmd 4ca4140e58.
370         * dmd/VERSION: Bump version to v2.103.0-beta.1.
371         * Make-lang.in (D_FRONTEND_OBJS): Add d/errorsink.o.
372         * d-ctfloat.cc (CTFloat::sprint): Update signature for new front-end
373         interface.
374         * d-frontend.cc (getTypeInfoType): Likewise.
375         * d-lang.cc (d_handle_option): Remove handling of -fpreview=dip25 and
376         -frevert=dip25.
377         (d_post_options): Remove enabling of sealed references language
378         feature when scoped pointers is enabled.
379         * d-tree.h (create_typeinfo): Update signature.
380         * decl.cc (DeclVisitor::finish_vtable): Update for new front-end
381         interface.
382         (DeclVisitor::visit (VarDeclaration *)): Likewise.
383         (DeclVisitor::visit (FuncDeclaration *)): Check skipCodegen to see if
384         front-end explicitly requested not to generate code.
385         * expr.cc (ExprVisitor::visit (NewExp *)): Update for new front-end
386         interface.
387         * lang.opt (fpreview=dip25): Remove.
388         (frevert=dip25): Remove.
389         * modules.cc (layout_moduleinfo_fields): Update for new front-end
390         interface.
391         (layout_moduleinfo): Likewise.
392         * runtime.def (NEWCLASS): Remove.
393         * toir.cc (IRVisitor::visit (IfStatement *)): Don't generate IR for if
394         statement list when condition is `__ctfe'.
395         * typeinfo.cc (create_typeinfo): Add generate parameter.
396         * types.cc (layout_aggregate_members): Update for new front-end
397         interface.
399 2023-03-16  Iain Buclaw  <ibuclaw@gdcproject.org>
401         PR d/109144
402         * d-codegen.cc (build_frame_type): Set frame field and type alignment.
404 2023-03-14  Iain Buclaw  <ibuclaw@gdcproject.org>
406         PR d/109108
407         * decl.cc (function_defined_in_root_p): Remove.
408         (get_symbol_decl): Set DECL_LAMBDA_FUNCTION_P on function literals.
409         (start_function): Unconditionally unset DECL_EXTERNAL
410         (set_linkage_for_decl): Give lambda functions one-only linkage.
412 2023-03-13  Iain Buclaw  <ibuclaw@gdcproject.org>
414         * decl.cc (finish_thunk): Unset DECL_EXTERNAL on thunk.
415         (make_thunk): Set DECL_EXTERNAL on thunk, don't call build_decl_tree.
416         (finish_function): Call finish_thunk on forward referenced thunks.
418 2023-03-13  Iain Buclaw  <ibuclaw@gdcproject.org>
420         * decl.cc (get_fndecl_result): New function.
421         (get_fndecl_arguments): New function.
422         (DeclVisitor::visit (FuncDeclaration *)): Adjust to call
423         get_fndecl_arguments.
424         (make_thunk): Adjust to call get_fndecl_arguments and
425         get_fndecl_result.
426         (start_function): Adjust to call get_fndecl_result.
428 2023-03-03  Iain Buclaw  <ibuclaw@gdcproject.org>
430         PR d/108763
431         * implement-d.texi (Missing Features): Document that TypeInfo-based
432         va_arg is not implemented.
434 2023-03-03  Iain Buclaw  <ibuclaw@gdcproject.org>
436         PR d/108946
437         * d-target.cc (Target::isVectorOpSupported): Allow identity ops.
438         * expr.cc (ExprVisitor::visit (IdentityExp *)): Handle vector identity
439         comparisons.
441 2023-03-03  Iain Buclaw  <ibuclaw@gdcproject.org>
443         PR d/108877
444         * imports.cc (ImportVisitor::visit (EnumDeclaration *)): Call
445         make_import on TYPE_MAIN_VARIANT.
446         (ImportVisitor::visit (AggregateDeclaration *)): Likewise.
447         (ImportVisitor::visit (ClassDeclaration *)): Likewise.
449 2023-03-03  Iain Buclaw  <ibuclaw@gdcproject.org>
451         PR d/108945
452         * d-codegen.cc (build_boolop): Evaluate vector comparison as
453         the truth_type_for vector type.
455 2023-02-23  Arsen Arsenović  <arsen@aarsen.me>
457         * implement-d.texi: Reorder index entries around @items.
459 2023-02-23  Arsen Arsenović  <arsen@aarsen.me>
461         * gdc.texi: Reorder @opindex commands to precede @items they
462         relate to.
464 2023-02-21  Iain Buclaw  <ibuclaw@gdcproject.org>
466         * Make-lang.in (D_FRONTEND_OBJS): Add d/location.o.
467         * d-lang.cc (d_init_options): Update for new front-end interface.
468         (d_post_options): Call Loc::set after handling options.
469         * dmd/MERGE: Merge upstream dmd 09faa4eacd.
470         * dmd/VERSION: Bump version to v2.102.0-beta.1.
472 2023-02-21  Iain Buclaw  <ibuclaw@gdcproject.org>
474         * d-codegen.cc (d_build_call): Remove front-end expansion of
475         side-effects in a call expression.
476         * d-gimplify.cc (d_gimplify_call_expr): Gimplify the callee before its
477         arguments.
479 2023-02-21  Iain Buclaw  <ibuclaw@gdcproject.org>
481         * decl.cc (DeclVisitor::visit (FuncDeclaration *)): Set
482         doing_semantic_analysis_p before calling functionSemantic3.
484 2023-01-02  Jakub Jelinek  <jakub@redhat.com>
486         * gdc.texi: Bump @copyrights-d year.
489 Copyright (C) 2023 Free Software Foundation, Inc.
491 Copying and distribution of this file, with or without modification,
492 are permitted in any medium without royalty provided the copyright
493 notice and this notice are preserved.