]>
Commit | Line | Data |
---|---|---|
6a1ad710 GA |
1 | 2020-08-03 Iain Buclaw <ibuclaw@gdcproject.org> |
2 | ||
3 | PR d/96254 | |
4 | * d-codegen.cc (error_no_frame_access): New. | |
5 | (get_frame_for_symbol): Use fdparent name in error message. | |
6 | (get_framedecl): Replace call to assert with error. | |
7 | * d-tree.h (error_no_frame_access): Declare. | |
8 | * decl.cc (get_decl_tree): Detect recursion and error. | |
9 | ||
10 | 2020-08-03 Iain Buclaw <ibuclaw@gdcproject.org> | |
11 | ||
12 | PR d/96250 | |
13 | * dmd/MERGE: Merge upstream dmd c2274e56a. | |
14 | ||
48cc2e46 GA |
15 | 2020-07-31 Iain Buclaw <ibuclaw@gdcproject.org> |
16 | ||
17 | PR d/96393 | |
18 | * intrinsics.cc (expand_intrinsic_bt): Don't generate BIT_NOT_EXPR for | |
19 | btr32 intrinsic. | |
20 | ||
d48cca8f GA |
21 | 2020-07-30 Iain Buclaw <ibuclaw@gdcproject.org> |
22 | ||
23 | PR d/96152 | |
24 | * d-codegen.cc (build_array_from_exprs): New function. | |
25 | * d-tree.h (build_array_from_exprs): Declare. | |
26 | * expr.cc (ExprVisitor::visit (AssocArrayLiteralExp *)): Use | |
27 | build_array_from_exprs to generate key and value arrays. | |
28 | ||
29 | 2020-07-30 Iain Buclaw <ibuclaw@gdcproject.org> | |
30 | ||
31 | PR d/96154 | |
32 | * gdc.texi (Warnings): Document -Wvarargs. | |
33 | * lang.opt: Add -Wvarargs | |
34 | ||
35 | 2020-07-30 Iain Buclaw <ibuclaw@gdcproject.org> | |
36 | ||
37 | PR d/96140 | |
38 | * intrinsics.cc (expand_intrinsic_vaarg): Handle ref parameters as | |
39 | arguments to va_arg(). | |
40 | (expand_intrinsic_vastart): Handle ref parameters as arguments to | |
41 | va_start(). | |
42 | ||
43 | 2020-07-30 Iain Buclaw <ibuclaw@gdcproject.org> | |
44 | ||
45 | * expr.cc (ExprVisitor::visit (AssignExp *)): Inline bounds checking | |
46 | for simple array assignments. | |
47 | ||
48 | 2020-07-30 Iain Buclaw <ibuclaw@gdcproject.org> | |
49 | ||
50 | * d-codegen.cc (build_memcmp_call): New function. | |
51 | (build_memcpy_call): New function. | |
52 | (build_memset_call): New function. | |
53 | (build_float_identity): Call build_memcmp_call. | |
54 | (lower_struct_comparison): Likewise. | |
55 | (build_struct_comparison): Likewise. | |
56 | * d-tree.h (build_memcmp_call): Declare. | |
57 | (build_memcpy_call): Declare. | |
58 | (build_memset_call): Declare. | |
59 | * expr.cc (ExprVisitor::visit (EqualExp *)): Call build_memcmp_call. | |
60 | (ExprVisitor::visit (AssignExp *)): Call build_memset_call. | |
61 | (ExprVisitor::visit (ArrayLiteralExp *)): Call build_memcpy_call. | |
62 | (ExprVisitor::visit (StructLiteralExp *)): Call build_memset_call. | |
63 | ||
64 | 2020-07-30 Iain Buclaw <ibuclaw@gdcproject.org> | |
65 | ||
66 | * expr.cc (needs_postblit): Move out of ExprVisitor as a static | |
67 | function. Update all callers. | |
68 | (needs_dtor): Likewise. | |
69 | (lvalue_p): Likewise. | |
70 | (binary_op): Likewise. | |
71 | (binop_assignment): Likewise. | |
72 | ||
73 | 2020-07-30 Iain Buclaw <ibuclaw@gdcproject.org> | |
74 | ||
75 | * intrinsics.cc (expand_intrinsic_rotate): Add function. | |
76 | (maybe_expand_intrinsic): Handle rol and ror intrinsics. | |
77 | * intrinsics.def (ROL): Add intrinsic. | |
78 | (ROL_TIARG): Add intrinsic. | |
79 | (ROR): Add intrinsic. | |
80 | (ROR_TIARG): Add intrinsic. | |
81 | ||
82 | 2020-07-30 Iain Buclaw <ibuclaw@gdcproject.org> | |
83 | ||
84 | * d-tree.h (DEF_D_INTRINSIC): Rename second argument from A to B. | |
85 | * intrinsics.cc (intrinsic_decl): Add built_in field. | |
86 | (DEF_D_INTRINSIC): Rename second argument from ALIAS to BUILTIN. | |
87 | (maybe_set_intrinsic): Handle new intrinsic codes. | |
88 | (expand_intrinsic_bt): Likewise. | |
89 | (expand_intrinsic_checkedint): Likewise. | |
90 | (expand_intrinsic_bswap): Remove. | |
91 | (expand_intrinsic_sqrt): Remove. | |
92 | (maybe_expand_intrinsic): Group together intrinsic cases that map | |
93 | directly to gcc built-ins. | |
94 | * intrinsics.def (DEF_D_BUILTIN): Rename second argument from A to B. | |
95 | Update all callers to pass equivalent DECL_FUNCTION_CODE. | |
96 | (DEF_CTFE_BUILTIN): Likewise. | |
97 | (STD_COS): Remove intrinsic. | |
98 | (STD_FABS): Remove intrinsic. | |
99 | (STD_LDEXP): Remove intrinsic. | |
100 | (STD_RINT): Remove intrinsic. | |
101 | (STD_RNDTOL): Remove intrinsic. | |
102 | (STD_SIN): Remove intrinsic. | |
103 | (STD_SQRTF): Remove intrinsic. | |
104 | (STD_SQRT): Remove intrinsic. | |
105 | (STD_SQRTL): Remove intrinsic. | |
106 | ||
69273534 GA |
107 | 2020-06-28 Iain Buclaw <ibuclaw@gdcproject.org> |
108 | ||
109 | * dmd/MERGE: Merge upstream dmd 8508c4e68. | |
110 | ||
d61ffe12 GA |
111 | 2020-06-25 Iain Buclaw <ibuclaw@gdcproject.org> |
112 | ||
113 | * decl.cc (get_symbol_decl): Do not implicitly set | |
114 | DECL_DECLARED_INLINE_P on member functions. | |
115 | ||
116 | 2020-06-25 Iain Buclaw <ibuclaw@gdcproject.org> | |
117 | ||
118 | * d-lang.cc (d_gimplify_expr_p): Make static. | |
119 | (d_parse_file): Likewise. | |
120 | (d_signed_or_unsigned_type): Move to types.cc. | |
121 | (d_unsigned_type): Likewise. | |
122 | (d_signed_type): Likewise. | |
123 | * d-tree.h (d_unsigned_type): Change the location in file. | |
124 | (d_signed_type): Likewise. | |
125 | * types.cc (d_signed_or_unsigned_type): Moved from d-lang.cc. | |
126 | (d_unsigned_type): Likewise. | |
127 | (d_signed_type): Likewise. | |
128 | ||
129 | 2020-06-25 Iain Buclaw <ibuclaw@gdcproject.org> | |
130 | ||
131 | PR d/95075 | |
132 | * dmd/MERGE: Merge upstream dmd 4be011355. | |
133 | ||
134 | 2020-06-25 Iain Buclaw <ibuclaw@gdcproject.org> | |
135 | ||
136 | PR d/95250 | |
137 | * dmd/MERGE: Merge upstream dmd 90450f3ef. | |
138 | ||
139 | 2020-06-25 Iain Buclaw <ibuclaw@gdcproject.org> | |
140 | ||
141 | * d-lang.cc (d_parse_file): Replace OutBuffer with obstack. | |
142 | ||
143 | 2020-06-25 Iain Buclaw <ibuclaw@gdcproject.org> | |
144 | ||
145 | * dmd/MERGE: Merge upstream dmd 5fc1806cd. | |
146 | * d-lang.cc (d_parse_file): Use peekChars to get string representation | |
147 | of OutBuffer data. | |
148 | ||
149 | 2020-06-25 Iain Buclaw <ibuclaw@gdcproject.org> | |
150 | ||
151 | PR d/95173 | |
152 | * d-attribs.cc (uda_attribute_p): Don't search target attribute table | |
153 | if NULL. | |
154 | ||
155 | 2020-06-25 Iain Buclaw <ibuclaw@gdcproject.org> | |
156 | ||
157 | * decl.cc (DeclVisitor::visit (VarDeclaration *)): Don't set | |
158 | DECL_INITIAL if initializer is 'void'. | |
159 | ||
160 | 2020-06-25 Iain Buclaw <ibuclaw@gdcproject.org> | |
161 | ||
162 | * d-lang.cc (d_init_options): Turn on deprecation warnings by default. | |
163 | ||
164 | 2020-06-25 Iain Buclaw <ibuclaw@gdcproject.org> | |
165 | ||
166 | * dmd/MERGE: Merge upstream dmd 4f1046222. | |
167 | * toir.cc (IRVisitor::visit (OnScopeGuardStatement *)): Rename to ... | |
168 | (IRVisitor::visit (ScopeGuardStatement *)): ... this. | |
169 | ||
56638b9b GA |
170 | 2020-06-16 Iain Buclaw <ibuclaw@gdcproject.org> |
171 | ||
172 | * d-attribs.cc (handle_noreturn_attribute): Remove names of unused | |
173 | function parameters. | |
174 | (handle_leaf_attribute): Likewise. | |
175 | (handle_const_attribute): Likewise. | |
176 | (handle_malloc_attribute): Likewise. | |
177 | (handle_pure_attribute): Likewise. | |
178 | (handle_novops_attribute): Likewise. | |
179 | (handle_nonnull_attribute): Likewise. | |
180 | (handle_nothrow_attribute): Likewise. | |
181 | (handle_type_generic_attribute): Likewise. | |
182 | (handle_transaction_pure_attribute): Likewise. | |
183 | (handle_returns_twice_attribute): Likewise. | |
184 | (handle_fnspec_attribute): Likewise. | |
185 | (handle_always_inline_attribute): Likewise. | |
186 | (d_handle_noinline_attribute): Likewise. | |
187 | (d_handle_forceinline_attribute): Likewise. | |
188 | (d_handle_flatten_attribute): Likewise. | |
189 | (d_handle_noclone_attribute): Likewise. | |
190 | (d_handle_section_attribute): Likewise. | |
191 | (d_handle_alias_attribute): Likewise. | |
192 | (d_handle_weak_attribute): Likewise. | |
193 | ||
194 | 2020-06-16 Iain Buclaw <ibuclaw@gdcproject.org> | |
195 | ||
196 | * d-attribs.cc: Update code formatting in a consistant style. | |
197 | * d-builtins.cc: Likewise. | |
198 | * d-codegen.cc: Likewise. | |
199 | * d-compiler.cc: Likewise. | |
200 | * d-convert.cc: Likewise. | |
201 | * d-diagnostic.cc: Likewise. | |
202 | * d-frontend.cc: Likewise. | |
203 | * d-lang.cc: Likewise. | |
204 | * d-longdouble.cc: Likewise. | |
205 | * d-port.cc: Likewise. | |
206 | * d-spec.cc: Likewise. | |
207 | * d-tree.h: Likewise. | |
208 | * decl.cc: Likewise. | |
209 | * expr.cc: Likewise. | |
210 | * longdouble.h: Likewise. | |
211 | * modules.cc: Likewise. | |
212 | * toir.cc: Likewise. | |
213 | * typeinfo.cc: Likewise. | |
214 | ||
215 | 2020-06-16 Iain Buclaw <ibuclaw@gdcproject.org> | |
216 | ||
217 | * d-builtins.cc: Update quotation formatting of comments. | |
218 | * d-codegen.cc: Likewise. | |
219 | * d-lang.cc: Likewise. | |
220 | * decl.cc: Likewise. | |
221 | * expr.cc: Likewise. | |
222 | * imports.cc: Likewise. | |
223 | * runtime.cc: Likewise. | |
224 | * toir.cc: Likewise. | |
225 | * typeinfo.cc: Likewise. | |
226 | * types.cc: Likewise. | |
227 | ||
228 | 2020-06-16 Iain Buclaw <ibuclaw@gdcproject.org> | |
229 | ||
230 | * d-diagnostic.cc (expand_d_format): Replace OutBuffer with obstack. | |
231 | (d_diagnostic_report_diagnostic): Don't free xformat. | |
232 | * d-lang.cc (struct d_option_data): Change deps_target type from | |
233 | OutBuffer to vec <const char *>. | |
234 | (deps_add_target): Update to push each target to deps_target. | |
235 | (deps_write_string): New function. | |
236 | (deps_write): Change buffer type to obstack* and remove colmax. | |
237 | (d_init_options): Update initialization of deps_target. | |
238 | (d_parse_file): Replace OutBuffer with obstack. | |
239 | ||
240 | 2020-06-16 Iain Buclaw <ibuclaw@gdcproject.org> | |
241 | ||
242 | * d-lang.cc (d_parse_file): Replace uses of File with FILE. | |
243 | ||
244 | 2020-06-16 Iain Buclaw <ibuclaw@gdcproject.org> | |
245 | ||
246 | * d-codegen.cc (build_array_bounds_call): New function. | |
247 | (build_bounds_condition): Use build_array_bounds_call. | |
248 | * d-lang.cc (d_init_options): Explicitly set default check action to | |
249 | CHECKACTION_D. | |
250 | (d_post_options): Set check action to CHECKACTION_C if the flag | |
251 | -fno-druntime was seen. | |
252 | * d-tree.h (build_array_bounds_call): Declare. | |
253 | * expr.cc (ExprVisitor::visit (AssertExp *)): Use | |
254 | build_array_bounds_call. | |
255 | ||
256 | 2020-06-16 Iain Buclaw <ibuclaw@gdcproject.org> | |
257 | ||
258 | * d-attribs.cc (build_attributes): Use toStringExp instead of cast. | |
259 | * toir.cc (IRVisitor::visit): Likewise. | |
260 | ||
261 | 2020-06-16 Iain Buclaw <ibuclaw@gdcproject.org> | |
262 | ||
263 | * d-attribs.cc (build_attributes): Use isXxxxExp helpers instead of | |
264 | explicit casts. | |
265 | * d-codegen.cc (d_build_call): Likewise. | |
266 | * d-compiler.cc (Compiler::paintAsType): Likewise. | |
267 | * decl.cc (ExprVisitor::visit): Likewise. | |
268 | (layout_class_initializer): Likewise. | |
269 | * expr.cc (ExprVisitor::lvalue_p): Likewise | |
270 | (ExprVisitor::visit): Likewise. | |
271 | * types.cc (layout_aggregate_members): Likewise. | |
272 | ||
273 | 2020-06-16 Iain Buclaw <ibuclaw@gdcproject.org> | |
274 | ||
275 | * d-frontend.cc (eval_builtin): Use toTypeFunction instead of cast. | |
276 | * decl.cc (DeclVisitor::visit): Likewise. | |
277 | * toir.cc (IRVisitor::visit): Likewise. | |
278 | * typeinfo.cc (TypeInfoVisitor::visit): Likewise. | |
279 | ||
280 | 2020-06-16 Iain Buclaw <ibuclaw@gdcproject.org> | |
281 | ||
282 | * d-builtins.cc (d_eval_constant_expression): Use isTypeXxxx helpers | |
283 | instead of explicit casts. | |
284 | (d_build_builtins_module): Likewise. | |
285 | * d-codegen.cc (get_array_length): Likewise. | |
286 | (identity_compare_p): Likewise. | |
287 | (lower_struct_comparison): Likewise. | |
288 | (build_array_from_val): Likewise. | |
289 | (array_bounds_check): Likewise. | |
290 | (get_function_type): Likewise. | |
291 | (d_build_call): Likewise. | |
292 | * d-compiler.cc (Compiler::paintAsType): Likewise. | |
293 | * d-convert.cc (convert_expr): Likewise. | |
294 | (convert_for_assignment): Likewise. | |
295 | * d-lang.cc (d_classify_record): Likewise. | |
296 | (d_build_eh_runtime_type): Likewise. | |
297 | * decl.cc (DeclVisitor::visit): Likewise. | |
298 | * expr.cc (ExprVisitor::needs_postblit): Likewise. | |
299 | (ExprVisitor::needs_dtor): Likewise. | |
300 | (ExprVisitor::visit): Likewise. | |
301 | * imports.cc (ImportVisitor::visit): Likewise. | |
302 | * typeinfo.cc (get_typeinfo_kind): Likewise. | |
303 | (TypeInfoVisitor::visit): Likewise. | |
304 | (TypeDeclInfoVisitor::visit): Likewise. | |
305 | * types.cc (merge_aggregate_types): Likewise. | |
306 | (TypeVisitor::visit): Likewise. | |
307 | ||
0dcb572c GA |
308 | 2020-06-14 Iain Buclaw <ibuclaw@gdcproject.org> |
309 | ||
310 | * expr.cc (ExprVisitor::visit (AssocArrayLiteralExp *)): Fix line | |
311 | lengths, no functional change. | |
312 | * typeinfo.cc (TypeInfoVisitor::layout_interfaces): Likewise. | |
313 | (layout_classinfo_interfaces): Likewise. | |
314 | ||
b952c2cf GA |
315 | 2020-06-09 Iain Buclaw <ibuclaw@gdcproject.org> |
316 | ||
317 | * dmd/MERGE: Merge upstream dmd 13d67c575. | |
318 | * d-builtins.cc (build_frontend_type): Update call to | |
319 | TypeVector::create. | |
320 | * d-frontend.cc (Global::_init): Move setting of errorLimit to ... | |
321 | * d-lang.cc (d_init_options): ... here. Update for new field | |
322 | location of errorLimit. | |
323 | (d_post_options): Likewise. | |
324 | * d-port.cc (Port::readwordLE): Update signature. | |
325 | (Port::readwordBE): Likewise. | |
326 | (Port::readlongLE): Likewise. | |
327 | (Port::readlongBE): Likewise. | |
328 | * decl.cc (get_symbol_decl): Update for new field types. | |
329 | ||
2c455ae0 GA |
330 | 2020-06-08 Iain Buclaw <ibuclaw@gdcproject.org> |
331 | ||
332 | PR d/95573 | |
333 | * dmd/MERGE: Merge upstream dmd 5041e56f1. | |
334 | ||
335 | 2020-06-08 Iain Buclaw <ibuclaw@gdcproject.org> | |
336 | ||
337 | * dmd/MERGE: Merge upstream dmd 955b8b36f. | |
338 | * expr.cc (ExprVisitor::visit (AndAndExp *)): Rename type to ... | |
339 | (ExprVisitor::visit (LogicalExp *)): ... this. Handle both 'and if' | |
340 | and 'or if' expression nodes. | |
341 | (ExprVisitor::visit (OrOrExp *)): Remove. | |
342 | ||
53d461e4 GA |
343 | 2020-06-07 Iain Buclaw <ibuclaw@gdcproject.org> |
344 | ||
345 | * dmd/MERGE: Merge upstream dmd 73d8e2fec. | |
346 | * decl.cc (get_symbol_decl): Use new Prot::Kind enum. | |
347 | * modules.cc (get_internal_fn): Likewise. | |
348 | ||
349 | 2020-06-07 Iain Buclaw <ibuclaw@gdcproject.org> | |
350 | ||
351 | * dmd/MERGE: Merge upstream dmd 108ca1bcd. | |
352 | * d-diagnostic.cc (expand_d_format): Adjust to use extractChars(). | |
353 | * d-frontend.cc (Loc::toChars): Likewise. | |
354 | * d-lang.cc (deps_write): Likewise. | |
355 | (d_parse_file): Likewise. | |
356 | * decl.cc (d_mangle_decl): Likewise. | |
357 | * intrinsics.cc (maybe_set_intrinsic): Likewise. | |
358 | ||
359 | 2020-06-07 Iain Buclaw <ibuclaw@gdcproject.org> | |
360 | ||
361 | * dmd/MERGE: Merge upstream dmd b0df0e982. | |
362 | * d-builtins.cc (build_frontend_type): Use VarArg for varargs_p. | |
363 | * d-codegen.cc (declaration_type): Call TypeFunction::create with | |
364 | argument VARARGnone. | |
365 | (parameter_type): Likewise. | |
366 | (d_build_call): Use new field names and member functions. | |
367 | * d-target.cc (Target::cppParameterType): Call TypeFunction::create | |
368 | with argument VARARGnone. | |
369 | * types.cc (TypeVisitor::visit (TypeFunction *): Use new field names | |
370 | and member functions. | |
371 | ||
372 | 2020-06-07 Iain Buclaw <ibuclaw@gdcproject.org> | |
373 | ||
374 | * dmd/MERGE: Merge upstream dmd 1831b24ff. | |
375 | * d-lang.cc (d_init_options): Remove initialization of updated fields. | |
376 | (d_handle_option): Adjust for new field types. | |
377 | ||
378 | 2020-06-07 Iain Buclaw <ibuclaw@gdcproject.org> | |
379 | ||
380 | * dmd/MERGE: Merge upstream dmd cef1e7991. | |
381 | * d-lang.cc (d_parse_file): Adjust for new field types. | |
382 | ||
1a59f3db GA |
383 | 2020-06-05 Iain Buclaw <ibuclaw@gdcproject.org> |
384 | ||
385 | * dmd/MERGE: Merge upstream dmd 740f3d1ea. | |
386 | * d-lang.cc (d_handle_option): Use new fields to save debug and | |
387 | version levels passed over command-line. | |
388 | (d_post_options): Add them to front-end here. | |
389 | ||
390 | 2020-06-05 Iain Buclaw <ibuclaw@gdcproject.org> | |
391 | ||
392 | * dmd/MERGE: Merge upstream dmd f5638c7b8. | |
393 | * d-builtins.cc (d_init_versions): Use new CHECKENABLE enum. | |
394 | * d-codegen.cc (array_bounds_check): Likewise. | |
395 | (build_frame_type): Likewise. | |
396 | (get_frameinfo): Likewise. | |
397 | * d-lang.cc (d_init_options): Likewise. | |
398 | (d_init_options_struct): Don't initialize x_flag_bounds_check. | |
399 | (d_handle_option): Use new CHECKENABLE enum. | |
400 | (d_post_options): Likewise. Set flag_bounds_check here. | |
401 | * expr.cc (ExprVisitor::visit(AssertExp *)): Use new CHECKENABLE enum. | |
402 | ||
403 | 2020-06-05 Iain Buclaw <ibuclaw@gdcproject.org> | |
404 | ||
405 | * dmd/MERGE: Merge upstream dmd 56f0a65c4. | |
406 | * d-builtins.cc (build_frontend_type): Remove static. | |
407 | (d_build_builtins_module): Use target.va_listType() to get front-end | |
408 | type for va_list. | |
409 | (d_init_builtins): Move creation of va_list to Target::va_listType. | |
410 | * d-codegen.cc (build_interface_binfo): Use new target global. | |
411 | (build_vindex_ref): Likewise. | |
412 | (identity_compare_p): Likewise. | |
413 | * d-ctfloat.cc (CTFloat::parse): Likewise. | |
414 | * d-lang.cc (d_init): Likewise. | |
415 | * d-port.cc (Port::isFloat32LiteralOutOfRange): Likewise. | |
416 | (Port::isFloat64LiteralOutOfRange): Likewise. | |
417 | * d-target.cc (define_float_constants): Initialize constants through a | |
418 | reference, instead of setting globals. | |
419 | (Target::_init): Initialize new fields instead of setting globals. | |
420 | (Target::va_listType): Build front-end type from va_list_type_node. | |
421 | (Target::toCppMangle): Renamed to ... | |
422 | (TargetCPP::toMangle): ... this. | |
423 | (Target::cppTypeInfoMangle): Renamed to ... | |
424 | (TargetCPP::typeInfoMangle): ... this. | |
425 | (Target::cppTypeMangle): Renamed to ... | |
426 | (TargetCPP::typeMangle): this. | |
427 | (Target::cppParameterType): Renamed to ... | |
428 | (TargetCPP::parameterType): ... this. Use target.va_listType() to get | |
429 | front-end type for va_list. | |
430 | (Target::cppFundamentalType): Renamed to ... | |
431 | (TargetCPP::fundamentalType): ... this. | |
432 | * d-tree.h (build_frontend_type): Declare. | |
433 | * decl.cc (base_vtable_offset): Use new target global. | |
434 | * typeinfo.cc (layout_classinfo_interfaces): Likewise. | |
435 | (layout_cpp_typeinfo): Likewise. | |
436 | * types.cc (valist_array_p): Use target.va_listType() to get front-end | |
437 | type for va_list. | |
438 | (layout_aggregate_type): Use new target global. | |
439 | ||
440 | 2020-06-05 Iain Buclaw <ibuclaw@gdcproject.org> | |
441 | ||
442 | * dmd/MERGE: Merge upstream dmd 6d5bffa54. | |
443 | * d-builtins.cc (maybe_set_builtin_1): Update call to | |
444 | Condition::include(). | |
445 | * decl.cc (DeclVisitor::visit(AttribDeclaration *)): Likewise. | |
446 | * types.cc (layout_aggregate_members): Likewise. | |
447 | ||
3add3425 GA |
448 | 2020-06-04 Iain Buclaw <ibuclaw@gdcproject.org> |
449 | ||
450 | * dmd/MERGE: Merge upstream dmd 48d704f08. | |
451 | * d-attribs.cc (build_attributes): Use new field name. | |
452 | * d-builtins.cc (build_frontend_type): Likewise. | |
453 | (maybe_set_builtin_1): Likewise. | |
454 | (d_maybe_set_builtin): Likewise. | |
455 | * d-codegen.cc (build_interface_binfo): Likewise. | |
456 | (identity_compare_p): Likewise. | |
457 | (lower_struct_comparison): Likewise. | |
458 | (build_struct_comparison): Likewise. | |
459 | (d_build_call): Likewise. | |
460 | (build_frame_type): Likewise. | |
461 | (build_closure): Likewise. | |
462 | * d-compiler.cc (Compiler::paintAsType): Likewise. | |
463 | (Compiler::loadModule): Likewise. | |
464 | * d-incpath.cc (add_globalpaths): Likewise. | |
465 | (add_filepaths): Likewise. | |
466 | (add_import_paths): Likewise. | |
467 | * d-lang.cc (deps_write): Likewise. | |
468 | (d_parse_file): Likewise. | |
469 | * decl.cc (gcc_attribute_p): Likewise. | |
470 | (base_vtable_offset): Likewise. | |
471 | (get_vtable_decl): Likewise. | |
472 | (build_class_instance): Likewise. | |
473 | * expr.cc (class ExprVisitor): Likewise. | |
474 | * modules.cc (layout_moduleinfo_fields): Likewise. | |
475 | (layout_moduleinfo): Likewise. | |
476 | (build_module_tree): Likewise. | |
477 | * toir.cc (class IRVisitor): Likewise. | |
478 | * typeinfo.cc (class TypeInfoVisitor): Likewise. | |
479 | (layout_classinfo_interfaces): Likewise. | |
480 | * types.cc (layout_aggregate_members): Likewise. | |
481 | (layout_aggregate_type): Likewise. | |
482 | ||
483 | 2020-06-04 Iain Buclaw <ibuclaw@gdcproject.org> | |
484 | ||
485 | * dmd/MERGE: Merge upstream dmd 47ed0330f. | |
486 | ||
487 | 2020-06-04 Iain Buclaw <ibuclaw@gdcproject.org> | |
488 | ||
489 | * Make-lang.in (D_OBJS): Add d-compiler.o, d-ctfloat.o, d-port.o. | |
490 | * d-frontend.cc (Port::memicmp): Move to d-port.cc. | |
491 | (Port::strupr): Likewise. | |
492 | (Port::isFloat32LiteralOutOfRange): Likewise. | |
493 | (Port::isFloat64LiteralOutOfRange): Likewise. | |
494 | (Port::readwordLE): Likewise. | |
495 | (Port::readwordBE): Likewise. | |
496 | (Port::readlongLE): Likewise. | |
497 | (Port::readlongBE): Likewise. | |
498 | (Port::valcpy): Likewise. | |
499 | (CTFloat::fabs): Move to d-ctfloat.cc. | |
500 | (CTFloat::ldexp): Likewise. | |
501 | (CTFloat::isIdentical): Likewise. | |
502 | (CTFloat::isNaN): Likewise. | |
503 | (CTFloat::isSNaN): Likewise. | |
504 | (CTFloat::isInfinity): Likewise. | |
505 | (CTFloat::parse): Likewise. | |
506 | (CTFloat::sprint): Likewise. | |
507 | (CTFloat::hash): Likewise. | |
508 | (Compiler::genCmain): Move to d-compiler.cc. | |
509 | (Compiler::paintAsType): Likewise. | |
510 | (Compiler::loadModule): Likewise. | |
511 | * d-compiler.cc: New file. | |
512 | * d-ctfloat.cc: New file. | |
513 | * d-port.cc: New file. | |
514 | ||
a9312a79 GA |
515 | 2020-06-02 Iain Buclaw <ibuclaw@gdcproject.org> |
516 | ||
517 | * decl.cc (DeclVisitor::build_dsymbol): New function. | |
518 | (DeclVisitor::visit (TupleDeclaration *)): Use build_dsymbol to | |
519 | traverse AST instead of accept. | |
520 | (DeclVisitor::visit (AttribDeclaration *)): Likewise. | |
521 | (DeclVisitor::visit (Nspace *)): Likewise. | |
522 | (DeclVisitor::visit (TemplateDeclaration *)): Likewise. | |
523 | (DeclVisitor::visit (TemplateInstance *)): Likewise. | |
524 | (DeclVisitor::visit (TemplateMixin *)): Likewise. | |
525 | (DeclVisitor::visit (StructDeclaration *)): Likewise. | |
526 | (DeclVisitor::visit (ClassDeclaration *)): Likewise. | |
527 | (DeclVisitor::visit (InterfaceDeclaration *)): Likewise. | |
528 | (DeclVisitor::visit (VarDeclaration *)): Likewise. | |
529 | (build_decl_tree): Likewise. | |
530 | ||
531 | 2020-06-02 Iain Buclaw <ibuclaw@gdcproject.org> | |
532 | ||
533 | * d-builtins.cc (build_frontend_type): Handle struct fields with NULL | |
534 | DECL_NAME. Use byte_position to get the real field offset. | |
535 | ||
0af711e1 IB |
536 | 2020-05-06 Iain Buclaw <ibuclaw@gdcproject.org> |
537 | ||
538 | PR d/94970 | |
539 | * d-codegen.cc (force_target_expr): Move create_temporary_var | |
540 | implementation inline here. | |
541 | (create_temporary_var): Remove. | |
542 | (maybe_temporary_var): Remove. | |
543 | (bind_expr): Remove. | |
544 | * d-convert.cc (d_array_convert): Use build_local_temp to generate | |
545 | temporaries, and generate its assignment. | |
546 | * d-tree.h (create_temporary_var): Remove. | |
547 | (maybe_temporary_var): Remove. | |
548 | (d_array_convert): Remove vars argument. | |
549 | * expr.cc (ExprVisitor::visit (CatExp *)): Use build_local_temp to | |
550 | generate temporaries, don't wrap them in a BIND_EXPR. | |
551 | (ExprVisitor::visit (NewExp *)): Likewise. | |
552 | ||
852c4b04 IB |
553 | 2020-04-30 Iain Buclaw <ibuclaw@gdcproject.org> |
554 | ||
555 | * gdc.texi (Options for Linking): Clarify usage of -defaultlib= and | |
556 | -debuglib= options. | |
557 | ||
75f758a7 IB |
558 | 2020-04-29 Iain Buclaw <ibuclaw@gdcproject.org> |
559 | ||
560 | * d-codegen.cc (d_decl_context): Don't include module in the name of | |
561 | class and struct types that aren't extern(D). | |
562 | ||
2370bdbb IB |
563 | 2020-04-27 Iain Buclaw <ibuclaw@gdcproject.org> |
564 | ||
565 | PR d/94777 | |
566 | * d-builtins.cc (build_frontend_type): Set parent for generated | |
567 | fields of built-in types. | |
568 | * d-codegen.cc (argument_reference_p): Rename to ... | |
569 | (parameter_reference_p): ... this. | |
570 | (type_passed_as): Rename to ... | |
571 | (parameter_type): ... this. Make TREE_ADDRESSABLE types restrict. | |
572 | (d_build_call): Move handling of non-POD types here from ... | |
573 | * d-convert.cc (convert_for_argument): ... here. | |
574 | * d-tree.h (argument_reference_p): Rename declaration to ... | |
575 | (parameter_reference_p): ... this. | |
576 | (type_passed_as): Rename declaration to ... | |
577 | (parameter_type): ... this. | |
578 | * types.cc (TypeVisitor::visit (TypeFunction *)): Update caller. | |
579 | ||
9887f9d8 IB |
580 | 2020-04-26 Iain Buclaw <ibuclaw@gdcproject.org> |
581 | ||
582 | * decl.cc (get_symbol_decl): Set DECL_DECLARED_INLINE_P or | |
583 | DECL_UNINLINABLE for declarations with pragma(inline). | |
584 | * toir.cc (IRVisitor::visit (GccAsmStatement *)): Set ASM_INLINE_P if | |
585 | in function decorated with pragma(inline). | |
586 | ||
01873032 IB |
587 | 2020-04-25 Iain Buclaw <ibuclaw@gdcproject.org> |
588 | ||
589 | * intrinsics.cc (expand_intrinsic_toprec): New function. | |
590 | (maybe_expand_intrinsic): Handle toPrec intrinsics. | |
591 | * intrinsics.def (TOPRECF, TOPREC, TOPRECL): Add toPrec intrinsics. | |
592 | ||
0b471895 IB |
593 | 2020-04-24 Iain Buclaw <ibuclaw@gdcproject.org> |
594 | ||
595 | * d-spec.cc (need_phobos): Remove. | |
596 | (lang_specific_driver): Replace need_phobos with phobos_library. | |
597 | Reorder -debuglib and -defaultlib to have precedence over libphobos. | |
598 | (lang_specific_pre_link): Remove test for need_phobos. | |
599 | ||
8a9ce39f IB |
600 | 2020-04-19 Iain Buclaw <ibuclaw@gdcproject.org> |
601 | ||
602 | PR d/94609 | |
603 | * d-codegen.cc (argument_reference_p): Don't check TREE_ADDRESSABLE. | |
604 | (type_passed_as): Build reference type if TREE_ADDRESSABLE. | |
605 | * d-convert.cc (convert_for_argument): Build explicit TARGET_EXPR if | |
606 | needed for arguments passed by invisible reference. | |
607 | * types.cc (TypeVisitor::visit (TypeStruct *)): Mark all structs that | |
608 | are not POD as TREE_ADDRESSABLE. | |
609 | ||
a1ccbae6 IB |
610 | 2020-04-13 Iain Buclaw <ibuclaw@gdcproject.org> |
611 | ||
612 | * Make-lang.in (D_FRONTEND_OBJS): Remove d/argtypes.o. | |
613 | * d-target.cc (Target::toArgTypes): New function. | |
614 | ||
7478addd IB |
615 | 2020-04-10 Iain Buclaw <ibuclaw@gdcproject.org> |
616 | ||
617 | * d-spec.cc (LIBDRUNTIME): Remove. | |
618 | (LIBDRUNTIME_PROFILE): Remove. | |
619 | (lang_specific_driver): Don't link in libgdruntime. | |
620 | ||
30d26118 IB |
621 | 2020-04-07 Iain Buclaw <ibuclaw@gdcproject.org> |
622 | ||
623 | PR d/94425 | |
624 | * toir.cc (IRVisitor::visit (GccAsmStatement *)): Set ASM_VOLATILE_P | |
625 | on all asm statements. | |
626 | ||
013fca64 IB |
627 | 2020-04-01 Iain Buclaw <ibuclaw@gdcproject.org> |
628 | ||
629 | PR d/90136 | |
630 | * d-attribs.cc: Include dmd/attrib.h. | |
631 | (build_attributes): Redeclare as static. | |
632 | (apply_user_attributes): New function. | |
633 | * d-tree.h (class UserAttributeDeclaration): Remove. | |
634 | (build_attributes): Remove. | |
635 | (apply_user_attributes): Declare. | |
636 | (finish_aggregate_type): Remove attrs argument. | |
637 | * decl.cc (get_symbol_decl): Merge declaration prototypes with | |
638 | definitions. Use apply_user_attributes. | |
639 | * modules.cc (layout_moduleinfo_fields): Remove last argument to | |
640 | finish_aggregate_type. | |
641 | * typeinfo.cc (layout_classinfo_interfaces): Likewise. | |
642 | * types.cc (layout_aggregate_members): Likewise. | |
643 | (finish_aggregate_type): Remove attrs argument. | |
644 | (TypeVisitor::visit (TypeEnum *)): Use apply_user_attributes. | |
645 | (TypeVisitor::visit (TypeStruct *)): Remove last argument to | |
646 | finish_aggregate_type. Use apply_user_attributes. | |
647 | (TypeVisitor::visit (TypeClass *)): Likewise. | |
648 | ||
1c16f7fc IB |
649 | 2020-03-31 Iain Buclaw <ibuclaw@gdcproject.org> |
650 | ||
651 | * d-attribs.cc (d_langhook_common_attribute_table): Add always_inline. | |
652 | (handle_always_inline_attribute): New function. | |
653 | ||
e8e0acba IB |
654 | 2020-03-31 Iain Buclaw <ibuclaw@gdcproject.org> |
655 | ||
656 | PR d/94424 | |
657 | * d-codegen.cc (build_alignment_field): Remove. | |
658 | (build_struct_literal): Don't insert alignment padding. | |
659 | * expr.cc (ExprVisitor::visit (AssignExp *)): Call memset before | |
660 | assigning struct literals. | |
661 | ||
48742e02 IB |
662 | 2020-03-31 Iain Buclaw <ibuclaw@gdcproject.org> |
663 | ||
664 | * typeinfo.cc (TypeInfoVisitor::internal_reference): Call | |
665 | d_comdat_linkage on generated decl. | |
666 | ||
fbe60463 IB |
667 | 2020-03-22 Iain Buclaw <ibuclaw@gdcproject.org> |
668 | ||
669 | PR d/93038 | |
670 | * d-lang.cc (deps_write): Generate phony targets for content imported | |
671 | files. | |
672 | ||
4a01f7b1 IB |
673 | 2020-03-22 Iain Buclaw <ibuclaw@gdcproject.org> |
674 | ||
675 | PR d/93038 | |
676 | * d-lang.cc (deps_write): Add content imported files to the make | |
677 | dependency list. | |
678 | ||
98eb7b2e IB |
679 | 2020-03-21 Iain Buclaw <ibuclaw@gdcproject.org> |
680 | ||
424e3908 | 681 | PR d/94240 |
98eb7b2e IB |
682 | * typeinfo.cc (class TypeInfoVisitor): Replace type_ field with decl_. |
683 | (TypeInfoVisitor::TypeInfoVisitor): Set decl_. | |
684 | (TypeInfoVisitor::result): Update. | |
685 | (TypeInfoVisitor::internal_reference): New function. | |
686 | (TypeInfoVisitor::layout_string): Use internal_reference. | |
687 | (TypeInfoVisitor::visit (TypeInfoTupleDeclaration *)): Likewise. | |
688 | (layout_typeinfo): Construct TypeInfoVisitor with typeinfo decl. | |
689 | (layout_classinfo): Likewise. | |
690 | ||
b5446d0c IB |
691 | 2020-03-20 Iain Buclaw <ibuclaw@gdcproject.org> |
692 | ||
693 | PR lto/91027 | |
694 | * d-tree.h (struct GTY): Add daggregate field. | |
695 | (IDENTIFIER_DAGGREGATE): Define. | |
696 | (d_mangle_decl): Add declaration. | |
697 | * decl.cc (mangle_decl): Remove static linkage, rename to... | |
698 | (d_mangle_decl): ...this, update all callers. | |
699 | * types.cc (merge_aggregate_types): New function. | |
700 | (TypeVisitor::visit (TypeStruct *)): Call merge_aggregate_types, set | |
701 | IDENTIFIER_DAGGREGATE and TYPE_CXX_ODR_P. | |
702 | (TypeVisitor::visit (TypeClass *)): Likewise. | |
703 | ||
d5029d45 JJ |
704 | 2020-03-18 Jakub Jelinek <jakub@redhat.com> |
705 | ||
706 | * expr.cc (ExprVisitor::visit (CatAssignExp *)): Fix up duplicated | |
707 | word issue in a comment. | |
708 | * d-target.cc (Target::FPTypeProperties<T>::max): Likewise. | |
709 | ||
2691ffe6 IB |
710 | 2020-03-16 Iain Buclaw <ibuclaw@gdcproject.org> |
711 | ||
712 | PR d/92309 | |
713 | * types.cc (fixup_anonymous_offset): Don't set DECL_FIELD_OFFSET on | |
714 | anonymous fields. | |
715 | ||
447d196e IB |
716 | 2020-03-16 Iain Buclaw <ibuclaw@gdcproject.org> |
717 | ||
718 | PR d/92216 | |
719 | * decl.cc (make_thunk): Don't set TREE_PUBLIC on thunks if the target | |
720 | function is external to the current compilation. | |
721 | ||
7e7065b9 | 722 | 2020-01-01 Jakub Jelinek <jakub@redhat.com> |
a5544970 | 723 | |
8d9254fc JJ |
724 | Update copyright years. |
725 | ||
3f27508c | 726 | * gdc.texi: Bump @copyrights-d year. |
b4c522fa | 727 | \f |
7e7065b9 | 728 | Copyright (C) 2020 Free Software Foundation, Inc. |
b4c522fa IB |
729 | |
730 | Copying and distribution of this file, with or without modification, | |
731 | are permitted in any medium without royalty provided the copyright | |
732 | notice and this notice are preserved. |