d: Merge upstream dmd, druntime e48bc0987d, phobos 2458e8f82.
[official-gcc.git] / gcc / d / ChangeLog-2019
blob046f28373c5245c03b04486753a75a1053a4f4b3
1 2019-11-14  Richard Sandiford  <richard.sandiford@arm.com>
3         * d-codegen.cc (build_boolop): Use truth_type_for instead of
4         build_same_sized_truth_vector_type.
6 2019-11-13  Joseph Myers  <joseph@codesourcery.com>
8         * d-target.cc (define_float_constants): Update call to
9         get_max_float.
11 2019-11-04  Richard Sandiford  <richard.sandiford@arm.com>
13         * d-builtins.cc (build_frontend_type): Cope with variable
14         TYPE_VECTOR_SUBPARTS.
16 2019-08-23  Jakub Jelinek  <jakub@redhat.com>
18         PR middle-end/91283
19         * d-lang.cc (d_post_options): Set flag_excess_precision instead of
20         flag_excess_precision_cmdline.
22 2019-08-20  Iain Buclaw  <ibuclaw@gdcproject.org>
24         PR d/88722
25         * modules.cc: Include diagnostic.h.
26         (register_moduleinfo): Use sorry instead of gcc_assert for targets
27         without named sections.
29 2019-08-20  Iain Buclaw  <ibuclaw@gdcproject.org>
31         * d-target.cc: Include diagnostic.h.
32         (Target::_init): Set Tsize_t and Tptrdiff_t as D ushort and short if
33         the target pointer size is 2.  Add sorry if the pointer size is not
34         either 2, 4, or 8.
36 2019-08-20  Iain Buclaw  <ibuclaw@gdcproject.org>
38         PR d/90446
39         * d-lang.cc (d_type_for_mode): Check for all internal __intN types.
40         (d_type_for_size): Likewise.
42 2019-08-20  Iain Buclaw  <ibuclaw@gdcproject.org>
44         PR d/90445
45         * d-builtins.cc (d_build_c_type_nodes): Test UINTMAX_TYPE for setting
46         uintmax_type_node.  Set signed_size_type_node as the signed_type_for
47         size_type_node.
49 2019-08-20  Iain Buclaw  <ibuclaw@gdcproject.org>
51         PR d/90444
52         * d-builtins.cc (build_frontend_type): Build anonymous RECORD_TYPE
53         nodes as well, push all fields to the struct members.
54         (d_build_builtins_module): Push anonymous va_list structs to the
55         builtins module, naming them __builtin_va_list.
56         (d_init_builtins): Use sorry instead of gcc_unreachable if va_list did
57         not succeed in being represented as a D type.
59 2019-08-13  Richard Sandiford  <richard.sandiford@arm.com>
61         PR middle-end/91421
62         * intrinsics.cc (maybe_set_intrinsic): Use set_decl_built_in_function.
64 2019-08-11  Iain Buclaw  <ibuclaw@gdcproject.org>
66         PR d/90601
67         * d-convert.cc (convert_expr): Don't convert an expression to its
68         original front-end type before converting to its target type.
70 2019-08-10  Iain Buclaw  <ibuclaw@gdcproject.org>
72         PR d/91238
73         * d-codegen.cc (build_address): If taking the address of a CALL_EXPR,
74         wrap it in a TARGET_EXPR.
76 2019-08-10  Iain Buclaw  <ibuclaw@gdcproject.org>
78         PR d/90893
79         * runtime.cc (enum libcall_type): Rename to...
80         (enum d_libcall_type): ...this.
81         (get_libcall_type): Use d_libcall_type.
82         (build_libcall_decl): Likewise.
84 2019-06-16  Iain Buclaw  <ibuclaw@gdcproject.org>
86         PR d/90559
87         * d-target.cc (Target::_init): Reduce max static data size to INT_MAX.
89 2019-06-16  Iain Buclaw  <ibuclaw@gdcproject.org>
91         PR d/90651
92         * typeinfo.cc (object_module): New variable.
93         (make_frontend_typeinfo): Update signature.  Set temporary on
94         generated TypeInfo classes.
95         (create_tinfo_types): Set object_module.  Move generation of front-end
96         typeinfo into ...
97         (create_frontend_tinfo_types): ... New function.
98         (layout_typeinfo): Call create_frontend_tinfo_types.
99         (layout_classinfo): Likewise.
100         (layout_cpp_typeinfo): Likewise.
101         (create_typeinfo): Likewise.
103 2019-06-11  Richard Biener  <rguenthe@suse.de>
105         d/90778
106         * toir.cc (pop_label): Only queue labels in a vector.
107         (cmp_labels): Label decl comparator.
108         (pop_binding_level): Pop labels in DECL_UID order to avoid
109         debug info differences.
111 2019-05-24  Nathan Sidwell  <nathan@acm.org>
113         * types.cc (fixup_anonymous_offset): Use IDENTIFIER_ANON_P.
114         (layout_aggregate_members): Use make_anon_name.
116 2019-05-16  Martin Sebor  <msebor@redhat.com>
118         * d-builtins.cc (d_init_builtins): Quote keywords, operators,
119         and types in diagnostics.
120         * d-codegen.cc (get_array_length): Same.  Replace can't with cannot.
121         * d-convert.cc (convert_expr): Same.
122         * d-frontend.cc (getTypeInfoType): Quote an option name in
123         a diagnostic.
124         * d-lang.cc (d_handle_option): Same.
125         (d_parse_file): Same.
126         * decl.cc: Remove a trailing period from a diagnostic.
127         * expr.cc: Use a directive for an apostrophe.
128         * toir.cc: Quote keywords, operators, and types in diagnostics.
129         * typeinfo.cc (build_typeinfo): Quote an option name in a diagnostic.
131 2019-04-25  Johannes Pfau  <johannespfau@gmail.com>
133         * config-lang.in: Do not add target_libs if phobos is disabled.
135 2019-04-23  Iain Buclaw  <ibuclaw@gdcproject.org>
136             Robin Dapp  <rdapp@linux.ibm.com>
138         * typeinfo.cc (create_typeinfo): Write typeinfo flags as uint.
140 2019-04-23  Iain Buclaw  <ibuclaw@gdcproject.org>
142         * d-builtins.cc (d_init_versions): Add D_BetterC, D_ModuleInfo,
143         D_Exceptions, D_TypeInfo as predefined version conditions.
144         * d-codegen.cc (build_bounds_condition): Generate trap if D asserts
145         are turned off.
146         * d-frontend.cc (getTypeInfoType): Add error when -fno-rtti is set.
147         * d-lang.cc (d_init_options): Initialize new front-end options.
148         (d_handle_option): Handle -fdruntime, -fexceptions, and -frtti.
149         (d_post_options): Turn off D runtime features if -fno-druntime is set.
150         * d-spec.cc (lang_specific_driver): Handle -fdruntime.
151         * d-tree.h (have_typeinfo_p): Add prototype.
152         (build_typeinfo): Update prototype.
153         * decl.cc (DeclVisitor::visit(StructDeclaration)): Create typeinfo
154         only if TypeInfo exists.
155         (DeclVisitor::visit(ClassDeclaration)): Likewise.
156         (DeclVisitor::visit(InterfaceDeclaration)): Likewise.
157         (DeclVisitor::visit(EnumDeclaration)): Likewise.
158         * expr.cc: Update all calls to build_typeinfo.
159         * gdc.texi (Runtime Options): Document -fdruntime and -frtti.
160         * lang.opt: Add -fdruntime and -frtti.
161         * modules.cc (build_module_tree): Create module info only if
162         ModuleInfo exists.
163         * toir.cc (IRVisitor::visit(ThrowStatement)): Update test for
164         -fno-exceptions.
165         * typeinfo.cc (create_tinfo_types): Build internal typeinfo classes
166         only if Object exists.
167         (have_typeinfo_p): New function.
168         (class TypeInfoVisitor): Update all calls to build_typeinfo.
169         (build_typeinfo): Add error when -fno-rtti is set.
171 2019-04-21  Iain Buclaw  <ibuclaw@gdcproject.org>
173         * decl.cc (DeclVisitor::visit(Import)): Set semanticRun after
174         completion, guard against being called more than once.
175         (DeclVisitor::visit(StructDeclaration)): Likewise.
176         (DeclVisitor::visit(ClassDeclaration)): Likewise.
177         (DeclVisitor::visit(InterfaceDeclaration)): Likewise.
178         (DeclVisitor::visit(VarDeclaration)): Likewise.
179         (DeclVisitor::visit(TypeInfoDeclaration)): Likewise.
181 2019-04-21  Iain Buclaw  <ibuclaw@gdcproject.org>
183         * modules.cc (register_module_decl): Don't register unittests against
184         the ModuleInfo symbol for -fbuilding-libphobos-tests.
186 2019-04-17  Iain Buclaw  <ibuclaw@gdcproject.org>
188         * d-system.h (POSIX): Define unix as POSIX.
189         (INT32_MAX, INT32_MIN, INT64_MIN, UINT32_MAX, UINT64_MAX): Provide
190         fallback definitions.
192 2019-04-16  Iain Buclaw  <ibuclaw@gdcproject.org>
194         * Make-lang.in (d.mostyclean): Clean idgen and impcvgen.
195         (d/idgen): Rename to d/idgen$(build_exeext), add BUILD_LIBDEPS.
196         (d/impcvgen): Rename to d/impcvgen$(build_exeext), add BUILD_LIBDEPS.
197         (d/id.c): Call idgen$(build_exeext).
198         (d/impcnvtab.c): Call impcvgen$(build_exeext).
200 2019-04-14  Johannes Pfau  <johannespfau@gmail.com>
201         PR d/87799
202         * d-system.h (_mkdir): Forward _mkdir on MinGW to mkdir in system.h.
204 2019-04-12  Iain Buclaw  <ibuclaw@gdcproject.org>
206         * d-tree.h (DECL_IN_UNITTEST_CONDITION_P): Define.
207         * decl.cc (DeclVisitor): Add in_version_unittest_ field.
208         (DeclVisitor::visit(ConditionalDeclaration)): New override.
209         (DeclVisitor::visit(FuncDeclaration)): Set
210         DECL_IN_UNITTEST_CONDITION_P.
211         * lang.opt (-fbuilding-libphobos-tests): Add option.
212         * modules.cc (current_testing_module): New static variable.
213         (build_module_tree): Generate second moduleinfo symbol to hold
214         reference to unittests if flag_building_libphobos_tests.
215         (register_module_decl): Check DECL_IN_UNITTEST_CONDITION_P to decide
216         which moduleinfo the decl should be registered against.
218 2019-03-31  Iain Buclaw  <ibuclaw@gdcproject.org>
220         PR d/88462
221         * modules.cc (layout_moduleinfo_fields): Properly align ModuleInfo,
222         instead of forcing alignment to be 1.
224 2019-03-21  Iain Buclaw  <ibuclaw@gdcproject.org>
226         PR d/89017
227         * d-codegen.cc (d_decl_context): Skip over template instances when
228         finding the context.
229         * decl.cc (DeclVisitor::visit(TemplateDeclaration)): New override.
230         (build_type_decl): Include parameters in name of template types.
232 2019-03-13  Iain Buclaw  <ibuclaw@gdcproject.org>
234         PR d/88957
235         * expr.cc (ExprVisitor::visit(VectorArrayExp)): New override.
237 2019-03-12  Iain Buclaw  <ibuclaw@gdcproject.org>
239         PR d/87866
240         * d-system.h (realpath): Redefine as lrealpath.
242 2019-03-12  Iain Buclaw  <ibuclaw@gdcproject.org>
244         * d-lang.cc (d_init_options): Set global.params.cplusplus to C++14.
245         * d-target.cc (Target::cppFundamentalType): New method.
247 2019-03-09  Iain Buclaw  <ibuclaw@gdcproject.org>
249         PR d/89041
250         * d-codegen.cc (get_frame_for_symbol): Delegate literals defined in
251         global scope don't have a frame pointer.
253 2019-03-01  Iain Buclaw  <ibuclaw@gdcproject.org>
255         * d-builtins.cc (d_init_versions): Add CppRuntime_Gcc as predefined
256         version condition.
258 2019-02-14  Maya Rashish  <coypu@sdf.org>
260         * d-system.h: NetBSD is POSIX.
262 2019-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
264         PR d/87864
265         * lang.opt (dstartfiles): New option.
266         * d-spec.cc (need_spec): New variable.
267         (lang_specific_driver) <OPT_dstartfiles>: Enable need_spec.
268         (lang_specific_pre_link): Also load libgphobos.spec if need_spec.
270 2019-01-26  Iain Buclaw  <ibuclaw@gdcproject.org>
272         PR d/89042
273         * decl.cc (DeclVisitor::visit(VarDeclaration)): Don't assert if
274         handling a void initialized manifest constant.
276 2019-01-21  Iain Buclaw  <ibuclaw@gdcproject.org>
278         * d-frontend.cc (Compiler::paintAsType): Update for new signature.
280 2019-01-20  Iain Buclaw  <ibuclaw@gdcproject.org>
282         * d-builtins.cc (d_init_versions): Check value of
283         STACK_GROWS_DOWNWARD.
285 2019-01-20  Iain Buclaw  <ibuclaw@gdcproject.org>
287         * d-codegen.cc (identity_compare_p): Return false if seen built-in
288         type with padding.
289         (build_float_identity): Moved here from expr.cc.
290         (lower_struct_comparison): Handle real and complex types.
291         * d-tree.h (build_float_identity): New.
292         * expr.cc (build_float_identity): Move to d-codegen.cc.
294 2019-01-20  Johannes Pfau  <johannespfau@gmail.com>
296         * expr.cc (build_float_identity): New function.
297         (ExprVisitor::visit(IdentityExp)): Add support for complex types.
299 2019-01-16  Iain Buclaw  <ibuclaw@gdcproject.org>
301         PR d/87824
302         * d-lang.cc (d_post_options): Disable implicit
303         -forder-blocks-and-partition.
305 2019-01-16  Iain Buclaw  <ibuclaw@gdcproject.org>
307         * d-codegen.cc (build_typeof_null_value): New function.
308         * d-tree.h (build_typeof_null_value): Declare.
309         * d-convert.cc (convert_expr): Use build_typeof_null_value.
310         * expr.cc (ExprVisitor::visit(NullExp)): Likewise.
312 2019-01-15  Richard Sandiford  <richard.sandiford@arm.com>
314         PR inline-asm/52813
315         * lang.opt (Wdeprecated): Reference common.opt instead of c.opt.
317 2019-01-12  Iain Buclaw  <ibuclaw@gdcproject.org>
319         * README.gcc: New file.
321 2019-01-01  Jakub Jelinek  <jakub@redhat.com>
323         Update copyright years.
325         * gdc.texi: Bump @copyrights-d year.
327 Copyright (C) 2019 Free Software Foundation, Inc.
329 Copying and distribution of this file, with or without modification,
330 are permitted in any medium without royalty provided the copyright
331 notice and this notice are preserved.