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