]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/d/ChangeLog
Daily bump.
[thirdparty/gcc.git] / gcc / d / ChangeLog
1 2020-11-29 Iain Buclaw <ibuclaw@gdcproject.org>
2
3 * d-target.def (d_minfo_section): New hook.
4 (d_minfo_start_name): New hook.
5 (d_minfo_end_name): New hook.
6 * modules.cc: Include d-target.h.
7 (register_moduleinfo): Update to use new targetdm hooks.
8
9 2020-11-29 Iain Buclaw <ibuclaw@gdcproject.org>
10
11 PR d/87788
12 * dmd/MERGE: Merge upsream dmd 45fa6cfd2.
13
14 2020-11-27 Iain Buclaw <ibuclaw@gdcproject.org>
15
16 * dmd/MERGE: Merge upstream dmd db0df3f7e.
17 * types.cc (TypeVisitor::visit (TypeFunction *)): Remove LINKpascal.
18
19 2020-11-27 Iain Buclaw <ibuclaw@gdcproject.org>
20
21 * intrinsics.cc (maybe_expand_intrinsic): Handle new intrinsics.
22 * intrinsics.def (INTRINSIC_COS): Add float and double overloads.
23 (INTRINSIC_FABS): Likewise.
24 (INTRINSIC_LDEXP): Likewise.
25 (INTRINSIC_RINT): Likewise.
26 (INTRINSIC_RNDTOL): Likewise.
27 (INTRINSIC_SIN): Likewise.
28 (INTRINSIC_TOPREC): Adjust signature.
29
30 2020-11-22 Iain Buclaw <ibuclaw@gdcproject.org>
31
32 PR d/97889
33 * expr.cc (ExprVisitor::visit (CatAssignExp *)): Enforce LTR order of
34 evaluation on left and right hand side expressions.
35
36 2020-11-20 Jakub Jelinek <jakub@redhat.com>
37
38 PR other/97911
39 * Make-lang.in (d.serial): Change from goal to a variable.
40 (.PHONY): Drop d.serial and d.prev.
41 (d21$(exeext)): Depend on $(d.serial) rather than d.serial.
42
43 2020-11-18 Jakub Jelinek <jakub@redhat.com>
44
45 * Make-lang.in (d.serial): New goal.
46 (.PHONY): Add d.serial d.prev.
47 (d21$(exeext)): Depend on d.prev. Call LINK_PROGRESS.
48
49 2020-11-18 Iain Buclaw <ibuclaw@gdcproject.org>
50
51 PR d/97843
52 * d-codegen.cc (build_assign): Evaluate TARGET_EXPR before use in
53 the right hand side of an assignment.
54 * expr.cc (ExprVisitor::visit (CatAssignExp *)): Force a TARGET_EXPR
55 on the element to append if it is a CALL_EXPR.
56
57 2020-11-18 Iain Buclaw <ibuclaw@gdcproject.org>
58
59 PR d/97842
60 * dmd/MERGE: Merge upstream dmd b6a779e49
61
62 2020-11-13 Iain Buclaw <ibuclaw@gdcproject.org>
63
64 * intrinsics.cc (expand_intrinsic_copysign): Explicitly determine
65 which built-in copysign function to call.
66
67 2020-11-13 Iain Buclaw <ibuclaw@gdcproject.org>
68
69 PR d/97644
70 * dmd/MERGE: Merge upstream dmd 95044d8e4.
71 * d-target.cc (TargetCPP::thunkMangle): New function.
72 * decl.cc (finish_thunk): Don't force expand thunks for external
73 functions.
74 (make_thunk): Emit thunks only if the function has a definition.
75 Generate correct mangling for thunks to C++ classes.
76
77 2020-11-10 Strager Neds <strager.nds@gmail.com>
78
79 * decl.cc (finish_thunk): Use new overload of
80 set_decl_section_name
81
82 2020-10-27 Iain Buclaw <ibuclaw@gdcproject.org>
83
84 * dmd/MERGE: Merge upstream dmd bec5973b0.
85 * d-target.cc (Target::critsecsize): Remove.
86 * d-target.def: Remove d_critsec_size.
87
88 2020-10-27 Iain Buclaw <ibuclaw@gdcproject.org>
89
90 * dmd/MERGE: Merge upstream dmd 0fcdaab32
91
92 2020-10-23 Jan Hubicka <hubicka@ucw.cz>
93
94 * decl.cc (finish_thunk): Update for new thunk api.
95
96 2020-10-22 Jan Hubicka <hubicka@ucw.cz>
97
98 * decl.cc: Include tree-nested.h
99 (get_symbol_decl): Update for new nested function info.
100
101 2020-10-12 Iain Buclaw <ibuclaw@gdcproject.org>
102
103 * dmd/MERGE: Merge upstream dmd 70aabfb51
104
105 2020-10-12 Iain Buclaw <ibuclaw@gdcproject.org>
106
107 * dmd/MERGE: Merge upstream dmd 3a9790525
108 * d-target.cc (Target::isVectorTypeSupported): Adjust return codes for
109 invalid size and invalid base type.
110
111 2020-09-12 Iain Buclaw <ibuclaw@gdcproject.org>
112
113 PR d/97002
114 * d-codegen.cc (d_build_call): Set input_location on CALL_EXPR.
115 * d-lang.cc: Include function.h.
116 (d_type_promotes_to): Do default conversions for C and C++ functions.
117 * intrinsics.cc (expand_intrinsic_vaarg): Use build1_loc to build
118 VA_ARG_EXPR.
119
120 2020-09-12 Iain Buclaw <ibuclaw@gdcproject.org>
121
122 * d-builtins.cc (d_build_d_type_nodes): Call build_ctype() on all
123 basic front-end types.
124 * decl.cc (DeclVisitor::visit (EnumDeclaration *)): Always add decl to
125 current binding level.
126 (build_type_decl): Build TYPE_DECL as a typedef if not for an enum or
127 record type.
128 * types.cc (TypeVisitor::visit (TypeEnum *)): Set underlying type for
129 ENUMERAL_TYPEs. Build TYPE_DECL for non-numeric enums.
130
131 2020-09-10 Iain Buclaw <ibuclaw@gdcproject.org>
132
133 * lang.opt (Waddress): Enable warning by -Wextra.
134 (Wcast-result): Likewise.
135 (Wunknown-pragmas): Likewise.
136
137 2020-09-10 Iain Buclaw <ibuclaw@gdcproject.org>
138
139 * decl.cc (DeclVisitor::visit (VarDeclaration *)): Don't warn about
140 variables initialized with 'void'.
141
142 2020-09-10 Iain Buclaw <ibuclaw@gdcproject.org>
143
144 * d-convert.cc (convert_expr): Warn when casting from a D class to a
145 C++ class.
146
147 2020-09-04 Iain Buclaw <ibuclaw@gdcproject.org>
148
149 PR d/96924
150 * expr.cc (ExprVisitor::visit (CatAssignExp *)): Don't force
151 temporaries needlessly.
152
153 2020-09-02 Iain Buclaw <ibuclaw@gdcproject.org>
154
155 PR d/96869
156 * d-builtins.cc (build_frontend_type): Don't expose intrinsics that
157 use unsupported vector types.
158 * d-target.cc (Target::isVectorTypeSupported): Restrict to supporting
159 only if TARGET_VECTOR_MODE_SUPPORTED_P is true. Don't allow complex
160 or boolean vector types.
161
162 2020-08-31 Iain Buclaw <ibuclaw@gdcproject.org>
163
164 * d-target.cc (Target::_init): Don't set classinfosize.
165 * d-tree.h (base_vtable_offset): Move under typeinfo.cc section.
166 * decl.cc (base_vtable_offset): Move to...
167 * typeinfo.cc (base_vtable_offset): ...here. Get base offset from
168 internal TypeInfo_Class type.
169 * intrinsics.cc (expand_intrinsic_bt): Use pointer TYPE_SIZE for
170 setting bitsize value. Build integer constants of correct type.
171
172 2020-08-26 Iain Buclaw <ibuclaw@gdcproject.org>
173
174 * dmd/MERGE: Merge upstream dmd e49192807
175
176 2020-08-26 Iain Buclaw <ibuclaw@gdcproject.org>
177
178 PR d/96156
179 * d-frontend.cc (retStyle): Only return RETstack for struct and static
180 array types.
181 * decl.cc (DeclVisitor::visit (FuncDeclaration *)): Use NRVO return
182 for all TREE_ADDRESSABLE types. Set shidden to the RESULT_DECL.
183 * expr.cc (ExprVisitor::visit (CallExp *)): Force TARGET_EXPR if the
184 'this' pointer reference is a CONSTRUCTOR.
185 (ExprVisitor::visit (StructLiteralExp *)): Generate assignment to the
186 symbol to initialize with literal.
187 * toir.cc (IRVisitor::visit (ReturnStatement *)): Detect returning
188 struct literals and write directly into the RESULT_DECL.
189 * dmd/MERGE: Merge upstream dmd fe5f388d8.
190
191 2020-08-26 Iain Buclaw <ibuclaw@gdcproject.org>
192
193 * dmd/MERGE: Merge upstream dmd cb4a96fae
194
195 2020-08-26 Iain Buclaw <ibuclaw@gdcproject.org>
196
197 * d-lang.cc (d_parse_file): Use read() to load contents from stdin,
198 allow the front-end to free the memory after parsing.
199 * dmd/MERGE: Merge upstream dmd 2cc25c219.
200
201 2020-08-26 Iain Buclaw <ibuclaw@gdcproject.org>
202
203 PR d/96153
204 * d-codegen.cc (build_address): Create a temporary for CALL_EXPRs
205 returning trivial aggregates, pre-filling it with zeroes.
206 (build_memset_call): Use build_zero_cst if setting the entire object.
207
208 2020-08-26 Iain Buclaw <ibuclaw@gdcproject.org>
209
210 PR d/96157
211 * d-codegen.cc (d_build_call): Handle TREE_ADDRESSABLE static arrays.
212 * types.cc (make_array_type): Propagate TREE_ADDRESSABLE from base
213 type to static array.
214
215 2020-08-26 Iain Buclaw <ibuclaw@gdcproject.org>
216
217 * d-gimplify.cc (d_gimplify_expr): Move lowering of each tree node to
218 separate functions.
219 (d_gimplify_modify_expr): New function.
220 (d_gimplify_addr_expr): New function.
221 (d_gimplify_call_expr): New function.
222 (d_gimplify_unsigned_rshift_expr): New function.
223
224 2020-08-26 Iain Buclaw <ibuclaw@gdcproject.org>
225
226 * Make-lang.in (D_OBJS): Add d-gimplify.o.
227 * d-lang.cc (empty_modify_p): Move to d-gimplify.cc.
228 (d_gimplify_expr): Likewise.
229 * d-tree.h (d_gimplify_expr): Declare.
230 * d-gimplify.cc: New file.
231
232 2020-08-20 Iain Buclaw <ibuclaw@gdcproject.org>
233
234 * dmd/MERGE: Merge upstream dmd 1b5a53d01.
235
236 2020-08-18 Iain Buclaw <ibuclaw@gdcproject.org>
237
238 PR d/96301
239 * decl.cc (DeclVisitor::visit (FuncDeclaration *)): Only return
240 non-trivial structs by invisible reference.
241
242 2020-08-04 Iain Buclaw <ibuclaw@gdcproject.org>
243
244 PR d/96153
245 * d-tree.h (build_expr): Add literalp argument.
246 * expr.cc (ExprVisitor): Add literalp_ field.
247 (ExprVisitor::ExprVisitor): Initialize literalp_.
248 (ExprVisitor::visit (AssignExp *)): Call memset() on blits where RHS
249 is a struct literal. Elide assignment if initializer is all zeroes.
250 (ExprVisitor::visit (CastExp *)): Forward literalp_ to generation of
251 subexpression.
252 (ExprVisitor::visit (AddrExp *)): Likewise.
253 (ExprVisitor::visit (ArrayLiteralExp *)): Use memset() to pre-fill
254 object with zeroes. Set literalp in subexpressions.
255 (ExprVisitor::visit (StructLiteralExp *)): Likewise.
256 (ExprVisitor::visit (TupleExp *)): Set literalp in subexpressions.
257 (ExprVisitor::visit (VectorExp *)): Likewise.
258 (ExprVisitor::visit (VectorArrayExp *)): Likewise.
259 (build_expr): Forward literal_p to ExprVisitor.
260
261 2020-08-04 Iain Buclaw <ibuclaw@gdcproject.org>
262
263 PR d/96429
264 * expr.cc (ExprVisitor::visit (BinExp*)): Use EXACT_DIV_EXPR for
265 pointer diff expressions.
266
267 2020-08-03 Iain Buclaw <ibuclaw@gdcproject.org>
268
269 PR d/96254
270 * d-codegen.cc (error_no_frame_access): New.
271 (get_frame_for_symbol): Use fdparent name in error message.
272 (get_framedecl): Replace call to assert with error.
273 * d-tree.h (error_no_frame_access): Declare.
274 * decl.cc (get_decl_tree): Detect recursion and error.
275
276 2020-08-03 Iain Buclaw <ibuclaw@gdcproject.org>
277
278 PR d/96250
279 * dmd/MERGE: Merge upstream dmd c2274e56a.
280
281 2020-07-31 Iain Buclaw <ibuclaw@gdcproject.org>
282
283 PR d/96393
284 * intrinsics.cc (expand_intrinsic_bt): Don't generate BIT_NOT_EXPR for
285 btr32 intrinsic.
286
287 2020-07-30 Iain Buclaw <ibuclaw@gdcproject.org>
288
289 PR d/96152
290 * d-codegen.cc (build_array_from_exprs): New function.
291 * d-tree.h (build_array_from_exprs): Declare.
292 * expr.cc (ExprVisitor::visit (AssocArrayLiteralExp *)): Use
293 build_array_from_exprs to generate key and value arrays.
294
295 2020-07-30 Iain Buclaw <ibuclaw@gdcproject.org>
296
297 PR d/96154
298 * gdc.texi (Warnings): Document -Wvarargs.
299 * lang.opt: Add -Wvarargs
300
301 2020-07-30 Iain Buclaw <ibuclaw@gdcproject.org>
302
303 PR d/96140
304 * intrinsics.cc (expand_intrinsic_vaarg): Handle ref parameters as
305 arguments to va_arg().
306 (expand_intrinsic_vastart): Handle ref parameters as arguments to
307 va_start().
308
309 2020-07-30 Iain Buclaw <ibuclaw@gdcproject.org>
310
311 * expr.cc (ExprVisitor::visit (AssignExp *)): Inline bounds checking
312 for simple array assignments.
313
314 2020-07-30 Iain Buclaw <ibuclaw@gdcproject.org>
315
316 * d-codegen.cc (build_memcmp_call): New function.
317 (build_memcpy_call): New function.
318 (build_memset_call): New function.
319 (build_float_identity): Call build_memcmp_call.
320 (lower_struct_comparison): Likewise.
321 (build_struct_comparison): Likewise.
322 * d-tree.h (build_memcmp_call): Declare.
323 (build_memcpy_call): Declare.
324 (build_memset_call): Declare.
325 * expr.cc (ExprVisitor::visit (EqualExp *)): Call build_memcmp_call.
326 (ExprVisitor::visit (AssignExp *)): Call build_memset_call.
327 (ExprVisitor::visit (ArrayLiteralExp *)): Call build_memcpy_call.
328 (ExprVisitor::visit (StructLiteralExp *)): Call build_memset_call.
329
330 2020-07-30 Iain Buclaw <ibuclaw@gdcproject.org>
331
332 * expr.cc (needs_postblit): Move out of ExprVisitor as a static
333 function. Update all callers.
334 (needs_dtor): Likewise.
335 (lvalue_p): Likewise.
336 (binary_op): Likewise.
337 (binop_assignment): Likewise.
338
339 2020-07-30 Iain Buclaw <ibuclaw@gdcproject.org>
340
341 * intrinsics.cc (expand_intrinsic_rotate): Add function.
342 (maybe_expand_intrinsic): Handle rol and ror intrinsics.
343 * intrinsics.def (ROL): Add intrinsic.
344 (ROL_TIARG): Add intrinsic.
345 (ROR): Add intrinsic.
346 (ROR_TIARG): Add intrinsic.
347
348 2020-07-30 Iain Buclaw <ibuclaw@gdcproject.org>
349
350 * d-tree.h (DEF_D_INTRINSIC): Rename second argument from A to B.
351 * intrinsics.cc (intrinsic_decl): Add built_in field.
352 (DEF_D_INTRINSIC): Rename second argument from ALIAS to BUILTIN.
353 (maybe_set_intrinsic): Handle new intrinsic codes.
354 (expand_intrinsic_bt): Likewise.
355 (expand_intrinsic_checkedint): Likewise.
356 (expand_intrinsic_bswap): Remove.
357 (expand_intrinsic_sqrt): Remove.
358 (maybe_expand_intrinsic): Group together intrinsic cases that map
359 directly to gcc built-ins.
360 * intrinsics.def (DEF_D_BUILTIN): Rename second argument from A to B.
361 Update all callers to pass equivalent DECL_FUNCTION_CODE.
362 (DEF_CTFE_BUILTIN): Likewise.
363 (STD_COS): Remove intrinsic.
364 (STD_FABS): Remove intrinsic.
365 (STD_LDEXP): Remove intrinsic.
366 (STD_RINT): Remove intrinsic.
367 (STD_RNDTOL): Remove intrinsic.
368 (STD_SIN): Remove intrinsic.
369 (STD_SQRTF): Remove intrinsic.
370 (STD_SQRT): Remove intrinsic.
371 (STD_SQRTL): Remove intrinsic.
372
373 2020-06-28 Iain Buclaw <ibuclaw@gdcproject.org>
374
375 * dmd/MERGE: Merge upstream dmd 8508c4e68.
376
377 2020-06-25 Iain Buclaw <ibuclaw@gdcproject.org>
378
379 * decl.cc (get_symbol_decl): Do not implicitly set
380 DECL_DECLARED_INLINE_P on member functions.
381
382 2020-06-25 Iain Buclaw <ibuclaw@gdcproject.org>
383
384 * d-lang.cc (d_gimplify_expr_p): Make static.
385 (d_parse_file): Likewise.
386 (d_signed_or_unsigned_type): Move to types.cc.
387 (d_unsigned_type): Likewise.
388 (d_signed_type): Likewise.
389 * d-tree.h (d_unsigned_type): Change the location in file.
390 (d_signed_type): Likewise.
391 * types.cc (d_signed_or_unsigned_type): Moved from d-lang.cc.
392 (d_unsigned_type): Likewise.
393 (d_signed_type): Likewise.
394
395 2020-06-25 Iain Buclaw <ibuclaw@gdcproject.org>
396
397 PR d/95075
398 * dmd/MERGE: Merge upstream dmd 4be011355.
399
400 2020-06-25 Iain Buclaw <ibuclaw@gdcproject.org>
401
402 PR d/95250
403 * dmd/MERGE: Merge upstream dmd 90450f3ef.
404
405 2020-06-25 Iain Buclaw <ibuclaw@gdcproject.org>
406
407 * d-lang.cc (d_parse_file): Replace OutBuffer with obstack.
408
409 2020-06-25 Iain Buclaw <ibuclaw@gdcproject.org>
410
411 * dmd/MERGE: Merge upstream dmd 5fc1806cd.
412 * d-lang.cc (d_parse_file): Use peekChars to get string representation
413 of OutBuffer data.
414
415 2020-06-25 Iain Buclaw <ibuclaw@gdcproject.org>
416
417 PR d/95173
418 * d-attribs.cc (uda_attribute_p): Don't search target attribute table
419 if NULL.
420
421 2020-06-25 Iain Buclaw <ibuclaw@gdcproject.org>
422
423 * decl.cc (DeclVisitor::visit (VarDeclaration *)): Don't set
424 DECL_INITIAL if initializer is 'void'.
425
426 2020-06-25 Iain Buclaw <ibuclaw@gdcproject.org>
427
428 * d-lang.cc (d_init_options): Turn on deprecation warnings by default.
429
430 2020-06-25 Iain Buclaw <ibuclaw@gdcproject.org>
431
432 * dmd/MERGE: Merge upstream dmd 4f1046222.
433 * toir.cc (IRVisitor::visit (OnScopeGuardStatement *)): Rename to ...
434 (IRVisitor::visit (ScopeGuardStatement *)): ... this.
435
436 2020-06-16 Iain Buclaw <ibuclaw@gdcproject.org>
437
438 * d-attribs.cc (handle_noreturn_attribute): Remove names of unused
439 function parameters.
440 (handle_leaf_attribute): Likewise.
441 (handle_const_attribute): Likewise.
442 (handle_malloc_attribute): Likewise.
443 (handle_pure_attribute): Likewise.
444 (handle_novops_attribute): Likewise.
445 (handle_nonnull_attribute): Likewise.
446 (handle_nothrow_attribute): Likewise.
447 (handle_type_generic_attribute): Likewise.
448 (handle_transaction_pure_attribute): Likewise.
449 (handle_returns_twice_attribute): Likewise.
450 (handle_fnspec_attribute): Likewise.
451 (handle_always_inline_attribute): Likewise.
452 (d_handle_noinline_attribute): Likewise.
453 (d_handle_forceinline_attribute): Likewise.
454 (d_handle_flatten_attribute): Likewise.
455 (d_handle_noclone_attribute): Likewise.
456 (d_handle_section_attribute): Likewise.
457 (d_handle_alias_attribute): Likewise.
458 (d_handle_weak_attribute): Likewise.
459
460 2020-06-16 Iain Buclaw <ibuclaw@gdcproject.org>
461
462 * d-attribs.cc: Update code formatting in a consistant style.
463 * d-builtins.cc: Likewise.
464 * d-codegen.cc: Likewise.
465 * d-compiler.cc: Likewise.
466 * d-convert.cc: Likewise.
467 * d-diagnostic.cc: Likewise.
468 * d-frontend.cc: Likewise.
469 * d-lang.cc: Likewise.
470 * d-longdouble.cc: Likewise.
471 * d-port.cc: Likewise.
472 * d-spec.cc: Likewise.
473 * d-tree.h: Likewise.
474 * decl.cc: Likewise.
475 * expr.cc: Likewise.
476 * longdouble.h: Likewise.
477 * modules.cc: Likewise.
478 * toir.cc: Likewise.
479 * typeinfo.cc: Likewise.
480
481 2020-06-16 Iain Buclaw <ibuclaw@gdcproject.org>
482
483 * d-builtins.cc: Update quotation formatting of comments.
484 * d-codegen.cc: Likewise.
485 * d-lang.cc: Likewise.
486 * decl.cc: Likewise.
487 * expr.cc: Likewise.
488 * imports.cc: Likewise.
489 * runtime.cc: Likewise.
490 * toir.cc: Likewise.
491 * typeinfo.cc: Likewise.
492 * types.cc: Likewise.
493
494 2020-06-16 Iain Buclaw <ibuclaw@gdcproject.org>
495
496 * d-diagnostic.cc (expand_d_format): Replace OutBuffer with obstack.
497 (d_diagnostic_report_diagnostic): Don't free xformat.
498 * d-lang.cc (struct d_option_data): Change deps_target type from
499 OutBuffer to vec <const char *>.
500 (deps_add_target): Update to push each target to deps_target.
501 (deps_write_string): New function.
502 (deps_write): Change buffer type to obstack* and remove colmax.
503 (d_init_options): Update initialization of deps_target.
504 (d_parse_file): Replace OutBuffer with obstack.
505
506 2020-06-16 Iain Buclaw <ibuclaw@gdcproject.org>
507
508 * d-lang.cc (d_parse_file): Replace uses of File with FILE.
509
510 2020-06-16 Iain Buclaw <ibuclaw@gdcproject.org>
511
512 * d-codegen.cc (build_array_bounds_call): New function.
513 (build_bounds_condition): Use build_array_bounds_call.
514 * d-lang.cc (d_init_options): Explicitly set default check action to
515 CHECKACTION_D.
516 (d_post_options): Set check action to CHECKACTION_C if the flag
517 -fno-druntime was seen.
518 * d-tree.h (build_array_bounds_call): Declare.
519 * expr.cc (ExprVisitor::visit (AssertExp *)): Use
520 build_array_bounds_call.
521
522 2020-06-16 Iain Buclaw <ibuclaw@gdcproject.org>
523
524 * d-attribs.cc (build_attributes): Use toStringExp instead of cast.
525 * toir.cc (IRVisitor::visit): Likewise.
526
527 2020-06-16 Iain Buclaw <ibuclaw@gdcproject.org>
528
529 * d-attribs.cc (build_attributes): Use isXxxxExp helpers instead of
530 explicit casts.
531 * d-codegen.cc (d_build_call): Likewise.
532 * d-compiler.cc (Compiler::paintAsType): Likewise.
533 * decl.cc (ExprVisitor::visit): Likewise.
534 (layout_class_initializer): Likewise.
535 * expr.cc (ExprVisitor::lvalue_p): Likewise
536 (ExprVisitor::visit): Likewise.
537 * types.cc (layout_aggregate_members): Likewise.
538
539 2020-06-16 Iain Buclaw <ibuclaw@gdcproject.org>
540
541 * d-frontend.cc (eval_builtin): Use toTypeFunction instead of cast.
542 * decl.cc (DeclVisitor::visit): Likewise.
543 * toir.cc (IRVisitor::visit): Likewise.
544 * typeinfo.cc (TypeInfoVisitor::visit): Likewise.
545
546 2020-06-16 Iain Buclaw <ibuclaw@gdcproject.org>
547
548 * d-builtins.cc (d_eval_constant_expression): Use isTypeXxxx helpers
549 instead of explicit casts.
550 (d_build_builtins_module): Likewise.
551 * d-codegen.cc (get_array_length): Likewise.
552 (identity_compare_p): Likewise.
553 (lower_struct_comparison): Likewise.
554 (build_array_from_val): Likewise.
555 (array_bounds_check): Likewise.
556 (get_function_type): Likewise.
557 (d_build_call): Likewise.
558 * d-compiler.cc (Compiler::paintAsType): Likewise.
559 * d-convert.cc (convert_expr): Likewise.
560 (convert_for_assignment): Likewise.
561 * d-lang.cc (d_classify_record): Likewise.
562 (d_build_eh_runtime_type): Likewise.
563 * decl.cc (DeclVisitor::visit): Likewise.
564 * expr.cc (ExprVisitor::needs_postblit): Likewise.
565 (ExprVisitor::needs_dtor): Likewise.
566 (ExprVisitor::visit): Likewise.
567 * imports.cc (ImportVisitor::visit): Likewise.
568 * typeinfo.cc (get_typeinfo_kind): Likewise.
569 (TypeInfoVisitor::visit): Likewise.
570 (TypeDeclInfoVisitor::visit): Likewise.
571 * types.cc (merge_aggregate_types): Likewise.
572 (TypeVisitor::visit): Likewise.
573
574 2020-06-14 Iain Buclaw <ibuclaw@gdcproject.org>
575
576 * expr.cc (ExprVisitor::visit (AssocArrayLiteralExp *)): Fix line
577 lengths, no functional change.
578 * typeinfo.cc (TypeInfoVisitor::layout_interfaces): Likewise.
579 (layout_classinfo_interfaces): Likewise.
580
581 2020-06-09 Iain Buclaw <ibuclaw@gdcproject.org>
582
583 * dmd/MERGE: Merge upstream dmd 13d67c575.
584 * d-builtins.cc (build_frontend_type): Update call to
585 TypeVector::create.
586 * d-frontend.cc (Global::_init): Move setting of errorLimit to ...
587 * d-lang.cc (d_init_options): ... here. Update for new field
588 location of errorLimit.
589 (d_post_options): Likewise.
590 * d-port.cc (Port::readwordLE): Update signature.
591 (Port::readwordBE): Likewise.
592 (Port::readlongLE): Likewise.
593 (Port::readlongBE): Likewise.
594 * decl.cc (get_symbol_decl): Update for new field types.
595
596 2020-06-08 Iain Buclaw <ibuclaw@gdcproject.org>
597
598 PR d/95573
599 * dmd/MERGE: Merge upstream dmd 5041e56f1.
600
601 2020-06-08 Iain Buclaw <ibuclaw@gdcproject.org>
602
603 * dmd/MERGE: Merge upstream dmd 955b8b36f.
604 * expr.cc (ExprVisitor::visit (AndAndExp *)): Rename type to ...
605 (ExprVisitor::visit (LogicalExp *)): ... this. Handle both 'and if'
606 and 'or if' expression nodes.
607 (ExprVisitor::visit (OrOrExp *)): Remove.
608
609 2020-06-07 Iain Buclaw <ibuclaw@gdcproject.org>
610
611 * dmd/MERGE: Merge upstream dmd 73d8e2fec.
612 * decl.cc (get_symbol_decl): Use new Prot::Kind enum.
613 * modules.cc (get_internal_fn): Likewise.
614
615 2020-06-07 Iain Buclaw <ibuclaw@gdcproject.org>
616
617 * dmd/MERGE: Merge upstream dmd 108ca1bcd.
618 * d-diagnostic.cc (expand_d_format): Adjust to use extractChars().
619 * d-frontend.cc (Loc::toChars): Likewise.
620 * d-lang.cc (deps_write): Likewise.
621 (d_parse_file): Likewise.
622 * decl.cc (d_mangle_decl): Likewise.
623 * intrinsics.cc (maybe_set_intrinsic): Likewise.
624
625 2020-06-07 Iain Buclaw <ibuclaw@gdcproject.org>
626
627 * dmd/MERGE: Merge upstream dmd b0df0e982.
628 * d-builtins.cc (build_frontend_type): Use VarArg for varargs_p.
629 * d-codegen.cc (declaration_type): Call TypeFunction::create with
630 argument VARARGnone.
631 (parameter_type): Likewise.
632 (d_build_call): Use new field names and member functions.
633 * d-target.cc (Target::cppParameterType): Call TypeFunction::create
634 with argument VARARGnone.
635 * types.cc (TypeVisitor::visit (TypeFunction *): Use new field names
636 and member functions.
637
638 2020-06-07 Iain Buclaw <ibuclaw@gdcproject.org>
639
640 * dmd/MERGE: Merge upstream dmd 1831b24ff.
641 * d-lang.cc (d_init_options): Remove initialization of updated fields.
642 (d_handle_option): Adjust for new field types.
643
644 2020-06-07 Iain Buclaw <ibuclaw@gdcproject.org>
645
646 * dmd/MERGE: Merge upstream dmd cef1e7991.
647 * d-lang.cc (d_parse_file): Adjust for new field types.
648
649 2020-06-05 Iain Buclaw <ibuclaw@gdcproject.org>
650
651 * dmd/MERGE: Merge upstream dmd 740f3d1ea.
652 * d-lang.cc (d_handle_option): Use new fields to save debug and
653 version levels passed over command-line.
654 (d_post_options): Add them to front-end here.
655
656 2020-06-05 Iain Buclaw <ibuclaw@gdcproject.org>
657
658 * dmd/MERGE: Merge upstream dmd f5638c7b8.
659 * d-builtins.cc (d_init_versions): Use new CHECKENABLE enum.
660 * d-codegen.cc (array_bounds_check): Likewise.
661 (build_frame_type): Likewise.
662 (get_frameinfo): Likewise.
663 * d-lang.cc (d_init_options): Likewise.
664 (d_init_options_struct): Don't initialize x_flag_bounds_check.
665 (d_handle_option): Use new CHECKENABLE enum.
666 (d_post_options): Likewise. Set flag_bounds_check here.
667 * expr.cc (ExprVisitor::visit(AssertExp *)): Use new CHECKENABLE enum.
668
669 2020-06-05 Iain Buclaw <ibuclaw@gdcproject.org>
670
671 * dmd/MERGE: Merge upstream dmd 56f0a65c4.
672 * d-builtins.cc (build_frontend_type): Remove static.
673 (d_build_builtins_module): Use target.va_listType() to get front-end
674 type for va_list.
675 (d_init_builtins): Move creation of va_list to Target::va_listType.
676 * d-codegen.cc (build_interface_binfo): Use new target global.
677 (build_vindex_ref): Likewise.
678 (identity_compare_p): Likewise.
679 * d-ctfloat.cc (CTFloat::parse): Likewise.
680 * d-lang.cc (d_init): Likewise.
681 * d-port.cc (Port::isFloat32LiteralOutOfRange): Likewise.
682 (Port::isFloat64LiteralOutOfRange): Likewise.
683 * d-target.cc (define_float_constants): Initialize constants through a
684 reference, instead of setting globals.
685 (Target::_init): Initialize new fields instead of setting globals.
686 (Target::va_listType): Build front-end type from va_list_type_node.
687 (Target::toCppMangle): Renamed to ...
688 (TargetCPP::toMangle): ... this.
689 (Target::cppTypeInfoMangle): Renamed to ...
690 (TargetCPP::typeInfoMangle): ... this.
691 (Target::cppTypeMangle): Renamed to ...
692 (TargetCPP::typeMangle): this.
693 (Target::cppParameterType): Renamed to ...
694 (TargetCPP::parameterType): ... this. Use target.va_listType() to get
695 front-end type for va_list.
696 (Target::cppFundamentalType): Renamed to ...
697 (TargetCPP::fundamentalType): ... this.
698 * d-tree.h (build_frontend_type): Declare.
699 * decl.cc (base_vtable_offset): Use new target global.
700 * typeinfo.cc (layout_classinfo_interfaces): Likewise.
701 (layout_cpp_typeinfo): Likewise.
702 * types.cc (valist_array_p): Use target.va_listType() to get front-end
703 type for va_list.
704 (layout_aggregate_type): Use new target global.
705
706 2020-06-05 Iain Buclaw <ibuclaw@gdcproject.org>
707
708 * dmd/MERGE: Merge upstream dmd 6d5bffa54.
709 * d-builtins.cc (maybe_set_builtin_1): Update call to
710 Condition::include().
711 * decl.cc (DeclVisitor::visit(AttribDeclaration *)): Likewise.
712 * types.cc (layout_aggregate_members): Likewise.
713
714 2020-06-04 Iain Buclaw <ibuclaw@gdcproject.org>
715
716 * dmd/MERGE: Merge upstream dmd 48d704f08.
717 * d-attribs.cc (build_attributes): Use new field name.
718 * d-builtins.cc (build_frontend_type): Likewise.
719 (maybe_set_builtin_1): Likewise.
720 (d_maybe_set_builtin): Likewise.
721 * d-codegen.cc (build_interface_binfo): Likewise.
722 (identity_compare_p): Likewise.
723 (lower_struct_comparison): Likewise.
724 (build_struct_comparison): Likewise.
725 (d_build_call): Likewise.
726 (build_frame_type): Likewise.
727 (build_closure): Likewise.
728 * d-compiler.cc (Compiler::paintAsType): Likewise.
729 (Compiler::loadModule): Likewise.
730 * d-incpath.cc (add_globalpaths): Likewise.
731 (add_filepaths): Likewise.
732 (add_import_paths): Likewise.
733 * d-lang.cc (deps_write): Likewise.
734 (d_parse_file): Likewise.
735 * decl.cc (gcc_attribute_p): Likewise.
736 (base_vtable_offset): Likewise.
737 (get_vtable_decl): Likewise.
738 (build_class_instance): Likewise.
739 * expr.cc (class ExprVisitor): Likewise.
740 * modules.cc (layout_moduleinfo_fields): Likewise.
741 (layout_moduleinfo): Likewise.
742 (build_module_tree): Likewise.
743 * toir.cc (class IRVisitor): Likewise.
744 * typeinfo.cc (class TypeInfoVisitor): Likewise.
745 (layout_classinfo_interfaces): Likewise.
746 * types.cc (layout_aggregate_members): Likewise.
747 (layout_aggregate_type): Likewise.
748
749 2020-06-04 Iain Buclaw <ibuclaw@gdcproject.org>
750
751 * dmd/MERGE: Merge upstream dmd 47ed0330f.
752
753 2020-06-04 Iain Buclaw <ibuclaw@gdcproject.org>
754
755 * Make-lang.in (D_OBJS): Add d-compiler.o, d-ctfloat.o, d-port.o.
756 * d-frontend.cc (Port::memicmp): Move to d-port.cc.
757 (Port::strupr): Likewise.
758 (Port::isFloat32LiteralOutOfRange): Likewise.
759 (Port::isFloat64LiteralOutOfRange): Likewise.
760 (Port::readwordLE): Likewise.
761 (Port::readwordBE): Likewise.
762 (Port::readlongLE): Likewise.
763 (Port::readlongBE): Likewise.
764 (Port::valcpy): Likewise.
765 (CTFloat::fabs): Move to d-ctfloat.cc.
766 (CTFloat::ldexp): Likewise.
767 (CTFloat::isIdentical): Likewise.
768 (CTFloat::isNaN): Likewise.
769 (CTFloat::isSNaN): Likewise.
770 (CTFloat::isInfinity): Likewise.
771 (CTFloat::parse): Likewise.
772 (CTFloat::sprint): Likewise.
773 (CTFloat::hash): Likewise.
774 (Compiler::genCmain): Move to d-compiler.cc.
775 (Compiler::paintAsType): Likewise.
776 (Compiler::loadModule): Likewise.
777 * d-compiler.cc: New file.
778 * d-ctfloat.cc: New file.
779 * d-port.cc: New file.
780
781 2020-06-02 Iain Buclaw <ibuclaw@gdcproject.org>
782
783 * decl.cc (DeclVisitor::build_dsymbol): New function.
784 (DeclVisitor::visit (TupleDeclaration *)): Use build_dsymbol to
785 traverse AST instead of accept.
786 (DeclVisitor::visit (AttribDeclaration *)): Likewise.
787 (DeclVisitor::visit (Nspace *)): Likewise.
788 (DeclVisitor::visit (TemplateDeclaration *)): Likewise.
789 (DeclVisitor::visit (TemplateInstance *)): Likewise.
790 (DeclVisitor::visit (TemplateMixin *)): Likewise.
791 (DeclVisitor::visit (StructDeclaration *)): Likewise.
792 (DeclVisitor::visit (ClassDeclaration *)): Likewise.
793 (DeclVisitor::visit (InterfaceDeclaration *)): Likewise.
794 (DeclVisitor::visit (VarDeclaration *)): Likewise.
795 (build_decl_tree): Likewise.
796
797 2020-06-02 Iain Buclaw <ibuclaw@gdcproject.org>
798
799 * d-builtins.cc (build_frontend_type): Handle struct fields with NULL
800 DECL_NAME. Use byte_position to get the real field offset.
801
802 2020-05-06 Iain Buclaw <ibuclaw@gdcproject.org>
803
804 PR d/94970
805 * d-codegen.cc (force_target_expr): Move create_temporary_var
806 implementation inline here.
807 (create_temporary_var): Remove.
808 (maybe_temporary_var): Remove.
809 (bind_expr): Remove.
810 * d-convert.cc (d_array_convert): Use build_local_temp to generate
811 temporaries, and generate its assignment.
812 * d-tree.h (create_temporary_var): Remove.
813 (maybe_temporary_var): Remove.
814 (d_array_convert): Remove vars argument.
815 * expr.cc (ExprVisitor::visit (CatExp *)): Use build_local_temp to
816 generate temporaries, don't wrap them in a BIND_EXPR.
817 (ExprVisitor::visit (NewExp *)): Likewise.
818
819 2020-04-30 Iain Buclaw <ibuclaw@gdcproject.org>
820
821 * gdc.texi (Options for Linking): Clarify usage of -defaultlib= and
822 -debuglib= options.
823
824 2020-04-29 Iain Buclaw <ibuclaw@gdcproject.org>
825
826 * d-codegen.cc (d_decl_context): Don't include module in the name of
827 class and struct types that aren't extern(D).
828
829 2020-04-27 Iain Buclaw <ibuclaw@gdcproject.org>
830
831 PR d/94777
832 * d-builtins.cc (build_frontend_type): Set parent for generated
833 fields of built-in types.
834 * d-codegen.cc (argument_reference_p): Rename to ...
835 (parameter_reference_p): ... this.
836 (type_passed_as): Rename to ...
837 (parameter_type): ... this. Make TREE_ADDRESSABLE types restrict.
838 (d_build_call): Move handling of non-POD types here from ...
839 * d-convert.cc (convert_for_argument): ... here.
840 * d-tree.h (argument_reference_p): Rename declaration to ...
841 (parameter_reference_p): ... this.
842 (type_passed_as): Rename declaration to ...
843 (parameter_type): ... this.
844 * types.cc (TypeVisitor::visit (TypeFunction *)): Update caller.
845
846 2020-04-26 Iain Buclaw <ibuclaw@gdcproject.org>
847
848 * decl.cc (get_symbol_decl): Set DECL_DECLARED_INLINE_P or
849 DECL_UNINLINABLE for declarations with pragma(inline).
850 * toir.cc (IRVisitor::visit (GccAsmStatement *)): Set ASM_INLINE_P if
851 in function decorated with pragma(inline).
852
853 2020-04-25 Iain Buclaw <ibuclaw@gdcproject.org>
854
855 * intrinsics.cc (expand_intrinsic_toprec): New function.
856 (maybe_expand_intrinsic): Handle toPrec intrinsics.
857 * intrinsics.def (TOPRECF, TOPREC, TOPRECL): Add toPrec intrinsics.
858
859 2020-04-24 Iain Buclaw <ibuclaw@gdcproject.org>
860
861 * d-spec.cc (need_phobos): Remove.
862 (lang_specific_driver): Replace need_phobos with phobos_library.
863 Reorder -debuglib and -defaultlib to have precedence over libphobos.
864 (lang_specific_pre_link): Remove test for need_phobos.
865
866 2020-04-19 Iain Buclaw <ibuclaw@gdcproject.org>
867
868 PR d/94609
869 * d-codegen.cc (argument_reference_p): Don't check TREE_ADDRESSABLE.
870 (type_passed_as): Build reference type if TREE_ADDRESSABLE.
871 * d-convert.cc (convert_for_argument): Build explicit TARGET_EXPR if
872 needed for arguments passed by invisible reference.
873 * types.cc (TypeVisitor::visit (TypeStruct *)): Mark all structs that
874 are not POD as TREE_ADDRESSABLE.
875
876 2020-04-13 Iain Buclaw <ibuclaw@gdcproject.org>
877
878 * Make-lang.in (D_FRONTEND_OBJS): Remove d/argtypes.o.
879 * d-target.cc (Target::toArgTypes): New function.
880
881 2020-04-10 Iain Buclaw <ibuclaw@gdcproject.org>
882
883 * d-spec.cc (LIBDRUNTIME): Remove.
884 (LIBDRUNTIME_PROFILE): Remove.
885 (lang_specific_driver): Don't link in libgdruntime.
886
887 2020-04-07 Iain Buclaw <ibuclaw@gdcproject.org>
888
889 PR d/94425
890 * toir.cc (IRVisitor::visit (GccAsmStatement *)): Set ASM_VOLATILE_P
891 on all asm statements.
892
893 2020-04-01 Iain Buclaw <ibuclaw@gdcproject.org>
894
895 PR d/90136
896 * d-attribs.cc: Include dmd/attrib.h.
897 (build_attributes): Redeclare as static.
898 (apply_user_attributes): New function.
899 * d-tree.h (class UserAttributeDeclaration): Remove.
900 (build_attributes): Remove.
901 (apply_user_attributes): Declare.
902 (finish_aggregate_type): Remove attrs argument.
903 * decl.cc (get_symbol_decl): Merge declaration prototypes with
904 definitions. Use apply_user_attributes.
905 * modules.cc (layout_moduleinfo_fields): Remove last argument to
906 finish_aggregate_type.
907 * typeinfo.cc (layout_classinfo_interfaces): Likewise.
908 * types.cc (layout_aggregate_members): Likewise.
909 (finish_aggregate_type): Remove attrs argument.
910 (TypeVisitor::visit (TypeEnum *)): Use apply_user_attributes.
911 (TypeVisitor::visit (TypeStruct *)): Remove last argument to
912 finish_aggregate_type. Use apply_user_attributes.
913 (TypeVisitor::visit (TypeClass *)): Likewise.
914
915 2020-03-31 Iain Buclaw <ibuclaw@gdcproject.org>
916
917 * d-attribs.cc (d_langhook_common_attribute_table): Add always_inline.
918 (handle_always_inline_attribute): New function.
919
920 2020-03-31 Iain Buclaw <ibuclaw@gdcproject.org>
921
922 PR d/94424
923 * d-codegen.cc (build_alignment_field): Remove.
924 (build_struct_literal): Don't insert alignment padding.
925 * expr.cc (ExprVisitor::visit (AssignExp *)): Call memset before
926 assigning struct literals.
927
928 2020-03-31 Iain Buclaw <ibuclaw@gdcproject.org>
929
930 * typeinfo.cc (TypeInfoVisitor::internal_reference): Call
931 d_comdat_linkage on generated decl.
932
933 2020-03-22 Iain Buclaw <ibuclaw@gdcproject.org>
934
935 PR d/93038
936 * d-lang.cc (deps_write): Generate phony targets for content imported
937 files.
938
939 2020-03-22 Iain Buclaw <ibuclaw@gdcproject.org>
940
941 PR d/93038
942 * d-lang.cc (deps_write): Add content imported files to the make
943 dependency list.
944
945 2020-03-21 Iain Buclaw <ibuclaw@gdcproject.org>
946
947 PR d/94240
948 * typeinfo.cc (class TypeInfoVisitor): Replace type_ field with decl_.
949 (TypeInfoVisitor::TypeInfoVisitor): Set decl_.
950 (TypeInfoVisitor::result): Update.
951 (TypeInfoVisitor::internal_reference): New function.
952 (TypeInfoVisitor::layout_string): Use internal_reference.
953 (TypeInfoVisitor::visit (TypeInfoTupleDeclaration *)): Likewise.
954 (layout_typeinfo): Construct TypeInfoVisitor with typeinfo decl.
955 (layout_classinfo): Likewise.
956
957 2020-03-20 Iain Buclaw <ibuclaw@gdcproject.org>
958
959 PR lto/91027
960 * d-tree.h (struct GTY): Add daggregate field.
961 (IDENTIFIER_DAGGREGATE): Define.
962 (d_mangle_decl): Add declaration.
963 * decl.cc (mangle_decl): Remove static linkage, rename to...
964 (d_mangle_decl): ...this, update all callers.
965 * types.cc (merge_aggregate_types): New function.
966 (TypeVisitor::visit (TypeStruct *)): Call merge_aggregate_types, set
967 IDENTIFIER_DAGGREGATE and TYPE_CXX_ODR_P.
968 (TypeVisitor::visit (TypeClass *)): Likewise.
969
970 2020-03-18 Jakub Jelinek <jakub@redhat.com>
971
972 * expr.cc (ExprVisitor::visit (CatAssignExp *)): Fix up duplicated
973 word issue in a comment.
974 * d-target.cc (Target::FPTypeProperties<T>::max): Likewise.
975
976 2020-03-16 Iain Buclaw <ibuclaw@gdcproject.org>
977
978 PR d/92309
979 * types.cc (fixup_anonymous_offset): Don't set DECL_FIELD_OFFSET on
980 anonymous fields.
981
982 2020-03-16 Iain Buclaw <ibuclaw@gdcproject.org>
983
984 PR d/92216
985 * decl.cc (make_thunk): Don't set TREE_PUBLIC on thunks if the target
986 function is external to the current compilation.
987
988 2020-01-01 Jakub Jelinek <jakub@redhat.com>
989
990 Update copyright years.
991
992 * gdc.texi: Bump @copyrights-d year.
993 \f
994 Copyright (C) 2020 Free Software Foundation, Inc.
995
996 Copying and distribution of this file, with or without modification,
997 are permitted in any medium without royalty provided the copyright
998 notice and this notice are preserved.