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