]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/d/ChangeLog
6e90fc49cca037e67006e1876b7ffa14b8fec0d3
[thirdparty/gcc.git] / gcc / d / ChangeLog
1 2023-03-16 Iain Buclaw <ibuclaw@gdcproject.org>
2
3 Backported from master:
4 2023-03-16 Iain Buclaw <ibuclaw@gdcproject.org>
5
6 PR d/109144
7 * d-codegen.cc (build_frame_type): Set frame field and type alignment.
8
9 2023-03-14 Iain Buclaw <ibuclaw@gdcproject.org>
10
11 Backported from master:
12 2023-03-14 Iain Buclaw <ibuclaw@gdcproject.org>
13
14 PR d/109108
15 * decl.cc (function_defined_in_root_p): Remove.
16 (get_symbol_decl): Set DECL_LAMBDA_FUNCTION_P on function literals.
17 (start_function): Unconditionally unset DECL_EXTERNAL
18 (set_linkage_for_decl): Give lambda functions one-only linkage.
19
20 2023-03-13 Iain Buclaw <ibuclaw@gdcproject.org>
21
22 Backported from master:
23 2023-03-13 Iain Buclaw <ibuclaw@gdcproject.org>
24
25 * decl.cc (finish_thunk): Unset DECL_EXTERNAL on thunk.
26 (make_thunk): Set DECL_EXTERNAL on thunk, don't call build_decl_tree.
27 (finish_function): Call finish_thunk on forward referenced thunks.
28
29 2023-03-13 Iain Buclaw <ibuclaw@gdcproject.org>
30
31 Backported from master:
32 2023-03-13 Iain Buclaw <ibuclaw@gdcproject.org>
33
34 * decl.cc (get_fndecl_result): New function.
35 (get_fndecl_arguments): New function.
36 (DeclVisitor::visit (FuncDeclaration *)): Adjust to call
37 get_fndecl_arguments.
38 (make_thunk): Adjust to call get_fndecl_arguments and
39 get_fndecl_result.
40 (start_function): Adjust to call get_fndecl_result.
41
42 2023-03-03 Iain Buclaw <ibuclaw@gdcproject.org>
43
44 Backported from master:
45 2023-03-03 Iain Buclaw <ibuclaw@gdcproject.org>
46
47 PR d/108877
48 * imports.cc (ImportVisitor::visit (EnumDeclaration *)): Call
49 make_import on TYPE_MAIN_VARIANT.
50 (ImportVisitor::visit (AggregateDeclaration *)): Likewise.
51 (ImportVisitor::visit (ClassDeclaration *)): Likewise.
52
53 2022-12-12 Iain Buclaw <ibuclaw@gdcproject.org>
54
55 Backported from master:
56 2022-12-12 Iain Buclaw <ibuclaw@gdcproject.org>
57
58 PR d/108055
59 * decl.cc (function_defined_in_root_p): Check all enclosing template
60 instances for definition in a root module.
61 (function_needs_inline_definition_p): Replace call to
62 function_defined_in_root_p with test for outer module `isRoot'.
63
64 2022-12-11 Iain Buclaw <ibuclaw@gdcproject.org>
65
66 * imports.cc (ImportVisitor::visit (OverloadSet *)): Remove "final"
67 and "override" from visitor method.
68
69 2022-12-11 Iain Buclaw <ibuclaw@gdcproject.org>
70
71 Backported from master:
72 2022-12-11 Iain Buclaw <ibuclaw@gdcproject.org>
73
74 PR d/108050
75 * decl.cc (DeclVisitor::visit (Import *)): Handle build_import_decl
76 returning a TREE_LIST.
77 * imports.cc (ImportVisitor::visit (OverloadSet *)): New override.
78
79 2022-11-30 Iain Buclaw <ibuclaw@gdcproject.org>
80
81 Backported from master:
82 2022-11-30 Iain Buclaw <ibuclaw@gdcproject.org>
83
84 PR d/107592
85 * toir.cc (IRVisitor::push_unrolled_continue_label): New method.
86 (IRVisitor::pop_unrolled_continue_label): New method.
87 (IRVisitor::visit (UnrolledLoopStatement *)): Use them instead of
88 push_continue_label and pop_continue_label.
89
90 2022-08-19 Release Manager
91
92 * GCC 12.2.0 released.
93
94 2022-08-16 Iain Buclaw <ibuclaw@gdcproject.org>
95
96 Backported from master:
97 2022-08-16 Iain Buclaw <ibuclaw@gdcproject.org>
98
99 PR d/106638
100 * gdc.texi: Update DIP links to point at upstream dlang/DIPs
101 repository.
102
103 2022-08-15 Iain Buclaw <ibuclaw@gdcproject.org>
104
105 Backported from master:
106 2022-08-15 Iain Buclaw <ibuclaw@gdcproject.org>
107
108 * d-tree.h (d_defer_declaration): Declare.
109 * decl.cc (function_needs_inline_definition_p): Defer checking
110 DECL_UNINLINABLE and DECL_DECLARED_INLINE_P.
111 (maybe_build_decl_tree): Call d_defer_declaration instead of
112 build_decl_tree.
113 * modules.cc (deferred_inline_declarations): New variable.
114 (build_module_tree): Set deferred_inline_declarations and a handle
115 declarations pushed to it.
116 (d_defer_declaration): New function.
117
118 2022-08-15 Iain Buclaw <ibuclaw@gdcproject.org>
119
120 Backported from master:
121 2022-08-15 Iain Buclaw <ibuclaw@gdcproject.org>
122
123 PR d/106623
124 * d-codegen.cc (underlying_complex_expr): New function.
125 (d_build_call): Handle passing native complex objects as the
126 library-defined equivalent.
127 * d-tree.h (underlying_complex_expr): Declare.
128 * expr.cc (ExprVisitor::visit (DotVarExp *)): Call
129 underlying_complex_expr instead of build_vconvert.
130
131 2022-08-09 Iain Buclaw <ibuclaw@gdcproject.org>
132
133 Backported from master:
134 2022-08-09 Iain Buclaw <ibuclaw@gdcproject.org>
135
136 PR d/106563
137 * decl.cc (DeclVisitor::visit (FuncDeclaration *)): Set semanticRun
138 before generating its symbol.
139 (function_defined_in_root_p): New function.
140 (function_needs_inline_definition_p): New function.
141 (maybe_build_decl_tree): New function.
142 (get_symbol_decl): Call maybe_build_decl_tree before returning symbol.
143 (start_function): Use function_defined_in_root_p instead of inline
144 test for locally defined symbols.
145 (set_linkage_for_decl): Check for inline functions before private or
146 protected symbols.
147
148 2022-08-08 Iain Buclaw <ibuclaw@gdcproject.org>
149
150 Backported from master:
151 2022-08-08 Iain Buclaw <ibuclaw@gdcproject.org>
152
153 PR d/106555
154 * d-target.cc (Target::isReturnOnStack): Check for return type size.
155
156 2022-07-26 Iain Buclaw <ibuclaw@gdcproject.org>
157
158 * dmd/MERGE: Merge upstream dmd 76e3b41375.
159 * dmd/VERSION: Bump version to v2.100.1.
160 * decl.cc (DeclVisitor::visit (VarDeclaration *)): Evaluate RHS
161 of noreturn declaration expressions first.
162 * expr.cc (ExprVisitor::visit (AssignExp *)): Don't generate
163 assignment for noreturn types.
164
165 2022-07-04 Iain Buclaw <ibuclaw@gdcproject.org>
166
167 Backported from master:
168 2022-06-29 Iain Buclaw <ibuclaw@gdcproject.org>
169
170 PR d/106139
171 * d-convert.cc (convert_expr): Handle casting from array to vector.
172 (convert_for_rvalue): Rewrite vector to array casts of the same
173 element type into a constructor.
174 (convert_for_assignment): Return calling convert_for_rvalue.
175 * expr.cc (ExprVisitor::visit (VectorExp *)): Handle generating a
176 vector expression from a static array.
177 * toir.cc (IRVisitor::visit (ReturnStatement *)): Call
178 convert_for_rvalue on return value.
179
180 2022-06-15 Iain Buclaw <ibuclaw@gdcproject.org>
181
182 Backported from master:
183 2022-06-15 Iain Buclaw <ibuclaw@gdcproject.org>
184
185 * typeinfo.cc (make_internal_typeinfo): Set TYPE_ARTIFICIAL.
186
187 2022-06-13 Iain Buclaw <ibuclaw@gdcproject.org>
188
189 Backported from master:
190 2022-06-13 Iain Buclaw <ibuclaw@gdcproject.org>
191
192 * d-tree.h (check_typeinfo_type): Add Expression* parameter.
193 (build_typeinfo): Likewise. Declare new override.
194 * expr.cc (ExprVisitor): Call build_typeinfo with Expression*.
195 * typeinfo.cc (check_typeinfo_type): Include expression in the
196 diagnostic message.
197 (build_typeinfo): New override.
198
199 2022-05-31 Iain Buclaw <ibuclaw@gdcproject.org>
200
201 Backported from master:
202 2022-05-31 Iain Buclaw <ibuclaw@gdcproject.org>
203
204 PR d/105544
205 * d-lang.cc (d_parse_file): Zero padding past the end of the stdin
206 buffer so the D lexer has a sentinel to stop parsing at.
207
208 2022-05-15 Iain Buclaw <ibuclaw@gdcproject.org>
209
210 * dmd/MERGE: Merge upstream dmd a53934d18.
211 * dmd/VERSION: Update version to v2.100.0.
212 * d-codegen.cc (d_decl_context): Use resolvedLinkage to get
213 declaration linkage.
214 (build_struct_literal): Track offset in bits.
215 * d-gimplify.cc (d_gimplify_modify_expr): Check both operands for a
216 bit-field reference.
217 * d-lang.cc (d_post_options): Set flag_rtti and flag_exceptions if
218 -fno-druntime was seen on command-line.
219 (d_type_promotes_to): Use resolvedLinkage to get declaration linkage.
220 * decl.cc (make_thunk): Likewise.
221 * types.cc (layout_aggregate_members): Ignore anonymous fields in
222 total count.
223
224 2022-05-06 Release Manager
225
226 * GCC 12.1.0 released.
227
228 2022-05-05 Iain Buclaw <ibuclaw@gdcproject.org>
229
230 * dmd/MERGE: Merge upstream dmd 88de5e369.
231
232 2022-05-03 Iain Buclaw <ibuclaw@gdcproject.org>
233
234 * dmd/MERGE: Merge upstream dmd 081d61e15.
235 * dmd/VERSION: Update version to v2.100.0-rc.1.
236
237 2022-04-28 Iain Buclaw <ibuclaw@gdcproject.org>
238
239 * dmd/MERGE: Merge upstream dmd 313d28b3d.
240 * d-port.cc (Port::memicmp): Use d_size_t instead of size_t.
241 (Port::valcpy): Likewise.
242
243 2022-04-21 Iain Buclaw <ibuclaw@gdcproject.org>
244
245 * dmd/MERGE: Merge upstream dmd eb7bee331.
246 * dmd/VERSION: Update version to v2.100.0-beta.1.
247 * d-lang.cc (d_handle_option): Handle OPT_frevert_dip1000.
248 * lang.opt (frevert=dip1000): New option.
249
250 2022-04-13 Iain Buclaw <ibuclaw@gdcproject.org>
251
252 * Make-lang.in (D_FRONTEND_OBJS): Add d/common-bitfields.o,
253 d/mustuse.o.
254 * d-ctfloat.cc (CTFloat::isIdentical): Don't treat NaN values as
255 identical.
256 * dmd/MERGE: Merge upstream dmd 4d1bfcf14.
257 * expr.cc (ExprVisitor::visit (VoidInitExp *)): New.
258
259 2022-04-03 Iain Buclaw <ibuclaw@gdcproject.org>
260
261 * d-lang.cc: Include dmd/template.h.
262 (d_parse_file): Call printTemplateStats when vtemplates is set.
263 * decl.cc (start_function): Remove OPT_Wtemplates warning.
264 * lang.opt (Wtemplates): Remove.
265
266 2022-04-02 Iain Buclaw <ibuclaw@gdcproject.org>
267
268 * dmd/MERGE: Merge upstream dmd 47871363d.
269 * d-builtins.cc (d_init_versions): Add predefined version identifiers
270 D_PreConditions, D_PostConditions, and D_Invariants.
271 * d-codegen.cc (d_build_call): Update for new front-end interface.
272 (build_frame_type): Generate reference field for NRVO variables with
273 nested references.
274 (build_closure): Generate assignment of return address to closure.
275 * d-tree.h (DECL_INSTANTIATED): Use DECL_LANG_FLAG_2.
276 (bind_expr): Remove.
277 * decl.cc (DeclVisitor::visit (FuncDeclaration *)): Update for new
278 front-end interface.
279 (get_symbol_decl): Likewise.
280 (get_decl_tree): Check DECL_LANG_FRAME_FIELD before DECL_LANG_NRVO.
281 Dereference the field when both are set.
282 * expr.cc (ExprVisitor::visit (DeleteExp *)): Update for new front-end
283 interface.
284 * modules.cc (get_internal_fn): Likewise.
285 * toir.cc (IRVisitor::visit (ReturnStatement *)): Likewise.
286
287 2022-03-21 Iain Buclaw <ibuclaw@gdcproject.org>
288
289 PR d/105004
290 * d-codegen.cc (build_struct_literal): Use complex_expr to build
291 complex expressions from __c_complex types.
292
293 2022-03-21 Iain Buclaw <ibuclaw@gdcproject.org>
294
295 PR d/104911
296 * dmd/MERGE: Merge upstream dmd 2503f17e5.
297 * d-convert.cc (convert_expr): Replace d_uns64 with dinteger_t.
298 * d-lang.cc: Remove dmd/root/file.h include.
299 (d_handle_option): Update for new front-end interface.
300 (d_parse_file): Likewise.
301
302 2022-03-13 Iain Buclaw <ibuclaw@gdcproject.org>
303
304 * dmd/MERGE: Merge upstream dmd 02a3fafc6.
305 * dmd/VERSION: Update version to v2.099.0.
306 * imports.cc (ImportVisitor::visit (EnumDeclaration *)): Don't cache
307 decl in front-end AST node.
308 (ImportVisitor::visit (AggregateDeclaration *)): Likewise.
309 (ImportVisitor::visit (ClassDeclaration *)): Likewise.
310
311 2022-03-11 Iain Buclaw <ibuclaw@gdcproject.org>
312
313 * imports.cc (imported_decls): Define.
314 (class ImportVisitor): Add result_ field.
315 (ImportVisitor::result): New method.
316 (ImportVisitor::visit (Module *)): Store decl to result_.
317 (ImportVisitor::visit (Import *)): Likewise.
318 (ImportVisitor::visit (AliasDeclaration *)): Don't cache decl in
319 front-end AST node.
320 (ImportVisitor::visit (OverDeclaration *)): Likewise.
321 (ImportVisitor::visit (FuncDeclaration *)): Likewise.
322 (ImportVisitor::visit (Declaration *)): Likewise.
323 (build_import_decl): Use imported_decls to cache and lookup built
324 declarations.
325
326 2022-03-11 Iain Buclaw <ibuclaw@gdcproject.org>
327
328 PR translation/104552
329 * lang.opt (fdump-cxx-spec=): Fix typo in argument handle.
330 (fpreview=fixaliasthis): Quote `alias this' as code.
331
332 2022-03-02 Iain Buclaw <ibuclaw@gdcproject.org>
333
334 * dmd/MERGE: Merge upstream dmd 423f19b41.
335
336 2022-02-28 Iain Buclaw <ibuclaw@gdcproject.org>
337
338 * d-target.cc (Target::_init): Initialize C type size fields.
339 * dmd/MERGE: Merge upstream dmd cf63dd8e5.
340 * dmd/VERSION: Update version to v2.099.0-rc.1.
341
342 2022-02-20 Iain Buclaw <ibuclaw@gdcproject.org>
343
344 * expr.cc (ExprVisitor::visit (DeleteExp *)): Remove handling of
345 deleting GC allocated classes.
346 * runtime.def (DELCLASS): Remove.
347 (DELINTERFACE): Remove.
348
349 2022-02-20 Iain Buclaw <ibuclaw@gdcproject.org>
350
351 * dmd/MERGE: Merge upstream dmd cb49e99f8.
352 * dmd/VERSION: Update version to v2.099.0-beta.1.
353 * decl.cc (layout_class_initializer): Update call to NewExp::create.
354 * expr.cc (ExprVisitor::visit (DeleteExp *)): Remove handling of
355 deleting arrays and pointers.
356 (ExprVisitor::visit (DotVarExp *)): Convert complex types to the
357 front-end library type representing them.
358 (ExprVisitor::visit (StringExp *)): Use getCodeUnit instead of charAt
359 to get the value of each index in a string expression.
360 * runtime.def (DELMEMORY): Remove.
361 (DELARRAYT): Remove.
362 * types.cc (TypeVisitor::visit (TypeEnum *)): Handle anonymous enums.
363
364 2022-02-16 Iain Buclaw <ibuclaw@gdcproject.org>
365
366 * d-builtins.cc (d_build_builtins_module): Set purity of DECL_PURE_P
367 functions to PURE::const_.
368 * d-gimplify.cc (bit_field_ref): New function.
369 (d_gimplify_modify_expr): Handle implicit casting for assignments to
370 bit-fields.
371 (d_gimplify_unary_expr): New function.
372 (d_gimplify_binary_expr): New function.
373 (d_gimplify_expr): Handle UNARY_CLASS_P and BINARY_CLASS_P.
374 * d-target.cc (Target::_init): Initialize bitFieldStyle.
375 (TargetCPP::parameterType): Update signature.
376 (Target::supportsLinkerDirective): New function.
377 * dmd/MERGE: Merge upstream dmd 52844d4b1.
378 * expr.cc (ExprVisitor::visit (ThrowExp *)): New function.
379 * types.cc (d_build_bitfield_integer_type): New function.
380 (insert_aggregate_bitfield): New function.
381 (layout_aggregate_members): Handle inserting bit-fields into an
382 aggregate type.
383
384 2022-01-31 Martin Liska <mliska@suse.cz>
385
386 PR d/104287
387 * decl.cc (d_finish_decl): Remove trailing dot.
388
389 2022-01-28 Martin Liska <mliska@suse.cz>
390
391 * decl.cc (d_finish_decl): Do not use leading capital letter.
392
393 2022-01-17 Martin Liska <mliska@suse.cz>
394
395 * d-gimplify.cc: Rename .c names to .cc.
396 * d-incpath.cc: Likewise.
397 * lang-specs.h: Likewise.
398
399 2022-01-03 Iain Buclaw <ibuclaw@gdcproject.org>
400
401 PR d/103840
402 * dmd/MERGE: Merge upstream dmd 001bfd97b.
403 * Make-lang.in (D_FRONTEND_OBJS): Rename d/complex.o to
404 d/root-complex.o, and d/utf.o to d/root/utf.o.
405
406 2022-01-03 Jakub Jelinek <jakub@redhat.com>
407
408 * gdc.texi: Bump @copyrights-d year.
409
410 \f
411 Copyright (C) 2022 Free Software Foundation, Inc.
412
413 Copying and distribution of this file, with or without modification,
414 are permitted in any medium without royalty provided the copyright
415 notice and this notice are preserved.