aboutsummaryrefslogtreecommitdiff
path: root/gcc/d/ChangeLog
blob: 4f5338c193bb58cfe6949cd57e875541f3461474 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
2024-03-10  Iain Buclaw  <ibuclaw@gdcproject.org>

	Backported from master:
	2024-03-10  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/112285
	PR d/112290
	* d-target.cc (Target::preferPassByRef): Return true for all static
	array and struct types.

2024-03-03  Iain Buclaw  <ibuclaw@gdcproject.org>

	Backported from master:
	2024-03-03  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/114171
	* d-codegen.cc (lower_struct_comparison): Keep alignment of original
	type in reinterpret cast for comparison.

2024-03-03  Iain Buclaw  <ibuclaw@gdcproject.org>

	Backported from master:
	2024-02-12  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/113758
	* d-codegen.cc (d_build_call): Force a TARGET_EXPR when callee
	destorys its arguments.
	* decl.cc (DeclVisitor::visit (VarDeclaration *)): Set
	SET_DECL_VALUE_EXPR on the temporary variable to make it a placeholder
	for the TARGET_EXPR_SLOT.

2024-03-03  Iain Buclaw  <ibuclaw@gdcproject.org>

	Backported from master:
	2024-02-12  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/113125
	* types.cc (TypeVisitor::visit (TypeStruct *)): Generate TYPE_DECL and
	apply UDAs to opaque struct declarations.

2023-10-29  Iain Buclaw  <ibuclaw@gdcproject.org>

	Backported from master:
	2023-10-29  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/110712
	* d-codegen.cc (d_build_call): Update call to convert_for_argument.
	* d-convert.cc (is_valist_parameter_type): New function.
	(check_valist_conversion): New function.
	(convert_for_assignment): Update signature.  Add check whether
	assigning va_list is permissible.
	(convert_for_argument): Likewise.
	* d-tree.h (convert_for_assignment): Update signature.
	(convert_for_argument): Likewise.
	* expr.cc (ExprVisitor::visit (AssignExp *)): Update call to
	convert_for_assignment.

2023-10-28  Iain Buclaw  <ibuclaw@gdcproject.org>

	Backported from master:
	2023-10-28  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/112270
	* d-builtins.cc (d_build_d_type_nodes): Initialize d_bool_false_node,
	d_bool_true_node.
	* d-codegen.cc (build_array_struct_comparison): Use d_bool_false_node
	instead of boolean_false_node.
	* d-convert.cc (d_truthvalue_conversion): Use d_bool_false_node and
	d_bool_true_node instead of boolean_false_node and boolean_true_node.
	* d-tree.h (enum d_tree_index): Add DTI_BOOL_FALSE and DTI_BOOL_TRUE.
	(d_bool_false_node): New macro.
	(d_bool_true_node): New macro.
	* modules.cc (build_dso_cdtor_fn): Use d_bool_false_node and
	d_bool_true_node instead of boolean_false_node and boolean_true_node.
	(register_moduleinfo): Use d_bool_type instead of boolean_type_node.

2023-08-15  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/110959
	* dmd/canthrow.d (Dsymbol_canThrow): Use foreachVar.
	* dmd/declaration.d (TupleDeclaration::needThis): Likewise.
	(TupleDeclaration::foreachVar): New function.
	(VarDeclaration::setFieldOffset): Use foreachVar.
	* dmd/dinterpret.d (Interpreter::visit (DeclarationExp)): Likewise.
	* dmd/dsymbolsem.d (DsymbolSemanticVisitor::visit (VarDeclaration)):
	Don't push tuple field members to the scope symbol table.
	(determineFields): Handle pushing tuple field members here instead.
	* dmd/dtoh.d (ToCppBuffer::visit (VarDeclaration)): Visit all tuple
	fields.
	(ToCppBuffer::visit (TupleDeclaration)): New function.
	* dmd/expression.d (expandAliasThisTuples): Use foreachVar.
	* dmd/foreachvar.d (VarWalker::visit (DeclarationExp)): Likewise.
	* dmd/ob.d (genKill): Likewise.
	(checkObErrors): Likewise.
	* dmd/semantic2.d (Semantic2Visitor::visit (TupleDeclaration)): Visit
	all tuple fields.

2023-07-07  Iain Buclaw  <ibuclaw@gdcproject.org>

	Backported from master:
	2023-07-07  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/108842
	* decl.cc (DeclVisitor::visit (VarDeclaration *)): Only emit scalar
	manifest constants.
	(get_symbol_decl): Don't generate CONST_DECL for non-scalar manifest
	constants.
	* imports.cc (ImportVisitor::visit (VarDeclaration *)): New method.

2023-07-02  Iain Buclaw  <ibuclaw@gdcproject.org>

	Backported from master:
	2023-07-02  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/110516
	* intrinsics.cc (expand_volatile_load): Set TREE_SIDE_EFFECTS on the
	expanded expression.
	(expand_volatile_store): Likewise.

2023-07-01  Iain Buclaw  <ibuclaw@gdcproject.org>

	Backported from master:
	2023-07-01  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/110514
	* decl.cc (get_symbol_decl): Set TREE_READONLY on certain kinds of
	const and immutable variables.
	* expr.cc (ExprVisitor::visit (ArrayLiteralExp *)): Set TREE_READONLY
	on immutable dynamic array literals.

2023-06-26  Iain Buclaw  <ibuclaw@gdcproject.org>

	Backported from master:
	2023-06-26  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/110359
	* d-convert.cc (convert_for_rvalue): Only apply the @safe boolean
	conversion to boolean fields of a union.
	(convert_for_condition): Call convert_for_rvalue in the default case.

2023-06-26  Iain Buclaw  <ibuclaw@gdcproject.org>

	Backported from master:
	2023-06-26  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/110113
	* dmd/escape.d (checkMutableArguments): Always allocate new buffer for
	computing escapeBy.

2023-06-06  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd 316b89f1e3.
	* dmd/VERSION: Bump version to v2.100.2.

2023-05-08  Release Manager

	* GCC 12.3.0 released.

2023-03-16  Iain Buclaw  <ibuclaw@gdcproject.org>

	Backported from master:
	2023-03-16  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/109144
	* d-codegen.cc (build_frame_type): Set frame field and type alignment.

2023-03-14  Iain Buclaw  <ibuclaw@gdcproject.org>

	Backported from master:
	2023-03-14  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/109108
	* decl.cc (function_defined_in_root_p): Remove.
	(get_symbol_decl): Set DECL_LAMBDA_FUNCTION_P on function literals.
	(start_function): Unconditionally unset DECL_EXTERNAL
	(set_linkage_for_decl): Give lambda functions one-only linkage.

2023-03-13  Iain Buclaw  <ibuclaw@gdcproject.org>

	Backported from master:
	2023-03-13  Iain Buclaw  <ibuclaw@gdcproject.org>

	* decl.cc (finish_thunk): Unset DECL_EXTERNAL on thunk.
	(make_thunk): Set DECL_EXTERNAL on thunk, don't call build_decl_tree.
	(finish_function): Call finish_thunk on forward referenced thunks.

2023-03-13  Iain Buclaw  <ibuclaw@gdcproject.org>

	Backported from master:
	2023-03-13  Iain Buclaw  <ibuclaw@gdcproject.org>

	* decl.cc (get_fndecl_result): New function.
	(get_fndecl_arguments): New function.
	(DeclVisitor::visit (FuncDeclaration *)): Adjust to call
	get_fndecl_arguments.
	(make_thunk): Adjust to call get_fndecl_arguments and
	get_fndecl_result.
	(start_function): Adjust to call get_fndecl_result.

2023-03-03  Iain Buclaw  <ibuclaw@gdcproject.org>

	Backported from master:
	2023-03-03  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/108877
	* imports.cc (ImportVisitor::visit (EnumDeclaration *)): Call
	make_import on TYPE_MAIN_VARIANT.
	(ImportVisitor::visit (AggregateDeclaration *)): Likewise.
	(ImportVisitor::visit (ClassDeclaration *)): Likewise.

2022-12-12  Iain Buclaw  <ibuclaw@gdcproject.org>

	Backported from master:
	2022-12-12  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/108055
	* decl.cc (function_defined_in_root_p): Check all enclosing template
	instances for definition in a root module.
	(function_needs_inline_definition_p): Replace call to
	function_defined_in_root_p with test for outer module `isRoot'.

2022-12-11  Iain Buclaw  <ibuclaw@gdcproject.org>

	* imports.cc (ImportVisitor::visit (OverloadSet *)): Remove "final"
	and "override" from visitor method.

2022-12-11  Iain Buclaw  <ibuclaw@gdcproject.org>

	Backported from master:
	2022-12-11  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/108050
	* decl.cc (DeclVisitor::visit (Import *)): Handle build_import_decl
	returning a TREE_LIST.
	* imports.cc (ImportVisitor::visit (OverloadSet *)): New override.

2022-11-30  Iain Buclaw  <ibuclaw@gdcproject.org>

	Backported from master:
	2022-11-30  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/107592
	* toir.cc (IRVisitor::push_unrolled_continue_label): New method.
	(IRVisitor::pop_unrolled_continue_label): New method.
	(IRVisitor::visit (UnrolledLoopStatement *)): Use them instead of
	push_continue_label and pop_continue_label.

2022-08-19  Release Manager

	* GCC 12.2.0 released.

2022-08-16  Iain Buclaw  <ibuclaw@gdcproject.org>

	Backported from master:
	2022-08-16  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/106638
	* gdc.texi: Update DIP links to point at upstream dlang/DIPs
	repository.

2022-08-15  Iain Buclaw  <ibuclaw@gdcproject.org>

	Backported from master:
	2022-08-15  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-tree.h (d_defer_declaration): Declare.
	* decl.cc (function_needs_inline_definition_p): Defer checking
	DECL_UNINLINABLE and DECL_DECLARED_INLINE_P.
	(maybe_build_decl_tree): Call d_defer_declaration instead of
	build_decl_tree.
	* modules.cc (deferred_inline_declarations): New variable.
	(build_module_tree): Set deferred_inline_declarations and a handle
	declarations pushed to it.
	(d_defer_declaration): New function.

2022-08-15  Iain Buclaw  <ibuclaw@gdcproject.org>

	Backported from master:
	2022-08-15  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/106623
	* d-codegen.cc (underlying_complex_expr): New function.
	(d_build_call): Handle passing native complex objects as the
	library-defined equivalent.
	* d-tree.h (underlying_complex_expr): Declare.
	* expr.cc (ExprVisitor::visit (DotVarExp *)): Call
	underlying_complex_expr instead of build_vconvert.

2022-08-09  Iain Buclaw  <ibuclaw@gdcproject.org>

	Backported from master:
	2022-08-09  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/106563
	* decl.cc (DeclVisitor::visit (FuncDeclaration *)): Set semanticRun
	before generating its symbol.
	(function_defined_in_root_p): New function.
	(function_needs_inline_definition_p): New function.
	(maybe_build_decl_tree): New function.
	(get_symbol_decl): Call maybe_build_decl_tree before returning symbol.
	(start_function): Use function_defined_in_root_p instead of inline
	test for locally defined symbols.
	(set_linkage_for_decl): Check for inline functions before private or
	protected symbols.

2022-08-08  Iain Buclaw  <ibuclaw@gdcproject.org>

	Backported from master:
	2022-08-08  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/106555
	* d-target.cc (Target::isReturnOnStack): Check for return type size.

2022-07-26  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd 76e3b41375.
	* dmd/VERSION: Bump version to v2.100.1.
	* decl.cc (DeclVisitor::visit (VarDeclaration *)): Evaluate RHS
	  of noreturn declaration expressions first.
	* expr.cc (ExprVisitor::visit (AssignExp *)): Don't generate
	  assignment for noreturn types.

2022-07-04  Iain Buclaw  <ibuclaw@gdcproject.org>

	Backported from master:
	2022-06-29  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/106139
	* d-convert.cc (convert_expr): Handle casting from array to vector.
	(convert_for_rvalue): Rewrite vector to array casts of the same
	element type into a constructor.
	(convert_for_assignment): Return calling convert_for_rvalue.
	* expr.cc (ExprVisitor::visit (VectorExp *)): Handle generating a
	vector expression from a static array.
	* toir.cc (IRVisitor::visit (ReturnStatement *)): Call
	convert_for_rvalue on return value.

2022-06-15  Iain Buclaw  <ibuclaw@gdcproject.org>

	Backported from master:
	2022-06-15  Iain Buclaw  <ibuclaw@gdcproject.org>

	* typeinfo.cc (make_internal_typeinfo): Set TYPE_ARTIFICIAL.

2022-06-13  Iain Buclaw  <ibuclaw@gdcproject.org>

	Backported from master:
	2022-06-13  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-tree.h (check_typeinfo_type): Add Expression* parameter.
	(build_typeinfo): Likewise.  Declare new override.
	* expr.cc (ExprVisitor): Call build_typeinfo with Expression*.
	* typeinfo.cc (check_typeinfo_type): Include expression in the
	diagnostic message.
	(build_typeinfo): New override.

2022-05-31  Iain Buclaw  <ibuclaw@gdcproject.org>

	Backported from master:
	2022-05-31  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/105544
	* d-lang.cc (d_parse_file): Zero padding past the end of the stdin
	buffer so the D lexer has a sentinel to stop parsing at.

2022-05-15  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd a53934d18.
	* dmd/VERSION: Update version to v2.100.0.
	* d-codegen.cc (d_decl_context): Use resolvedLinkage to get
	declaration linkage.
	(build_struct_literal): Track offset in bits.
	* d-gimplify.cc (d_gimplify_modify_expr): Check both operands for a
	bit-field reference.
	* d-lang.cc (d_post_options): Set flag_rtti and flag_exceptions if
	-fno-druntime was seen on command-line.
	(d_type_promotes_to): Use resolvedLinkage to get declaration linkage.
	* decl.cc (make_thunk): Likewise.
	* types.cc (layout_aggregate_members): Ignore anonymous fields in
	total count.

2022-05-06  Release Manager

	* GCC 12.1.0 released.

2022-05-05  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd 88de5e369.

2022-05-03  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd 081d61e15.
	* dmd/VERSION: Update version to v2.100.0-rc.1.

2022-04-28  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd 313d28b3d.
	* d-port.cc (Port::memicmp): Use d_size_t instead of size_t.
	(Port::valcpy): Likewise.

2022-04-21  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd eb7bee331.
	* dmd/VERSION: Update version to v2.100.0-beta.1.
	* d-lang.cc (d_handle_option): Handle OPT_frevert_dip1000.
	* lang.opt (frevert=dip1000): New option.

2022-04-13  Iain Buclaw  <ibuclaw@gdcproject.org>

	* Make-lang.in (D_FRONTEND_OBJS): Add d/common-bitfields.o,
	d/mustuse.o.
	* d-ctfloat.cc (CTFloat::isIdentical): Don't treat NaN values as
	identical.
	* dmd/MERGE: Merge upstream dmd 4d1bfcf14.
	* expr.cc (ExprVisitor::visit (VoidInitExp *)): New.

2022-04-03  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-lang.cc: Include dmd/template.h.
	(d_parse_file): Call printTemplateStats when vtemplates is set.
	* decl.cc (start_function): Remove OPT_Wtemplates warning.
	* lang.opt (Wtemplates): Remove.

2022-04-02  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd 47871363d.
	* d-builtins.cc (d_init_versions): Add predefined version identifiers
	D_PreConditions, D_PostConditions, and D_Invariants.
	* d-codegen.cc (d_build_call): Update for new front-end interface.
	(build_frame_type): Generate reference field for NRVO variables with
	nested references.
	(build_closure): Generate assignment of return address to closure.
	* d-tree.h (DECL_INSTANTIATED): Use DECL_LANG_FLAG_2.
	(bind_expr): Remove.
	* decl.cc (DeclVisitor::visit (FuncDeclaration *)): Update for new
	front-end interface.
	(get_symbol_decl): Likewise.
	(get_decl_tree): Check DECL_LANG_FRAME_FIELD before DECL_LANG_NRVO.
	Dereference the field when both are set.
	* expr.cc (ExprVisitor::visit (DeleteExp *)): Update for new front-end
	interface.
	* modules.cc (get_internal_fn): Likewise.
	* toir.cc (IRVisitor::visit (ReturnStatement *)): Likewise.

2022-03-21  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/105004
	* d-codegen.cc (build_struct_literal): Use complex_expr to build
	complex expressions from __c_complex types.

2022-03-21  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/104911
	* dmd/MERGE: Merge upstream dmd 2503f17e5.
	* d-convert.cc (convert_expr): Replace d_uns64 with dinteger_t.
	* d-lang.cc: Remove dmd/root/file.h include.
	(d_handle_option): Update for new front-end interface.
	(d_parse_file): Likewise.

2022-03-13  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd 02a3fafc6.
	* dmd/VERSION: Update version to v2.099.0.
	* imports.cc (ImportVisitor::visit (EnumDeclaration *)): Don't cache
	decl in front-end AST node.
	(ImportVisitor::visit (AggregateDeclaration *)): Likewise.
	(ImportVisitor::visit (ClassDeclaration *)): Likewise.

2022-03-11  Iain Buclaw  <ibuclaw@gdcproject.org>

	* imports.cc (imported_decls): Define.
	(class ImportVisitor): Add result_ field.
	(ImportVisitor::result): New method.
	(ImportVisitor::visit (Module *)): Store decl to result_.
	(ImportVisitor::visit (Import *)): Likewise.
	(ImportVisitor::visit (AliasDeclaration *)): Don't cache decl in
	front-end AST node.
	(ImportVisitor::visit (OverDeclaration *)): Likewise.
	(ImportVisitor::visit (FuncDeclaration *)): Likewise.
	(ImportVisitor::visit (Declaration *)): Likewise.
	(build_import_decl): Use imported_decls to cache and lookup built
	declarations.

2022-03-11  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR translation/104552
	* lang.opt (fdump-cxx-spec=): Fix typo in argument handle.
	(fpreview=fixaliasthis): Quote `alias this' as code.

2022-03-02  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd 423f19b41.

2022-02-28  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-target.cc (Target::_init): Initialize C type size fields.
	* dmd/MERGE: Merge upstream dmd cf63dd8e5.
	* dmd/VERSION: Update version to v2.099.0-rc.1.

2022-02-20  Iain Buclaw  <ibuclaw@gdcproject.org>

	* expr.cc (ExprVisitor::visit (DeleteExp *)): Remove handling of
	deleting GC allocated classes.
	* runtime.def (DELCLASS): Remove.
	(DELINTERFACE): Remove.

2022-02-20  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd cb49e99f8.
	* dmd/VERSION: Update version to v2.099.0-beta.1.
	* decl.cc (layout_class_initializer): Update call to NewExp::create.
	* expr.cc (ExprVisitor::visit (DeleteExp *)): Remove handling of
	deleting arrays and pointers.
	(ExprVisitor::visit (DotVarExp *)): Convert complex types to the
	front-end library type representing them.
	(ExprVisitor::visit (StringExp *)): Use getCodeUnit instead of charAt
	to get the value of each index in a string expression.
	* runtime.def (DELMEMORY): Remove.
	(DELARRAYT): Remove.
	* types.cc (TypeVisitor::visit (TypeEnum *)): Handle anonymous enums.

2022-02-16  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-builtins.cc (d_build_builtins_module): Set purity of DECL_PURE_P
	functions to PURE::const_.
	* d-gimplify.cc (bit_field_ref): New function.
	(d_gimplify_modify_expr): Handle implicit casting for assignments to
	bit-fields.
	(d_gimplify_unary_expr): New function.
	(d_gimplify_binary_expr): New function.
	(d_gimplify_expr): Handle UNARY_CLASS_P and BINARY_CLASS_P.
	* d-target.cc (Target::_init): Initialize bitFieldStyle.
	(TargetCPP::parameterType): Update signature.
	(Target::supportsLinkerDirective): New function.
	* dmd/MERGE: Merge upstream dmd 52844d4b1.
	* expr.cc (ExprVisitor::visit (ThrowExp *)): New function.
	* types.cc (d_build_bitfield_integer_type): New function.
	(insert_aggregate_bitfield): New function.
	(layout_aggregate_members): Handle inserting bit-fields into an
	aggregate type.

2022-01-31  Martin Liska  <mliska@suse.cz>

	PR d/104287
	* decl.cc (d_finish_decl): Remove trailing dot.

2022-01-28  Martin Liska  <mliska@suse.cz>

	* decl.cc (d_finish_decl): Do not use leading capital letter.

2022-01-17  Martin Liska  <mliska@suse.cz>

	* d-gimplify.cc: Rename .c names to .cc.
	* d-incpath.cc: Likewise.
	* lang-specs.h: Likewise.

2022-01-03  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/103840
	* dmd/MERGE: Merge upstream dmd 001bfd97b.
	* Make-lang.in (D_FRONTEND_OBJS): Rename d/complex.o to
	d/root-complex.o, and d/utf.o to d/root/utf.o.

2022-01-03  Jakub Jelinek  <jakub@redhat.com>

	* gdc.texi: Bump @copyrights-d year.


Copyright (C) 2022 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.