]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/d/ChangeLog
Daily bump.
[thirdparty/gcc.git] / gcc / d / ChangeLog
1 2021-12-20 Iain Buclaw <ibuclaw@gdcproject.org>
2
3 * dmd/MERGE: Merge upstream dmd ad8412530.
4 * expr.cc (ExprVisitor::visit (DeleteExp *)): Remove code generation
5 of _d_delstruct.
6 * runtime.def (DELSTRUCT): Remove.
7
8 2021-12-15 Iain Buclaw <ibuclaw@gdcproject.org>
9
10 * d-lang.cc (d_init_options): Set default -fextern-std= to C++17.
11 * dmd/MERGE: Merge upstream dmd 93108bb9e.
12 * gdc.texi (Runtime Options): Document the default for -fextern-std=.
13
14 2021-12-10 Iain Buclaw <ibuclaw@gdcproject.org>
15
16 PR d/103529
17 * dmd/MERGE: Merge upstream dmd 3982604c5.
18 * Make-lang.in (D_FRONTEND_OBJS): Add d/root-optional.o.
19 * d-attribs.cc (build_attributes): Update for new front-end interface.
20 * d-codegen.cc (d_build_call): Likewise.
21 * d-compiler.cc (Compiler::paintAsType): Likewise.
22 * d-lang.cc (d_handle_option): Remove OPT_fpreview_intpromote, add
23 handling of OPT_frevert_intpromote.
24 * d-port.cc (Port::valcpy): Assert buffer is aligned.
25 * d-target.cc (Target::isVectorOpSupported): Update for new front-end
26 interface.
27 * decl.cc (layout_class_initializer): Likewise.
28 * expr.cc (lvalue_p): Likewise.
29 (binop_assignment): Likewise.
30 (ExprVisitor::visit): Likewise.
31 (ExprVisitor::visit (AssignExp *)): Remove generation of _d_arrayctor
32 and _d_arraysetctor library helpers.
33 (ExprVisitor::visit (VarExp *)): Support __traits(initSymbol).
34 * intrinsics.cc (expand_intrinsic_rotate): Update for new front-end
35 interface.
36 * lang.opt (fpreview=intpromote): Remove.
37 (frevert=intpromote): New.
38 * runtime.def (ARRAYCTOR): Remove.
39 (ARRAYSETCTOR): Remove.
40 * toir.cc (IRVisitor::visit): Update for new front-end interface.
41 * types.cc (layout_aggregate_members): Likewise.
42 * dmd/root/optional.d: New file.
43 * dmd/root/optional.h: New file.
44
45 2021-12-10 Iain Buclaw <ibuclaw@gdcproject.org>
46
47 * decl.cc (get_symbol_decl): Align methods to MINIMUM_METHOD_BOUNDARY.
48
49 2021-12-09 Martin Liska <mliska@suse.cz>
50
51 * expr.cc: Call memcpy only when length != 0.
52
53 2021-12-08 Iain Buclaw <ibuclaw@gdcproject.org>
54
55 * dmd/MERGE: Merge upstream dmd 568496d5b.
56 * Make-lang.in (D_FRONTEND_OBJS): Add d/common-file.o,
57 d/common-outbuffer.o, d/common-string.o, d/file_manager.o,
58 d/importc.o. Remove d/root-outbuffer.o.
59 (d/common-%.o): New recipe.
60 * d-builtins.cc (build_frontend_type): Update for new front-end
61 interface.
62 (d_build_d_type_nodes): Set noreturn_type_node.
63 * d-codegen.cc (d_build_call): Don't call function if one of the
64 arguments is type 'noreturn'.
65 (build_vthis_function): Propagate TYPE_QUAL_VOLATILE from original
66 function type.
67 * d-frontend.cc (eval_builtin): Update signature.
68 (getTypeInfoType): Likewise.
69 (toObjFile): New function.
70 * d-gimplify.cc (d_gimplify_call_expr): Always evaluate arguments from
71 left to right.
72 * d-lang.cc (d_handle_option): Handle OPT_ftransition_in.
73 (d_parse_file): Don't generate D main if it is declared in user code.
74 * d-tree.h (CALL_EXPR_ARGS_ORDERED): Remove.
75 (enum d_tree_index): Add DTI_BOTTOM_TYPE.
76 (noreturn_type_node): New.
77 * decl.cc (apply_pragma_crt): Remove.
78 (DeclVisitor::visit): Update for new front-end interface.
79 (DeclVisitor::visit (PragmaDeclaration *)): Don't handle
80 crt_constructor and crt_destructor pragmas.
81 (DeclVisitor::visit (VarDeclaration *)): Don't generate declarations
82 of type 'noreturn'.
83 (DeclVisitor::visit (FuncDeclaration *)): Stop adding parameters when
84 'noreturn' type has been encountered.
85 (get_symbol_decl): Set DECL_STATIC_CONSTRUCTOR and
86 DECL_STATIC_DESTRUCTOR on decl node if requested.
87 (aggregate_initializer_decl): Update for new front-end interface.
88 * expr.cc (ExprVisitor::visit (CallExp *)): Always use the 'this'
89 object as the result of calling any constructor function.
90 (ExprVisitor::visit): Update for new front-end interface.
91 * gdc.texi (Runtime Options): Document -fmain and -ftransition=in.
92 * lang.opt (ftransition=in): New option.
93 * modules.cc (get_internal_fn): Update for new front-end interface.
94 * types.cc (TypeVisitor::visit): Likewise.
95 (TypeVisitor::visit (TypeNoreturn *)): Return noreturn_type_node.
96 (TypeVisitor::visit (TypeFunction *)): Stop adding parameters when
97 'notreturn' type has been encountered. Qualify function types that
98 return 'noreturn' as TYPE_QUAL_VOLATILE.
99
100 2021-12-02 Iain Buclaw <ibuclaw@gdcproject.org>
101
102 PR d/103520
103 * d-frontend.h (gc_disable): Declare.
104 * d-lang.cc (d_init_options): Disable the D runtime garbage collector
105 after initializing.
106
107 2021-12-02 Iain Buclaw <ibuclaw@gdcproject.org>
108
109 * Make-lang.in (D_FRONTEND_OBJS): Prefix object files from the root
110 package with root-.
111 (d/root-%.o): New recipe.
112
113 2021-12-01 Iain Buclaw <ibuclaw@gdcproject.org>
114
115 * d-spec.cc (lang_specific_driver): Set SKIPOPT on -static-libstdc++
116 and -static-libphobos only when target supports LD_STATIC_DYNAMIC.
117 Remove generate_option to re-add -static-libstdc++.
118
119 2021-12-01 Iain Buclaw <ibuclaw@gdcproject.org>
120
121 * gdc.texi (Runtime Options): Document -fcheckaction=, -fextern-std=,
122 -fpreview=, -frevert=.
123 (Code Generation): Document -fdump-c++-spec=, -fdump-c++-spec-verbose,
124 -fsave-mixins=.
125 (Warnings): Update list of supported -ftransitions=.
126
127 2021-11-30 Iain Buclaw <ibuclaw@gdcproject.org>
128
129 * dmd/MERGE: Merge upstream dmd b8384668f.
130 * Make-lang.in (d-warn): Use strict warnings.
131 (DMD_WARN_CXXFLAGS): Remove.
132 (DMD_COMPILE): Remove.
133 (CHECKING_DFLAGS): Define.
134 (WARN_DFLAGS): Define.
135 (ALL_DFLAGS): Define.
136 (DCOMPILE.base): Define.
137 (DCOMPILE): Define.
138 (DPOSTCOMPILE): Define.
139 (DLINKER): Define.
140 (DLLINKER): Define.
141 (D_FRONTEND_OBJS): Add new dmd front-end objects.
142 (D_GENERATED_SRCS): Remove.
143 (D_GENERATED_OBJS): Remove.
144 (D_ALL_OBJS): Remove D_GENERATED_OBJS.
145 (d21$(exeext)): Build using DLLINKER and -static-libphobos.
146 (d.tags): Remove dmd/*.c and dmd/root/*.c.
147 (d.mostlyclean): Remove D_GENERATED_SRCS, d/idgen$(build_exeext),
148 d/impcnvgen$(build_exeext).
149 (D_INCLUDES): Include $(srcdir)/d/dmd/res.
150 (CFLAGS-d/id.o): Remove.
151 (CFLAGS-d/impcnvtab.o): Remove.
152 (d/%.o): Build using DCOMPILE and DPOSTCOMPILE. Update dependencies
153 from d/dmd/%.c to d/dmd/%.d.
154 (d/idgen$(build_exeext)): Remove.
155 (d/impcnvgen$(build_exeext)): Remove.
156 (d/id.c): Remove.
157 (d/id.h): Remove.
158 (d/impcnvtab.c): Remove.
159 (d/%.dmdgen.o): Remove.
160 (D_SYSTEM_H): Remove.
161 (d/idgen.dmdgen.o): Remove.
162 (d/impcnvgen.dmdgen.o): Remove.
163 * config-lang.in (boot_language): New variable.
164 * d-attribs.cc: Include dmd/expression.h.
165 * d-builtins.cc: Include d-frontend.h.
166 (build_frontend_type): Update for new front-end interface.
167 (d_eval_constant_expression): Likewise.
168 (d_build_builtins_module): Likewise.
169 (maybe_set_builtin_1): Likewise.
170 (d_build_d_type_nodes): Likewise.
171 * d-codegen.cc (d_decl_context): Likewise.
172 (declaration_reference_p): Likewise.
173 (declaration_type): Likewise.
174 (parameter_reference_p): Likewise.
175 (parameter_type): Likewise.
176 (get_array_length): Likewise.
177 (build_delegate_cst): Likewise.
178 (build_typeof_null_value): Likewise.
179 (identity_compare_p): Likewise.
180 (lower_struct_comparison): Likewise.
181 (build_filename_from_loc): Likewise.
182 (build_assert_call): Remove LIBCALL_SWITCH_ERROR.
183 (build_bounds_index_condition): Call LIBCALL_ARRAYBOUNDS_INDEXP on
184 bounds error.
185 (build_bounds_slice_condition): Call LIBCALL_ARRAYBOUNDS_SLICEP on
186 bounds error.
187 (array_bounds_check): Update for new front-end interface.
188 (checkaction_trap_p): Handle CHECKACTION_context.
189 (get_function_type): Update for new front-end interface.
190 (d_build_call): Likewise.
191 * d-compiler.cc: Remove include of dmd/scope.h.
192 (Compiler::genCmain): Remove.
193 (Compiler::paintAsType): Update for new front-end interface.
194 (Compiler::onParseModule): Likewise.
195 * d-convert.cc (convert_expr): Remove call to LIBCALL_ARRAYCAST.
196 (convert_for_rvalue): Update for new front-end interface.
197 (convert_for_assignment): Likewise.
198 (convert_for_condition): Likewise.
199 (d_array_convert): Likewise.
200 * d-diagnostic.cc (error): Remove.
201 (errorSupplemental): Remove.
202 (warning): Remove.
203 (warningSupplemental): Remove.
204 (deprecation): Remove.
205 (deprecationSupplemental): Remove.
206 (message): Remove.
207 (vtip): New.
208 * d-frontend.cc (global): Remove.
209 (Global::_init): Remove.
210 (Global::startGagging): Remove.
211 (Global::endGagging): Remove.
212 (Global::increaseErrorCount): Remove.
213 (Loc::Loc): Remove.
214 (Loc::toChars): Remove.
215 (Loc::equals): Remove.
216 (isBuiltin): Update for new front-end interface.
217 (eval_builtin): Likewise.
218 (getTypeInfoType): Likewise.
219 (inlineCopy): Remove.
220 * d-incpath.cc: Include d-frontend.h.
221 (add_globalpaths): Call d_gc_malloc to allocate Strings.
222 (add_filepaths): Likewise.
223 * d-lang.cc: Include dmd/id.h, dmd/root/file.h, d-frontend.h. Remove
224 include of dmd/mars.h, id.h.
225 (entrypoint_module): Remove.
226 (entrypoint_root_module): Remove.
227 (deps_write_string): Update for new front-end interface.
228 (deps_write): Likewise.
229 (d_init_options): Call rt_init. Remove setting global params that are
230 default initialized by the front-end.
231 (d_handle_option): Handle OPT_fcheckaction_, OPT_fdump_c___spec_,
232 OPT_fdump_c___spec_verbose, OPT_fextern_std_, OPT_fpreview,
233 OPT_revert, OPT_fsave_mixins_, and OPT_ftransition.
234 (d_post_options): Propagate dip1021 and dip1000 preview flags to
235 dip25, and flag_diagnostics_show_caret to printErrorContext.
236 (d_add_entrypoint_module): Remove.
237 (d_parse_file): Update for new front-end interface.
238 (d_type_promotes_to): Likewise.
239 (d_types_compatible_p): Likewise.
240 * d-longdouble.cc (CTFloat::zero): Remove.
241 (CTFloat::one): Remove.
242 (CTFloat::minusone): Remove.
243 (CTFloat::half): Remove.
244 * d-system.h (POSIX): Remove.
245 (realpath): Remove.
246 (isalpha): Remove.
247 (isalnum): Remove.
248 (isdigit): Remove.
249 (islower): Remove.
250 (isprint): Remove.
251 (isspace): Remove.
252 (isupper): Remove.
253 (isxdigit): Remove.
254 (tolower): Remove.
255 (_mkdir): Remove.
256 (INT32_MAX): Remove.
257 (INT32_MIN): Remove.
258 (INT64_MIN): Remove.
259 (UINT32_MAX): Remove.
260 (UINT64_MAX): Remove.
261 * d-target.cc: Include calls.h.
262 (target): Remove.
263 (define_float_constants): Remove initialization of snan.
264 (Target::_init): Update for new front-end interface.
265 (Target::isVectorTypeSupported): Likewise.
266 (Target::isVectorOpSupported): Remove cases for unordered operators.
267 (TargetCPP::typeMangle): Update for new front-end interface.
268 (TargetCPP::parameterType): Likewise.
269 (Target::systemLinkage): Likewise.
270 (Target::isReturnOnStack): Likewise.
271 (Target::isCalleeDestroyingArgs): Define.
272 (Target::preferPassByRef): Define.
273 * d-tree.h (d_add_entrypoint_module): Remove.
274 * decl.cc (gcc_attribute_p): Update for new front-end interface.
275 (apply_pragma_crt): Define.
276 (DeclVisitor::visit(PragmaDeclaration *)): Handle pragmas
277 crt_constructor and crt_destructor.
278 (DeclVisitor::visit(TemplateDeclaration *)): Update for new front-end
279 interface.
280 (DeclVisitor::visit): Likewise.
281 (DeclVisitor::finish_vtable): Likewise.
282 (get_symbol_decl): Error if template has more than one nesting
283 context. Update for new front-end interface.
284 (make_thunk): Update for new front-end interface.
285 (get_vtable_decl): Likewise.
286 * expr.cc (ExprVisitor::visit): Likewise.
287 (build_return_dtor): Likewise.
288 * imports.cc (ImportVisitor::visit): Likewise.
289 * intrinsics.cc: Include dmd/expression.h. Remove include of
290 dmd/mangle.h.
291 (maybe_set_intrinsic): Update for new front-end interface.
292 * intrinsics.def (INTRINSIC_ROL): Update intrinsic signature.
293 (INTRINSIC_ROR): Likewise.
294 (INTRINSIC_ROR_TIARG): Likewise.
295 (INTRINSIC_TOPREC): Likewise.
296 (INTRINSIC_TOPRECL): Likewise.
297 (INTRINSIC_TAN): Update intrinsic module and signature.
298 (INTRINSIC_ISNAN): Likewise.
299 (INTRINSIC_ISFINITE): Likewise.
300 (INTRINSIC_COPYSIGN): Define intrinsic.
301 (INTRINSIC_COPYSIGNI): Define intrinsic.
302 (INTRINSIC_EXP): Update intrinsic module.
303 (INTRINSIC_EXPM1): Likewise.
304 (INTRINSIC_EXP2): Likewise.
305 (INTRINSIC_LOG): Likewise.
306 (INTRINSIC_LOG2): Likewise.
307 (INTRINSIC_LOG10): Likewise.
308 (INTRINSIC_POW): Likewise.
309 (INTRINSIC_ROUND): Likewise.
310 (INTRINSIC_FLOORF): Likewise.
311 (INTRINSIC_FLOOR): Likewise.
312 (INTRINSIC_FLOORL): Likewise.
313 (INTRINSIC_CEILF): Likewise.
314 (INTRINSIC_CEIL): Likewise.
315 (INTRINSIC_CEILL): Likewise.
316 (INTRINSIC_TRUNC): Likewise.
317 (INTRINSIC_FMIN): Likewise.
318 (INTRINSIC_FMAX): Likewise.
319 (INTRINSIC_FMA): Likewise.
320 (INTRINSIC_VA_ARG): Update intrinsic signature.
321 (INTRINSIC_VASTART): Likewise.
322 * lang.opt (fcheck=): Add alternate aliases for contract switches.
323 (fcheckaction=): New option.
324 (check_action): New Enum and EnumValue entries.
325 (fdump-c++-spec-verbose): New option.
326 (fdump-c++-spec=): New option.
327 (fextern-std=): New option.
328 (extern_stdcpp): New Enum and EnumValue entries
329 (fpreview=): New options.
330 (frevert=): New options.
331 (fsave-mixins): New option.
332 (ftransition=): Update options.
333 * modules.cc (get_internal_fn): Replace Prot with Visibility.
334 (build_internal_fn): Likewise.
335 (build_dso_cdtor_fn): Likewise.
336 (build_module_tree): Remove check for __entrypoint module.
337 * runtime.def (P5): Define.
338 (ARRAYBOUNDS_SLICEP): Define.
339 (ARRAYBOUNDS_INDEXP): Define.
340 (NEWTHROW): Define.
341 (ADCMP2): Remove.
342 (ARRAYCAST): Remove.
343 (SWITCH_STRING): Remove.
344 (SWITCH_USTRING): Remove.
345 (SWITCH_DSTRING): Remove.
346 (SWITCH_ERROR): Remove.
347 * toir.cc (IRVisitor::visit): Update for new front-end interface.
348 (IRVisitor::check_previous_goto): Remove checks for case and default
349 statements.
350 (IRVisitor::visit(SwitchStatement *)): Remove handling of string
351 switch conditions.
352 * typeinfo.cc: Include d-frontend.h.
353 (get_typeinfo_kind): Update for new front-end interface.
354 (make_frontend_typeinfo): Likewise.
355 (TypeInfoVisitor::visit): Likewise.
356 (builtin_typeinfo_p): Likewise.
357 (get_typeinfo_decl): Likewise.
358 (build_typeinfo): Likewise.
359 * types.cc (valist_array_p): Likewise.
360 (make_array_type): Likewise.
361 (merge_aggregate_types): Likewise.
362 (TypeVisitor::visit(TypeBasic *)): Likewise.
363 (TypeVisitor::visit(TypeFunction *)): Likewise.
364 (TypeVisitor::visit(TypeStruct *)): Update comment.
365 * verstr.h: Removed.
366 * d-frontend.h: New file.
367
368 2021-11-29 Eric Gallager <egallager@gcc.gnu.org>
369
370 PR other/103021
371 * Make-lang.in: Use ETAGS variable in TAGS target.
372
373 2021-11-28 Martin Liska <mliska@suse.cz>
374
375 * d-attribs.cc (parse_optimize_options): Fix thinko.
376
377 2021-11-26 Martin Liska <mliska@suse.cz>
378
379 * d-attribs.cc (parse_optimize_options): Check index before
380 accessing cl_options.
381
382 2021-11-18 Iain Buclaw <ibuclaw@gdcproject.org>
383
384 * decl.cc (d_finish_decl): Use HOST_WIDE_INT for type size
385 temporaries.
386
387 2021-10-22 Eric Gallager <egallager@gcc.gnu.org>
388
389 PR other/102663
390 * Make-lang.in: Allow dvi-formatted documentation
391 to be installed.
392
393 2021-10-08 Martin Liska <mliska@suse.cz>
394
395 * d-lang.cc (d_post_options): Use new macro
396 OPTION_SET_P.
397
398 2021-10-05 Iain Sandoe <iain@sandoe.co.uk>
399
400 * d-spec.cc (lang_specific_driver): Push the -static-libstdc++
401 option back onto the command line for targets without support
402 for -Bstatic/dynamic.
403
404 2021-10-04 Iain Buclaw <ibuclaw@gdcproject.org>
405
406 PR d/102574
407 * d-spec.cc (lang_specific_driver): Link libstdc++ statically if
408 -static-libstdc++ was given on command-line.
409
410 2021-10-04 Iain Buclaw <ibuclaw@gdcproject.org>
411
412 * d-attribs.cc (d_handle_optimize_attribute): Save target node before
413 calling parse_optimize_options in case it changes.
414
415 2021-09-12 Iain Buclaw <ibuclaw@gdcproject.org>
416
417 PR d/102185
418 * d-builtins.cc (d_eval_constant_expression): Don't include
419 terminating null pointer in string expression conversion.
420
421 2021-08-29 Iain Buclaw <ibuclaw@gdcproject.org>
422
423 * d-codegen.cc: Include dmd/module.h.
424 (build_filename_from_loc): New function.
425 (d_assert_call): Rename to...
426 (build_assert_call): ...this.
427 (build_array_bounds_call): Call arrayboundsp variant of the array
428 bounds failure callback.
429 (build_bounds_condition): Rename to...
430 (build_bounds_index_condition): ...this. Update signature.
431 (build_bounds_slice_condition): New function.
432 (checkaction_trap_p): New function.
433 (d_assert_call): Call assertp variant of assert failure callback.
434 * d-tree.h (class IndexExp): Declare.
435 (class SliceExp): Declare.
436 (build_bounds_condition): Remove.
437 (build_assert_call): Declare.
438 (build_bounds_index_condition): Declare.
439 (build_bounds_slice_condition): Declare.
440 (checkaction_trap_p): Declare.
441 (d_assert_call): Remove.
442 * expr.cc (ExprVisitor::visit(IndexExp *)): Call
443 build_bounds_index_condition.
444 (ExprVisitor::visit(SliceExp *)): Call build_bounds_slice_condition.
445 (ExprVisitor::visit(AssertExp *)): Update setting of libcall.
446 * runtime.cc (enum d_libcall_type): Add LCT_IMMUTABLE_CHARPTR.
447 (get_libcall_type): Handle LCT_IMMUTABLE_CHARPTR.
448 * runtime.def (ASSERT): Rename to...
449 (ASSERTP): ...this. Update signature.
450 (UNITTEST): Rename to...
451 (UNITTESTP): ...this. Update signature.
452 (ARRAY_BOUNDS): Rename to...
453 (ARRAYBOUNDSP): ...this. Updates signature.
454 * toir.cc (IRVisitor::visit(SwitchErrorStatement *)): Update call.
455
456 2021-08-29 Iain Buclaw <ibuclaw@gdcproject.org>
457
458 * typeinfo.cc (class TypeInfoVisitor::layout_base): Update comment.
459
460 2021-08-29 Iain Buclaw <ibuclaw@gdcproject.org>
461
462 * typeinfo.cc (TypeInfoVisitor::visit(TypeInfoClassDeclaration *)):
463 Use int to store type flags.
464 (TypeInfoVisitor::visit(TypeInfoStructDeclaration *)): Likewise.
465
466 2021-08-29 Iain Buclaw <ibuclaw@gdcproject.org>
467
468 * types.cc (TypeVisitor::visit(TypeEnum*)): Get wchar_t type from
469 build_frontend_type.
470
471 2021-08-29 Iain Buclaw <ibuclaw@gdcproject.org>
472
473 * d-convert.cc (convert_for_rvalue): Convert switch statement into if
474 condition.
475
476 2021-08-29 Iain Buclaw <ibuclaw@gdcproject.org>
477
478 * d-builtins.cc (d_init_versions): Use POINTER_SIZE for testing
479 whether to predefine D_LP64.
480
481 2021-08-29 Iain Buclaw <ibuclaw@gdcproject.org>
482
483 PR d/102094
484 * d-codegen.cc (build_frame_type): Set TYPE_CXX_ODR_P.
485
486 2021-08-25 Lewis Hyatt <lhyatt@gmail.com>
487
488 PR other/93067
489 * d-lang.cc (d_input_charset_callback): New function.
490 (d_init): Call new function
491 diagnostic_initialize_input_context().
492
493 2021-07-30 Iain Buclaw <ibuclaw@gdcproject.org>
494
495 * expr.cc (binary_op): Remove dead code.
496
497 2021-07-30 Iain Buclaw <ibuclaw@gdcproject.org>
498
499 * typeinfo.cc (TypeInfoVisitor::visit (TypeInfoClassDeclaration *)):
500 Always layout initializer for the m_RTInfo field.
501
502 2021-07-30 Iain Buclaw <ibuclaw@gdcproject.org>
503
504 * expr.cc (ExprVisitor::visit (AssertExp *)): Don't generate
505 PREDICT_EXPR.
506
507 2021-07-30 Iain Buclaw <ibuclaw@gdcproject.org>
508
509 * expr.cc (ExprVisitor::visit (AssignExp *)): Clarify comment
510 for generating static array assignment with literal.
511
512 2021-07-30 Iain Buclaw <ibuclaw@gdcproject.org>
513
514 * decl.cc (enum_initializer_decl): Only handle named enums.
515
516 2021-07-30 Iain Buclaw <ibuclaw@gdcproject.org>
517
518 * decl.cc (make_thunk): Set COMDAT and visibility of thunks only if
519 they are public.
520
521 2021-07-30 Iain Buclaw <ibuclaw@gdcproject.org>
522
523 * decl.cc (DeclVisitor::visit (StructDeclaration *)): Don't use sinit
524 for declaration directly.
525 (DeclVisitor::visit (ClassDeclaration *)): Likewise.
526 (aggregate_initializer_decl): Likewise. Set sinit after creating.
527
528 2021-07-30 Iain Buclaw <ibuclaw@gdcproject.org>
529
530 * d-builtins.cc (build_frontend_type): Use Identifier::idPool to
531 generate anonymous field name.
532
533 2021-07-30 Iain Buclaw <ibuclaw@gdcproject.org>
534
535 * types.cc (layout_aggregate_type): Call hasMonitor.
536 * typeinfo.cc (TypeInfoVisitor::layout_base): Likewise.
537 (layout_cpp_typeinfo): Likewise. Don't emit vtable unless
538 have_typeinfo_p.
539
540 2021-07-30 Iain Buclaw <ibuclaw@gdcproject.org>
541
542 * d-lang.cc (deps_add_target): Insert null terminator in buffer.
543 (deps_write): Likewise.
544 (d_parse_file): Likewise.
545
546 2021-07-30 Iain Buclaw <ibuclaw@gdcproject.org>
547
548 * d-builtins.cc (build_frontend_type): Restore builtin_converted_decls
549 length on conversion failure.
550
551 2021-07-30 Iain Buclaw <ibuclaw@gdcproject.org>
552
553 * d-codegen.cc (d_nested_class): Rename to ...
554 (get_outer_function): ... this. Handle all aggregate declarations.
555 (d_nested_struct): Remove.
556 (find_this_tree): Use get_outer_function.
557 (get_framedecl): Likewise.
558
559 2021-07-29 Iain Buclaw <ibuclaw@gdcproject.org>
560
561 PR d/101672
562 * typeinfo.cc (make_frontend_typeinfo): Generate Object class if it
563 doesn't exist.
564 (check_typeinfo_type): Don't warn if there's no location.
565
566 2021-07-29 Iain Buclaw <ibuclaw@gdcproject.org>
567
568 PR d/101664
569 * expr.cc (ExprVisitor::visit (CallExp *)): Use object expression as
570 result for C++ constructor calls.
571
572 2021-07-29 Iain Buclaw <ibuclaw@gdcproject.org>
573
574 PR d/96435
575 * d-convert.cc (convert_for_rvalue): New function.
576 * d-tree.h (convert_for_rvalue): Declare.
577 * expr.cc (ExprVisitor::visit (CastExp *)): Use convert_for_rvalue.
578 (build_return_dtor): Likewise.
579
580 2021-07-29 Iain Buclaw <ibuclaw@gdcproject.org>
581
582 PR d/101657
583 * d-lang.cc (d_parse_file): Remove generated D header files on error.
584
585 2021-07-29 Iain Buclaw <ibuclaw@gdcproject.org>
586
587 PR d/101656
588 * d-diagnostic.cc (escape_d_format): Don't escape quoted format
589 strings.
590
591 2021-07-28 Iain Buclaw <ibuclaw@gdcproject.org>
592
593 PR d/101640
594 * expr.cc (binary_op): Use build2 instead of fold_build2.
595
596 2021-07-28 Iain Buclaw <ibuclaw@gdcproject.org>
597
598 PR d/101490
599 * dmd/MERGE: Merge upstream dmd 27e388b4c.
600 * d-codegen.cc (build_array_index): Handle void arrays same as byte.
601 * d-convert.cc (convert_expr): Handle converting to zero-sized arrays.
602
603 2021-07-28 Iain Buclaw <ibuclaw@gdcproject.org>
604
605 PR d/101441
606 * dmd/MERGE: Merge upstream dmd f8c1ca928.
607
608 2021-07-28 Iain Buclaw <ibuclaw@gdcproject.org>
609
610 PR d/101127
611 * d-builtins.cc (d_builtin_function_ext_scope): New function.
612 * d-lang.cc (LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE): Define.
613 * d-tree.h (d_builtin_function_ext_scope): Declare.
614
615 2021-07-28 Iain Buclaw <ibuclaw@gdcproject.org>
616
617 PR d/101619
618 * dmd/MERGE: Merge upstream dmd 1d8386a63.
619
620 2021-07-03 Iain Buclaw <ibuclaw@gdcproject.org>
621
622 PR d/101273
623 * toir.cc (IRVisitor::visit (ReturnStatement *)): Detect returns that
624 use a temporary, and replace with return value.
625
626 2021-07-02 Iain Buclaw <ibuclaw@gdcproject.org>
627
628 PR d/101282
629 * d-codegen.cc (build_assign): Force target_expr on RHS for non-POD
630 assignment expressions.
631
632 2021-06-11 Iain Buclaw <ibuclaw@gdcproject.org>
633
634 PR d/100999
635 * dmd/MERGE: Merge upstream dmd 7a3808254.
636
637 2021-06-10 Iain Buclaw <ibuclaw@gdcproject.org>
638
639 PR d/100967
640 * d-frontend.cc (getTypeInfoType): Move TypeInfo checks to
641 check_typeinfo_type and call new function.
642 * d-tree.h (check_typeinfo_type): Declare.
643 * typeinfo.cc: Include dmd/scope.h.
644 (create_frontend_tinfo_types): Generate front-end types even if Object
645 is missing.
646 (build_typeinfo): Move TypeInfo checks to check_typeinfo_type and call
647 new function.
648 (check_typeinfo_type): New function.
649
650 2021-06-09 Iain Buclaw <ibuclaw@gdcproject.org>
651
652 PR d/100964
653 * dmd/MERGE: Merge upstream dmd 4a4e46a6f.
654
655 2021-06-09 Iain Buclaw <ibuclaw@gdcproject.org>
656
657 PR d/100935
658 * dmd/MERGE: Merge upstream dmd f3fdeb578.
659
660 2021-06-04 Iain Buclaw <ibuclaw@gdcproject.org>
661
662 PR d/100882
663 * d-codegen.cc (build_assign): Construct initializations inside
664 TARGET_EXPR_INITIAL.
665 (compound_expr): Remove intermediate expressions that have no
666 side-effects.
667 (return_expr): Construct returns inside TARGET_EXPR_INITIAL.
668 * expr.cc (ExprVisitor::visit (CallExp *)): Remove useless assignment
669 to TARGET_EXPR_SLOT.
670
671 2021-05-18 Iain Buclaw <ibuclaw@gdcproject.org>
672
673 * d-incpath.cc (prefixed_path): Use filename_ncmp instead of strncmp.
674
675 2021-05-18 Iain Buclaw <ibuclaw@gdcproject.org>
676
677 * types.cc (TypeVisitor::visit (TypeEnum *)): Use startswith function
678 instead of strncmp.
679
680 2021-05-18 Iain Buclaw <ibuclaw@gdcproject.org>
681
682 * dmd/dinterpret.c (evaluateIfBuiltin): Revert last change.
683 * dmd/dmangle.c: Likewise.
684 * dmd/hdrgen.c: Likewise.
685 * dmd/identifier.c (Identifier::toHChars2): Likewise.
686
687 2021-05-10 Iain Buclaw <ibuclaw@gdcproject.org>
688
689 * dmd/MERGE: Merge upstream dmd b7d146c4c.
690
691 2021-05-10 Martin Liska <mliska@suse.cz>
692
693 * d-builtins.cc (do_build_builtin_fn): Use startswith
694 function instead of strncmp.
695 * dmd/dinterpret.c (evaluateIfBuiltin): Likewise.
696 * dmd/dmangle.c: Likewise.
697 * dmd/hdrgen.c: Likewise.
698 * dmd/identifier.c (Identifier::toHChars2): Likewise.
699
700 2021-04-19 Iain Buclaw <ibuclaw@gdcproject.org>
701
702 PR d/98457
703 * d-diagnostic.cc (expand_d_format): Handle escaped backticks.
704 (escape_d_format): New funtion.
705 (verror): Call escape_d_format on prefixing strings.
706 (vdeprecation): Likewise.
707
708 2021-04-17 Iain Buclaw <ibuclaw@gdcproject.org>
709
710 PR d/99914
711 * d-target.def (d_templates_always_comdat): New hook.
712 * d-tree.h (mark_needed): Remove prototype.
713 * decl.cc: Include d-target.h.
714 (mark_needed): Rename to...
715 (d_mark_needed): ...this. Make static.
716 (set_linkage_for_decl): Put variables in comdat if
717 d_templates_always_comdat.
718
719 2021-04-17 Iain Buclaw <ibuclaw@gdcproject.org>
720
721 * d-target.cc (d_handle_target_object_format): New function.
722 (d_language_target_info): Add d_handle_target_object_format as handler
723 for objectFormat key.
724 (Target::getTargetInfo): Continue if handler returned NULL_TREE.
725
726 2021-04-14 Iain Buclaw <ibuclaw@gdcproject.org>
727
728 * d-target.cc (Target::_init): Call new targetdm hook to register OS
729 specific target info keys.
730 * d-target.def (d_register_os_target_info): New hook.
731
732 2021-04-14 Iain Buclaw <ibuclaw@gdcproject.org>
733
734 * d-builtins.cc (d_add_builtin_version): Remove all setting of
735 target-specific global.params.
736 * typeinfo.cc (create_typeinfo): Don't add argType fields to
737 TypeInfo_Struct.
738
739 2021-04-14 Iain Buclaw <ibuclaw@gdcproject.org>
740
741 PR d/99914
742 * decl.cc (DeclVisitor::visit (StructDeclaration *)): Don't set
743 DECL_INSTANTIATED on static initializer declarations.
744 (DeclVisitor::visit (ClassDeclaration *)): Likewise.
745 (DeclVisitor::visit (EnumDeclaration *)): Likewise.
746 (d_finish_decl): Move call to set_linkage_for_decl to...
747 (declare_extern_var): ...here.
748
749 2021-04-14 Iain Buclaw <ibuclaw@gdcproject.org>
750
751 * d-target.cc (Target::_init): Call new targetdm hook to register CPU
752 specific target info keys.
753 * d-target.def (d_register_cpu_target_info): New hook.
754
755 2021-04-14 Iain Buclaw <ibuclaw@gdcproject.org>
756
757 * d-target.cc (Target::systemLinkage): Return LINKwindows if
758 d_has_stdcall_convention applies to LINKsystem.
759 * d-target.def (d_has_stdcall_convention): New hook.
760 * types.cc (TypeVisitor::visit (TypeFunction *)): Insert "stdcall"
761 function attribute if d_has_stdcall_convention applies to LINKwindows.
762
763 2021-04-10 Iain Buclaw <ibuclaw@gdcproject.org>
764
765 * dmd/MERGE: Merge upstream dmd 0450061c8.
766
767 2021-04-08 Iain Buclaw <ibuclaw@gdcproject.org>
768
769 * d-attribs.cc: Include fold-const.h and opts.h.
770 (attr_noreturn_exclusions): Add alloc_size.
771 (attr_const_pure_exclusions): Likewise.
772 (attr_inline_exclusions): Add target_clones.
773 (attr_noinline_exclusions): Rename forceinline to always_inline.
774 (attr_target_exclusions): New array.
775 (attr_target_clones_exclusions): New array.
776 (attr_alloc_exclusions): New array.
777 (attr_cold_hot_exclusions): New array.
778 (d_langhook_common_attribute_table): Add new D attribute handlers.
779 (build_attributes): Update to look for gcc.attributes. Issue warning
780 if not given a struct literal. Handle void initialized arguments.
781 (handle_always_inline_attribute): Remove function.
782 (d_handle_noinline_attribute): Don't extract TYPE_LANG_FRONTEND.
783 (d_handle_forceinline_attribute): Rename to...
784 (d_handle_always_inline_attribute): ...this. Remove special handling.
785 (d_handle_flatten_attribute): Don't extract TYPE_LANG_FRONTEND.
786 (d_handle_target_attribute): Likewise. Warn about empty arguments.
787 (d_handle_target_clones_attribute): New function.
788 (optimize_args): New static variable.
789 (parse_optimize_options): New function.
790 (d_handle_optimize_attribute): New function.
791 (d_handle_noclone_attribute): Don't extract TYPE_LANG_FRONTEND.
792 (d_handle_alias_attribute): Remove function.
793 (d_handle_noicf_attribute): New function.
794 (d_handle_noipa_attribute): New function.
795 (d_handle_section_attribute): Call the handle_generic_attribute target
796 hook after performing target independent processing.
797 (d_handle_symver_attribute): New function.
798 (d_handle_noplt_attribute): New function.
799 (positional_argument): New function.
800 (d_handle_alloc_size_attribute): New function.
801 (d_handle_cold_attribute): New function.
802 (d_handle_restrict_attribute): New function.
803 (d_handle_used_attribute): New function.
804 * decl.cc (gcc_attribute_p): Update to look for gcc.attributes.
805 (get_symbol_decl): Update decl source location of old prototypes to
806 the new declaration being merged.
807 * types.cc (layout_aggregate_members): Apply user defined attributes
808 on fields.
809
810 2021-04-06 Iain Buclaw <ibuclaw@gdcproject.org>
811
812 PR d/99917
813 * dmd/MERGE: Merge upstream dmd d16195406.
814
815 2021-04-06 Iain Buclaw <ibuclaw@gdcproject.org>
816
817 * d-codegen.cc (build_frame_type): Use Array::find to get index of
818 element.
819
820 2021-04-06 Iain Buclaw <ibuclaw@gdcproject.org>
821
822 * d-diagnostic.cc (vwarning): Increment gaggedWarnings if warning
823 message was suppressed.
824 (vdeprecation): Likewise for deprecation messages.
825
826 2021-04-06 Iain Buclaw <ibuclaw@gdcproject.org>
827
828 * dmd/MERGE: Merge upstream dmd 5cc71ff83.
829
830 2021-04-05 Iain Buclaw <ibuclaw@gdcproject.org>
831
832 PR d/99914
833 * d-lang.cc (d_init): Disable flag_weak_templates if no support for
834 weak or one-only symbols.
835 * d-tree.h (VAR_OR_FUNCTION_DECL_CHECK): New macro.
836 (DECL_INSTANTIATED): New macro.
837 (d_comdat_linkage): Remove declaration.
838 (d_linkonce_linkage): Remove declaration.
839 (set_linkage_for_decl): New declaration.
840 * decl.cc (DeclVisitor::visit (StructDeclaration *)): Replace call to
841 d_linkonce_linkage with setting DECL_INSTANTIATED.
842 (DeclVisitor::visit (ClassDeclaration *)): Likewise.
843 (DeclVisitor::visit (EnumDeclaration *)): Likewise.
844 (DeclVisitor::visit (InterfaceDeclaration *)): Remove call to
845 d_linkonce_linkage.
846 (get_symbol_decl): Call set_linkage_for_decl instead of
847 d_linkonce_linkage.
848 (d_finish_decl): Call set_linkage_for_decl.
849 (d_comdat_linkage): Made function static. Only set DECL_COMDAT for
850 DECL_INSTANTIATED decls.
851 (d_linkonce_linkage): Remove function.
852 (d_weak_linkage): New function.
853 (set_linkage_for_decl): New function.
854 * gdc.texi (Runtime Options): Rename -fno-weak to -fno-weak-templates,
855 update documentation of option.
856 * lang.opt (fweak): Rename option to ...
857 (fweak-templates): ... this. Update help string.
858 * modules.cc (get_internal_fn): Add Prot parameter. Set generated
859 function flag.
860 (build_internal_fn): Update call to get_internal_fn.
861 (build_dso_cdtor_fn): Likewise.
862 (register_moduleinfo): Call d_finish_decl on dso_slot_node and
863 dso_initialized_node.
864 * typeinfo.cc (TypeInfoVisitor::internal_reference): Call
865 set_linkage_for_decl instead of d_comdat_linkage.
866 (TypeInfoDeclVisitor::visit (TypeInfoDeclaration *)): Remove calls to
867 d_linkonce_linkage and d_comdat_linkage.
868 (get_cpp_typeinfo_decl): Likewise.
869
870 2021-04-03 Iain Buclaw <ibuclaw@gdcproject.org>
871
872 * dmd/MERGE: Merge upstream dmd 3b808e838.
873 * Make-lang.in (D_FRONTEND_OBJS): Add d/chkformat.o.
874 * d-codegen.cc (build_struct_literal): Handle special enums.
875 * d-convert.cc (convert_expr): Handle noreturn type.
876 (convert_for_condition): Likewise.
877 * d-target.cc (Target::_init): Set type for wchar_t.
878 (TargetCPP::derivedClassOffset): New method.
879 (Target::libraryObjectMonitors): New method.
880 * decl.cc (get_symbol_decl): Set TREE_THIS_VOLATILE for functions of
881 type noreturn.
882 * toir.cc (IRVisitor::visit (ReturnStatement *)): Handle returning
883 noreturn types.
884 * types.cc (TypeVisitor::visit (TypeNoreturn *)): New method.
885 (TypeVisitor::visit (TypeEnum *)): Handle special enums.
886
887 2021-03-28 Iain Buclaw <ibuclaw@gdcproject.org>
888
889 * d-builtins.cc (d_init_versions): Predefine D_PIE if flag_pie is set.
890
891 2021-03-28 Iain Buclaw <ibuclaw@gdcproject.org>
892
893 * d-lang.cc (d_enum_underlying_base_type): New function.
894 (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): Set as
895 d_enum_underlying_base_type.
896
897 2021-03-28 Iain Buclaw <ibuclaw@gdcproject.org>
898
899 * Make-lang.in (DMDGEN_COMPILE): Remove.
900 (d/%.dmdgen.o): Use COMPILER_FOR_BUILD and BUILD_COMPILERFLAGS to
901 build all D generator programs.
902 (D_SYSTEM_H): New macro.
903 (d/idgen.dmdgen.o): Add dependencies to build.
904 (d/impcnvgen.dmdgen.o): Likewise.
905 * d-system.h: Include bconfig.h if GENERATOR_FILE is defined.
906
907 2021-03-28 Iain Buclaw <ibuclaw@gdcproject.org>
908
909 * config-lang.in (gtfiles): Remove modules.cc.
910 * modules.cc (struct module_info): Remove GTY marker.
911 (static_ctor_list): Remove variable.
912 (static_dtor_list): Remove variable.
913 (register_moduleinfo): Directly set DECL_STATIC_CONSTRUCTOR on
914 dso_ctor, and DECL_STATIC_DESTRUCTOR on dso_dtor.
915 (d_finish_compilation): Remove static ctor/dtor handling.
916
917 2021-03-06 Iain Buclaw <ibuclaw@gdcproject.org>
918
919 * d-lang.cc (d_init_options_struct): Don't set default
920 flag_complex_method.
921
922 2021-03-03 Iain Buclaw <ibuclaw@gdcproject.org>
923
924 PR d/99337
925 * dmd/MERGE: Merge upstream dmd a3c9bf422.
926
927 2021-02-13 Iain Buclaw <ibuclaw@gdcproject.org>
928
929 * dmd/MERGE: Merge upstream dmd 7132b3537.
930 * Make-lang.in (D_FRONTEND_OBJS): Add d/dsymbolsem.o, d/semantic2.o,
931 d/semantic3.o, and d/templateparamsem.o.
932 * d-compiler.cc (Compiler::genCmain): Update calls to semantic
933 entrypoint functions.
934 * d-lang.cc (d_parse_file): Likewise.
935 * typeinfo.cc (make_frontend_typeinfo): Likewise.
936
937 2021-02-05 Iain Buclaw <ibuclaw@gdcproject.org>
938
939 * d-tree.h (DEF_D_INTRINSIC): Don't insert INTRINSIC_ into the
940 intrinsic code name.
941 * intrinsics.cc (DEF_D_INTRINSIC): Don't insert INTRISIC_ and
942 BUILT_IN_ into the intrinsic and built-in code names.
943 * intrinsics.def: Explicitly use full intrinsic and built-in
944 codes in all definitions.
945
946 2021-02-04 Iain Buclaw <ibuclaw@gdcproject.org>
947
948 * dmd/MERGE: Merge upstream dmd 46133f761.
949 * d-builtins.cc (d_build_builtins_module): Set builtins as BUILTINgcc.
950 (maybe_set_builtin_1): Likewise.
951 * d-frontend.cc (eval_builtin): Adjust condition for early return.
952 * intrinsics.cc (maybe_set_intrinsic): Set intrinsics as BUILTINgcc.
953 (maybe_expand_intrinsic): Add case for INTRINSIC_BSWAP16.
954 * intrinsics.def (INTRINSIC_BT): Update signature.
955 (INTRINSIC_BT64): Likewise.
956 (INTRINSIC_BSWAP16): New intrinsic.
957 (INTRINSIC_VLOAD8): Update module.
958 (INTRINSIC_VLOAD16): Likewise.
959 (INTRINSIC_VLOAD32): Likewise.
960 (INTRINSIC_VLOAD64): Likewise.
961 (INTRINSIC_VSTORE8): Likewise.
962 (INTRINSIC_VSTORE16): Likewise.
963 (INTRINSIC_VSTORE32): Likewise.
964 (INTRINSIC_VSTORE64): Likewise.
965 (INTRINSIC_ADDS): Update signature.
966 (INTRINSIC_ADDSL): Likewise.
967 (INTRINSIC_ADDU): Likewise.
968 (INTRINSIC_ADDUL): Likewise.
969 (INTRINSIC_SUBS): Likewise.
970 (INTRINSIC_SUBSL): Likewise.
971 (INTRINSIC_SUBU): Likewise.
972 (INTRINSIC_SUBUL): Likewise.
973 (INTRINSIC_MULS): Likewise.
974 (INTRINSIC_MULSL): Likewise.
975 (INTRINSIC_MULU): Likewise.
976 (INTRINSIC_MULUI): Likewise.
977 (INTRINSIC_MULUL): Likewise.
978 (INTRINSIC_NEGS): Likewise.
979 (INTRINSIC_NEGSL): Likewise.
980
981 2021-02-02 Iain Buclaw <ibuclaw@gdcproject.org>
982
983 PR d/98921
984 * dmd/MERGE: Merge upstream dmd 5e2a81d9c.
985
986 2021-01-30 Iain Buclaw <ibuclaw@gdcproject.org>
987
988 * typeinfo.cc (TypeInfoVisitor::visit (TypeInfoDeclaration *)): Don't
989 layout m_arg1 and m_arg2 fields.
990
991 2021-01-26 Iain Buclaw <ibuclaw@gdcproject.org>
992
993 * dmd/MERGE: Merge upstream dmd 609c3ce2d.
994 * d-compiler.cc (Compiler::loadModule): Rename to ...
995 (Compiler::onParseModule): ... this.
996 (Compiler::onImport): New function.
997 * d-lang.cc (d_parse_file): Remove call to Compiler::loadModule.
998
999 2021-01-21 Iain Buclaw <ibuclaw@gdcproject.org>
1000
1001 * dmd/MERGE: Merge upstream dmd 3a7ebef73.
1002
1003 2021-01-11 Iain Buclaw <ibuclaw@gdcproject.org>
1004
1005 * dmd/MERGE: Merge upstream dmd 2d3d13748.
1006 * d-lang.cc (d_handle_option): Remove OPT_ftransition_checkimports and
1007 OPT_ftransition_import.
1008 * gdc.texi (Warnings): Remove documentation for -ftransition=import
1009 and -ftransition=checkimports.
1010 * lang.opt (ftransition=checkimports): Remove.
1011 (ftransition=import): Remove.
1012
1013 2021-01-09 Iain Buclaw <ibuclaw@gdcproject.org>
1014
1015 * dmd/MERGE: Merge upstream dmd cb1106ad5.
1016
1017 2021-01-09 Iain Buclaw <ibuclaw@gdcproject.org>
1018
1019 * dmd/MERGE: Merge upstream dmd 9bba772fa.
1020
1021 2021-01-09 Iain Buclaw <ibuclaw@gdcproject.org>
1022
1023 * dmd/MERGE: Merge upstream dmd e598f69c0.
1024
1025 2021-01-07 Iain Buclaw <ibuclaw@gdcproject.org>
1026
1027 * dmd/MERGE: Merge upstream dmd 9038e64c5.
1028 * d-builtins.cc (build_frontend_type): Update call to
1029 Parameter::create.
1030
1031 2021-01-05 Iain Buclaw <ibuclaw@gdcproject.org>
1032
1033 * dmd/MERGE: Merge upstream dmd a5c86f5b9.
1034 * d-builtins.cc (d_eval_constant_expression): Handle ADDR_EXPR trees
1035 created by build_string_literal.
1036 * d-frontend.cc (retStyle): Remove function.
1037 * d-target.cc (d_language_target_info): New variable.
1038 (d_target_info_table): Likewise.
1039 (Target::_init): Initialize d_target_info_table.
1040 (Target::isReturnOnStack): New function.
1041 (d_add_target_info_handlers): Likewise.
1042 (d_handle_target_cpp_std): Likewise.
1043 (d_handle_target_cpp_runtime_library): Likewise.
1044 (Target::getTargetInfo): Likewise.
1045 * d-target.h (struct d_target_info_spec): New type.
1046 (d_add_target_info_handlers): Declare.
1047
1048 2021-01-01 Jakub Jelinek <jakub@redhat.com>
1049
1050 * gdc.texi: Bump @copyrights-d year.
1051
1052 2021-01-01 Jakub Jelinek <jakub@redhat.com>
1053
1054 * ChangeLog-2020: Rotate ChangeLog. New file.
1055
1056 \f
1057 Copyright (C) 2021 Free Software Foundation, Inc.
1058
1059 Copying and distribution of this file, with or without modification,
1060 are permitted in any medium without royalty provided the copyright
1061 notice and this notice are preserved.