1 2025-04-29 Iain Buclaw <ibuclaw@gdcproject.org>
4 * d-tree.h (build_clear_padding_call): New prototype.
5 * d-codegen.cc (build_clear_padding_call): New function.
6 (build_memset_call): Remove generated call to __builtin_memcpy.
7 (build_address): Replace generated call to __builtin_memset with
8 __builtin_clear_padding.
9 (build_array_from_exprs): Likewise.
10 * expr.cc (ExprVisitor::visit (AssignExp *)): Remove generated call to
12 (ExprVisitor::visit (ArrayLiteralExp *)): Likewise. Insert call to
13 __builtin_clear_padding after copying array into GC memory.
14 (ExprVisitor::visit (StructLiteralExp *)): Remove generated call to
16 * toir.cc (IRVisitor::visit (ReturnStatement *)): Likewise.
18 2025-04-17 Iain Buclaw <ibuclaw@gdcproject.org>
20 * dmd/MERGE: Merge upstream dmd 956e73d64e.
22 2025-04-15 Iain Buclaw <ibuclaw@gdcproject.org>
25 * types.cc (TypeVisitor::visit (TypeEnum *)): Propagate flags of main
26 enum types to all forward-referenced variants.
28 2025-04-15 Iain Buclaw <ibuclaw@gdcproject.org>
31 * decl.cc (DeclVisitor::visit (VarDeclaration *)): Check front-end
32 type size before building the VAR_DECL. Allow C symbols to have a
35 2025-04-15 Iain Buclaw <ibuclaw@gdcproject.org>
38 * imports.cc (ImportVisitor::visit (OverloadSet *)): Don't push
39 NULL_TREE to vector of import symbols.
41 2025-04-12 Iain Buclaw <ibuclaw@gdcproject.org>
44 * d-compiler.cc: Include dmd/errors.h.
45 (Compiler::onImport): Implement.
46 * d-lang.cc (d_handle_option): Handle -finclude-imports.
47 (d_parse_file): Run semantic on included imports.
48 * gdc.texi: Document -finclude-imports.
49 * lang.opt: Add finclude-imports.
50 * lang.opt.urls: Regenerate.
52 2025-04-12 Iain Buclaw <ibuclaw@gdcproject.org>
55 * d-lang.cc (d_parse_file): Use endswith in test for -fonly= argument.
56 * d-spec.cc (lang_specific_driver): Rework -fonly= and pass all input
57 files to the front-end compiler when the option is seen.
59 2025-04-11 Iain Buclaw <ibuclaw@gdcproject.org>
61 * dmd/MERGE: Merge upstream dmd 1b34fea478.
63 2025-04-09 Iain Buclaw <ibuclaw@gdcproject.org>
66 * modules.cc: Include debug.h
67 (d_finish_compilation): Call debug_hooks->type_decl on all TYPE_DECLs.
68 * types.cc: Remove toplev.h include.
69 (finish_aggregate_type): Don't call rest_of_type_compilation or
70 rest_of_decl_compilation on type.
71 (TypeVisitor::visit (TypeEnum *)): Likewise.
73 2025-04-09 Iain Buclaw <ibuclaw@gdcproject.org>
76 * d-tree.h (build_padded_constructor): New prototype.
77 * d-codegen.cc (build_padded_constructor): New function.
78 (d_array_value): Call it.
79 (build_memset_call): Likewise.
80 (build_struct_literal): Likewise.
81 (underlying_complex_expr): Likewise.
82 (build_array_from_val): Likewise.
83 (build_array_from_exprs): Likewise.
84 (d_build_call): Likewise.
85 (get_frame_for_symbol): Likewise.
86 * d-convert.cc (convert_for_rvalue): Likewise.
87 (convert_for_assignment): Likewise.
88 * decl.cc (class DeclVisitor): Likewise.
89 * expr.cc (class ExprVisitor): Likewise.
90 * modules.cc (layout_moduleinfo): Likewise.
91 * typeinfo.cc (class TypeInfoVisitor): Likewise.
93 2025-04-08 Iain Buclaw <ibuclaw@gdcproject.org>
95 * dmd/MERGE: Merge upstream dmd 51816cd01d.
97 2025-04-06 Sandra Loosemore <sloosemore@baylibre.com>
99 * lang.opt.urls: Regenerate.
101 2025-04-02 Iain Buclaw <ibuclaw@gdcproject.org>
103 * dmd/MERGE: Merge upstream dmd ed17b3e95d.
105 2025-03-31 Iain Buclaw <ibuclaw@gdcproject.org>
107 * dmd/MERGE: Merge upstream dmd c6863be720.
108 * dmd/VERSION: Bump version to v2.111.0.
110 2025-03-31 Iain Buclaw <ibuclaw@gdcproject.org>
113 * decl.cc (aggregate_initializer_decl): Set explicit decl alignment of
115 * expr.cc (ExprVisitor::visit (NewExp *)): Likewise.
116 * types.cc (TypeVisitor::visit (TypeClass *)): Mark the record type of
119 2025-03-30 Sandra Loosemore <sloosemore@baylibre.com>
121 * lang.opt.urls: Regenerate.
123 2025-03-26 Iain Buclaw <ibuclaw@gdcproject.org>
125 * dmd/MERGE: Merge upstream dmd 02a64d2e13.
127 2025-03-23 Iain Buclaw <ibuclaw@gdcproject.org>
130 * types.cc (finish_aggregate_type): Propagate TYPE_PACKED to variants.
132 2025-03-22 Iain Buclaw <ibuclaw@gdcproject.org>
134 * dmd/MERGE: Merge upstream dmd 032e24446b.
135 * dmd/VERSION: Bump version to v2.111.0-rc.1.
137 2025-03-22 Iain Buclaw <ibuclaw@gdcproject.org>
139 * dmd/MERGE: Merge upstream dmd 9d2f034398.
141 2025-03-22 Iain Buclaw <ibuclaw@gdcproject.org>
143 * dmd/MERGE: Merge upstream dmd 94950cae58.
144 * d-lang.cc (d_handle_option): Add case for CppStdRevisionCpp23.
145 * gdc.texi: Document -fextern-std=c++23.
146 * lang.opt (fextern-std=): Add c++23.
148 2025-03-22 Iain Buclaw <ibuclaw@gdcproject.org>
150 * dmd/MERGE: Merge upstream dmd 8db14cf846.
152 2025-03-22 Iain Buclaw <ibuclaw@gdcproject.org>
154 * runtime.def (INVARIANT): Update signature of run-time function.
156 2025-03-20 Iain Buclaw <ibuclaw@gdcproject.org>
159 * d-lang.cc (d_handle_option): Adjust quoted options.
161 2025-03-18 Iain Buclaw <ibuclaw@gdcproject.org>
163 * dmd/MERGE: Merge upstream dmd fde0f8c40a.
165 2025-03-18 Iain Buclaw <ibuclaw@gdcproject.org>
167 * dmd/MERGE: Merge upstream dmd 51be8bb729.
169 2025-03-16 Iain Buclaw <ibuclaw@gdcproject.org>
171 * dmd/MERGE: Merge upstream dmd 603225372b.
172 * dmd/VERSION: Bump version to v2.111.0-beta.1.
173 * d-builtins.cc (build_frontend_type): Update for new front-end
175 * decl.cc (Class DeclVisitor): Likewise.
176 (maybe_build_decl_tree): Likewise.
177 (get_vtable_decl): Likewise.
178 (layout_class_initializer): Likewise.
179 * expr.cc (class ExprVisitor): Likewise.
180 (ExprVisitor::visit (NewExp *)): Implement placement new for class,
181 struct, and pointer types.
182 * modules.cc (get_internal_fn): Update for new front-end interface.
184 2025-03-16 Iain Buclaw <ibuclaw@gdcproject.org>
186 * dmd/MERGE: Merge upstream dmd 53a1cc8d13.
187 * d-tree.h (create_typeinfo): Change second parameter to Scope *.
188 (speculative_type_p): Remove prototype.
189 * d-frontend.cc (getTypeInfoType): Adjust.
190 * decl.cc: Include dmd/typinf.h.
191 (DeclVisitor::visit (TypeInfoDeclaration *)): Update for new front-end
193 * typeinfo.cc (create_typeinfo): Likewise.
194 (class SpeculativeTypeVisitor): Remove class.
195 (speculative_type_p): Remove function.
197 2025-03-16 Iain Buclaw <ibuclaw@gdcproject.org>
199 * dmd/MERGE: Merge upstream dmd ffbad272b6.
200 * d-tree.h (make_location_t): Add overload taking a const SourceLoc &.
201 * d-codegen.cc (make_location_t): Likewise.
202 * d-diagnostic.cc (d_diagnostic_report_diagnostic): Change first
203 parameter type to const SourceLoc &.
204 (verrorReport): Update for new front-end interface.
205 (verrorReportSupplemental): Likewise.
206 * d-frontend.cc (eval_builtin): Likewise.
207 (getTypeInfoType): Likewise.
208 * d-lang.cc (d_parse_file): Likewise.
209 * d-target.cc (Target::va_listType): Likewise.
210 (Target::getTargetInfo): Likewise.
211 * decl.cc (build_decl_tree): Likewise.
212 * imports.cc (ImportVisitor::visit (Module *)): Likewise.
213 * modules.cc (get_internal_fn): Likewise.
215 2025-03-15 Iain Buclaw <ibuclaw@gdcproject.org>
217 * dmd/MERGE: Merge upstream dmd d29e3eca45.
218 * d-codegen.cc (can_elide_copy_p): Update for new front-end interface.
219 * d-lang.cc (d_handle_option): Likewise.
220 * expr.cc (class ExprVisitor): Likewise.
222 2025-03-15 Iain Buclaw <ibuclaw@gdcproject.org>
224 * dmd/MERGE: Merge upstream b7e3b3b617.
226 2025-03-11 Iain Buclaw <ibuclaw@gdcproject.org>
229 * decl.cc (get_symbol_decl): Don't set TREE_READONLY for __result
232 2025-02-28 Iain Buclaw <ibuclaw@gdcproject.org>
235 * d-codegen.cc (build_float_cst): Change new_value type from real_t to
237 * d-ctfloat.cc (CTFloat::fabs): Default initialize the return value.
238 (CTFloat::ldexp): Likewise.
239 (CTFloat::parse): Likewise.
240 * d-longdouble.cc (longdouble::add): Likewise.
241 (longdouble::sub): Likewise.
242 (longdouble::mul): Likewise.
243 (longdouble::div): Likewise.
244 (longdouble::mod): Likewise.
245 (longdouble::neg): Likewise.
246 * d-port.cc (Port::isFloat32LiteralOutOfRange): Likewise.
247 (Port::isFloat64LiteralOutOfRange): Likewise.
249 2025-02-25 Iain Buclaw <ibuclaw@gdcproject.org>
252 * implement-d.texi: Document CET version and traits key.
254 2025-02-25 Iain Buclaw <ibuclaw@gdcproject.org>
256 * Make-lang.in (check_gdc_parallelize): Increase to 128.
258 2025-01-29 Arsen Arsenović <arsen@aarsen.me>
259 Jakub Jelinek <jakub@redhat.com>
262 * Make-lang.in (DCOMPILE, DPOSTCOMPILE): Use $(basename $(@F))
265 2025-01-22 Arsen Arsenović <arsen@aarsen.me>
267 * lang-specs.h: Replace %{nostdinc*} with %{nostdinc}.
269 2025-01-20 Iain Buclaw <ibuclaw@gdcproject.org>
272 * expr.cc (ExprVisitor::visit (PtrExp *)): Get the offset as a
273 dinteger_t rather than a size_t.
274 (ExprVisitor::visit (SymOffExp *)): Likewise.
276 2025-01-18 Iain Buclaw <ibuclaw@gdcproject.org>
278 * dmd/MERGE: Merge upstream dmd d115713410.
280 2025-01-16 Iain Buclaw <ibuclaw@gdcproject.org>
283 * typeinfo.cc (create_tinfo_types): Update internal Typenfo
285 (TypeInfoVisitor::visit (TypeInfoClassDeclaration *)): Likewise.
287 2025-01-14 Iain Buclaw <ibuclaw@gdcproject.org>
292 * dmd/MERGE: Merge upstream dmd d6f693b46a.
293 * d-incpath.cc (add_import_paths): Update for new front-end interface.
295 2025-01-12 Iain Buclaw <ibuclaw@gdcproject.org>
297 * dmd/MERGE: Merge upstream dmd c7902293d7.
298 * dmd/VERSION: Bump version to v2.110.0-rc.1.
300 2025-01-12 Iain Buclaw <ibuclaw@gdcproject.org>
302 * dmd/MERGE: Merge upstream dmd c57da0cf59.
303 * d-codegen.cc (can_elide_copy_p): New.
304 (d_build_call): Use it.
305 * d-lang.cc (d_post_options): Update for new front-end interface.
307 2025-01-11 Iain Buclaw <ibuclaw@gdcproject.org>
309 * dmd/MERGE: Merge upstream dmd 82a5d2a7c4.
310 * d-lang.cc (d_handle_option): Handle new option `-fpreview=safer'.
311 * expr.cc (ExprVisitor::NewExp): Remove gcc_unreachable for the
312 generation of `_d_newThrowable'.
313 * lang.opt: Add -fpreview=safer.
315 2025-01-11 Iain Buclaw <ibuclaw@gdcproject.org>
317 * dmd/MERGE: Merge upstream dmd 2b89c2909d.
318 * Make-lang.in (D_FRONTEND_OBJS): Rename d/basicmangle.o to
319 d/mangle-basic.o, d/cppmangle.o to d/mangle-cpp.o, and d/dmangle.o to
321 (d/mangle-%.o): New rule.
322 * d-builtins.cc (maybe_set_builtin_1): Update for new front-end
324 * d-diagnostic.cc (verrorReport): Likewise.
325 (verrorReportSupplemental): Likewise.
326 * d-frontend.cc (getTypeInfoType): Likewise.
327 * d-lang.cc (d_init_options): Likewise.
328 (d_handle_option): Likewise.
329 (d_post_options): Likewise.
330 * d-target.cc (TargetC::contributesToAggregateAlignment): New.
331 * d-tree.h (create_typeinfo): Adjust prototype.
332 * decl.cc (layout_struct_initializer): Update for new front-end
334 * typeinfo.cc (create_typeinfo): Remove generate parameter.
335 * types.cc (layout_aggregate_members): Update for new front-end
338 2025-01-10 Iain Buclaw <ibuclaw@gdcproject.org>
340 * dmd/MERGE: Merge upstream dmd 4ccb01fde5.
341 * Make-lang.in (D_FRONTEND_OBJS): Rename d/foreachvar.o to
342 d/visitor-foreachvar.o, d/visitor.o to d/visitor-package.o, and
343 d/statement_rewrite_walker.o to d/visitor-statement_rewrite_walker.o.
344 (D_FRONTEND_OBJS): Rename
345 d/{parsetime,permissive,postorder,transitive}visitor.o to
346 d/visitor-{parsetime,permissive,postorder,transitive}.o.
347 (D_FRONTEND_OBJS): Remove d/sapply.o.
348 (d.tags): Add dmd/common/*.h.
349 (d/visitor-%.o:): New rule.
350 * d-codegen.cc (get_frameinfo): Update for new front-end interface.
352 2025-01-10 Iain Buclaw <ibuclaw@gdcproject.org>
354 * dmd/MERGE: Merge upstream dmd 6884b433d2.
355 * d-builtins.cc (build_frontend_type): Update for new front-end
357 (d_build_builtins_module): Likewise.
358 (matches_builtin_type): Likewise.
359 (covariant_with_builtin_type_p): Likewise.
360 * d-codegen.cc (lower_struct_comparison): Likewise.
361 (call_side_effect_free_p): Likewise.
362 * d-compiler.cc (Compiler::paintAsType): Likewise.
363 * d-convert.cc (convert_expr): Likewise.
364 (convert_for_assignment): Likewise.
365 * d-target.cc (Target::isVectorTypeSupported): Likewise.
366 (Target::isVectorOpSupported): Likewise.
367 (Target::isReturnOnStack): Likewise.
368 * decl.cc (get_symbol_decl): Likewise.
369 * expr.cc (build_return_dtor): Likewise.
370 * imports.cc (class ImportVisitor): Likewise.
371 * toir.cc (class IRVisitor): Likewise.
372 * types.cc (class TypeVisitor): Likewise.
374 2025-01-10 Iain Buclaw <ibuclaw@gdcproject.org>
376 * dmd/MERGE: Merge upstream dmd 34875cd6e1.
377 * dmd/VERSION: Bump version to v2.110.0-beta.1.
378 * Make-lang.in (D_FRONTEND_OBJS): Add d/deps.o, d/timetrace.o.
379 * decl.cc (class DeclVisitor): Update for new front-end interface.
380 * expr.cc (class ExprVisitor): Likewise
381 * typeinfo.cc (check_typeinfo_type): Likewise.
383 2025-01-05 Iain Buclaw <ibuclaw@gdcproject.org>
385 * dmd/MERGE: Merge upstream dmd 66b93fc24a.
386 * dmd/VERSION: Bump version to v2.109.1.
387 * d-builtins.cc (build_frontend_type): Update for new front-end
389 (matches_builtin_type): Likewise.
390 * d-codegen.cc (identity_compare_p): Likewise.
391 (call_side_effect_free_p): Likewise.
392 * d-convert.cc (convert_expr): Likewise.
393 (check_valist_conversion): Likewise.
394 * d-lang.cc (d_types_compatible_p): Likewise.
395 * d-target.cc (Target::isVectorTypeSupported): Likewise.
396 (Target::isReturnOnStack): Likewise.
397 (Target::preferPassByRef): Likewise.
398 * decl.cc (class DeclVisitor): Likewise.
399 * expr.cc (class ExprVisitor): Likewise.
400 * typeinfo.cc (class TypeInfoVisitor): Likewise.
401 * types.cc (class TypeVisitor): Likewise.
403 2025-01-05 Iain Buclaw <ibuclaw@gdcproject.org>
405 * decl.cc (DeclVisitor::finish_vtable): Update for new front-end
407 * dmd/MERGE: Merge upstream dmd 07bc5b9b3c.
408 * dmd/VERSION: Bump version to v2.109.0.
410 2025-01-05 Iain Buclaw <ibuclaw@symmetryinvestments.com>
412 * Make-lang.in (D_FRONTEND_OBJS): Add d/attribsem.o,
413 d/common-charactertables.o, d/common-identifiertables.o.
414 * d-attribs.cc (apply_user_attributes): Update for new front-end
416 * d-builtins.cc (d_init_versions): Predefine CppRuntime_GNU.
417 * d-incpath.cc (add_globalpaths): Update for new front-end interface.
418 (add_filepaths): Likewise.
419 (add_import_paths): Likewise.
420 * d-lang.cc (d_post_options): Likewise.
421 * dmd/MERGE: Merge upstream dmd c11e1d1708.
422 * dmd/VERSION: Bump version to v2.108.1.
424 2025-01-02 Jakub Jelinek <jakub@redhat.com>
426 * gdc.texi: Bump @copyrights-d year.
429 Copyright (C) 2025 Free Software Foundation, Inc.
431 Copying and distribution of this file, with or without modification,
432 are permitted in any medium without royalty provided the copyright
433 notice and this notice are preserved.