12019-11-14  Richard Sandiford  <richard.sandiford@arm.com>
2
3	* d-codegen.cc (build_boolop): Use truth_type_for instead of
4	build_same_sized_truth_vector_type.
5
62019-11-13  Joseph Myers  <joseph@codesourcery.com>
7
8	* d-target.cc (define_float_constants): Update call to
9	get_max_float.
10
112019-11-04  Richard Sandiford  <richard.sandiford@arm.com>
12
13	* d-builtins.cc (build_frontend_type): Cope with variable
14	TYPE_VECTOR_SUBPARTS.
15
162019-08-23  Jakub Jelinek  <jakub@redhat.com>
17
18	PR middle-end/91283
19	* d-lang.cc (d_post_options): Set flag_excess_precision instead of
20	flag_excess_precision_cmdline.
21
222019-08-20  Iain Buclaw  <ibuclaw@gdcproject.org>
23
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.
28
292019-08-20  Iain Buclaw  <ibuclaw@gdcproject.org>
30
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.
35
362019-08-20  Iain Buclaw  <ibuclaw@gdcproject.org>
37
38	PR d/90446
39	* d-lang.cc (d_type_for_mode): Check for all internal __intN types.
40	(d_type_for_size): Likewise.
41
422019-08-20  Iain Buclaw  <ibuclaw@gdcproject.org>
43
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.
48
492019-08-20  Iain Buclaw  <ibuclaw@gdcproject.org>
50
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.
58
592019-08-13  Richard Sandiford  <richard.sandiford@arm.com>
60
61	PR middle-end/91421
62	* intrinsics.cc (maybe_set_intrinsic): Use set_decl_built_in_function.
63
642019-08-11  Iain Buclaw  <ibuclaw@gdcproject.org>
65
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.
69
702019-08-10  Iain Buclaw  <ibuclaw@gdcproject.org>
71
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.
75
762019-08-10  Iain Buclaw  <ibuclaw@gdcproject.org>
77
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.
83
842019-06-16  Iain Buclaw  <ibuclaw@gdcproject.org>
85
86	PR d/90559
87	* d-target.cc (Target::_init): Reduce max static data size to INT_MAX.
88
892019-06-16  Iain Buclaw  <ibuclaw@gdcproject.org>
90
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.
102
1032019-06-11  Richard Biener  <rguenthe@suse.de>
104
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.
110
1112019-05-24  Nathan Sidwell  <nathan@acm.org>
112
113	* types.cc (fixup_anonymous_offset): Use IDENTIFIER_ANON_P.
114	(layout_aggregate_members): Use make_anon_name.
115
1162019-05-16  Martin Sebor  <msebor@redhat.com>
117
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.
130
1312019-04-25  Johannes Pfau  <johannespfau@gmail.com>
132
133	* config-lang.in: Do not add target_libs if phobos is disabled.
134
1352019-04-23  Iain Buclaw  <ibuclaw@gdcproject.org>
136	    Robin Dapp  <rdapp@linux.ibm.com>
137
138	* typeinfo.cc (create_typeinfo): Write typeinfo flags as uint.
139
1402019-04-23  Iain Buclaw  <ibuclaw@gdcproject.org>
141
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.
170
1712019-04-21  Iain Buclaw  <ibuclaw@gdcproject.org>
172
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.
180
1812019-04-21  Iain Buclaw  <ibuclaw@gdcproject.org>
182
183	* modules.cc (register_module_decl): Don't register unittests against
184	the ModuleInfo symbol for -fbuilding-libphobos-tests.
185
1862019-04-17  Iain Buclaw  <ibuclaw@gdcproject.org>
187
188	* d-system.h (POSIX): Define unix as POSIX.
189	(INT32_MAX, INT32_MIN, INT64_MIN, UINT32_MAX, UINT64_MAX): Provide
190	fallback definitions.
191
1922019-04-16  Iain Buclaw  <ibuclaw@gdcproject.org>
193
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).
199
2002019-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.
203
2042019-04-12  Iain Buclaw  <ibuclaw@gdcproject.org>
205
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.
217
2182019-03-31  Iain Buclaw  <ibuclaw@gdcproject.org>
219
220	PR d/88462
221	* modules.cc (layout_moduleinfo_fields): Properly align ModuleInfo,
222	instead of forcing alignment to be 1.
223
2242019-03-21  Iain Buclaw  <ibuclaw@gdcproject.org>
225
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.
231
2322019-03-13  Iain Buclaw  <ibuclaw@gdcproject.org>
233
234	PR d/88957
235	* expr.cc (ExprVisitor::visit(VectorArrayExp)): New override.
236
2372019-03-12  Iain Buclaw  <ibuclaw@gdcproject.org>
238
239	PR d/87866
240	* d-system.h (realpath): Redefine as lrealpath.
241
2422019-03-12  Iain Buclaw  <ibuclaw@gdcproject.org>
243
244	* d-lang.cc (d_init_options): Set global.params.cplusplus to C++14.
245	* d-target.cc (Target::cppFundamentalType): New method.
246
2472019-03-09  Iain Buclaw  <ibuclaw@gdcproject.org>
248
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.
252
2532019-03-01  Iain Buclaw  <ibuclaw@gdcproject.org>
254
255	* d-builtins.cc (d_init_versions): Add CppRuntime_Gcc as predefined
256	version condition.
257
2582019-02-14  Maya Rashish  <coypu@sdf.org>
259
260	* d-system.h: NetBSD is POSIX.
261
2622019-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
263
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.
269
2702019-01-26  Iain Buclaw  <ibuclaw@gdcproject.org>
271
272	PR d/89042
273	* decl.cc (DeclVisitor::visit(VarDeclaration)): Don't assert if
274	handling a void initialized manifest constant.
275
2762019-01-21  Iain Buclaw  <ibuclaw@gdcproject.org>
277
278	* d-frontend.cc (Compiler::paintAsType): Update for new signature.
279
2802019-01-20  Iain Buclaw  <ibuclaw@gdcproject.org>
281
282	* d-builtins.cc (d_init_versions): Check value of
283	STACK_GROWS_DOWNWARD.
284
2852019-01-20  Iain Buclaw  <ibuclaw@gdcproject.org>
286
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.
293
2942019-01-20  Johannes Pfau  <johannespfau@gmail.com>
295
296	* expr.cc (build_float_identity): New function.
297	(ExprVisitor::visit(IdentityExp)): Add support for complex types.
298
2992019-01-16  Iain Buclaw  <ibuclaw@gdcproject.org>
300
301	PR d/87824
302	* d-lang.cc (d_post_options): Disable implicit
303	-forder-blocks-and-partition.
304
3052019-01-16  Iain Buclaw  <ibuclaw@gdcproject.org>
306
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.
311
3122019-01-15  Richard Sandiford  <richard.sandiford@arm.com>
313
314	PR inline-asm/52813
315	* lang.opt (Wdeprecated): Reference common.opt instead of c.opt.
316
3172019-01-12  Iain Buclaw  <ibuclaw@gdcproject.org>
318
319	* README.gcc: New file.
320
3212019-01-01  Jakub Jelinek  <jakub@redhat.com>
322
323	Update copyright years.
324
325	* gdc.texi: Bump @copyrights-d year.
326
327Copyright (C) 2019 Free Software Foundation, Inc.
328
329Copying and distribution of this file, with or without modification,
330are permitted in any medium without royalty provided the copyright
331notice and this notice are preserved.
332