12017-12-23  Iain Buclaw  <ibuclaw@gdcproject.org>
2
3	* intrinsics.def (INTRINSIC_MULUI): Declare.
4
52017-12-19  Iain Buclaw  <ibuclaw@gdcproject.org>
6
7	* d-codegen.cc (build_target_expr): Update signature.
8	(force_target_expr): New function.
9	(build_address): Use force_target_expr to store temporary.
10	(d_build_call): Likewise.
11	* d-lang.cc (d_gimplify_expr): Likewise.
12	* d-tree.h (language_function): Update type for vars_in_scope from
13	vec<VarDeclaration*> to vec<tree>.
14	(force_target_expr): Declare.
15	* decl.cc (DeclVisitor::visit(VarDeclaration)): Put vars with scope
16	destructors into a TARGET_EXPR, setting its cleanup.
17	(declare_local_var): Don't push vars with scope destructors into the
18	function binding level.
19	* expr.cc (ExprVisitor::visit(DeclarationExp)): Don't handle scope
20	destructors.
21	(ExprVisitor::visit(CallExp)): Handle calling constructors using
22	temporary objects.
23	(build_dtor_list): Remove function.
24	(build_expr_dtor): Put result into a CLEANUP_POINT_EXPR if any new
25	temporaries needing destruction were added to scope.
26	(build_return_dtor): Likewise.
27	* toir.cc (add_stmt): Set CLEANUP_POINT_EXPR type as void.
28
292017-12-19  Iain Buclaw  <ibuclaw@gdcproject.org>
30
31	* d-attribs.c (attr_noreturn_exclusions): New array.
32	(attr_returns_twice_exclusions, attr_const_pure_exclusions): Likewise.
33	(attr_inline_exclusions, attr_noinline_exclusions): Likewise.
34	(d_langhook_common_attribute_table): Swap affects_identity and handler
35	fields.  Initialize new member of struct attribute_spec.
36	(d_langhook_attribute_table): Likewise.
37	(handle_weakref_attribute): Remove function.
38
392017-12-17  Iain Buclaw  <ibuclaw@gdcproject.org>
40
41	* d-codegen.cc (stabilize_expr): Handle assignment expressions.
42	(get_frame_for_symbol): Adjust the 'this' field of frames of
43	overridden interface functions.
44	* d-diagnostic.cc (expand_format): Rewrite '%X' format as '%x'.
45	* decl.cc (DeclVisitor::visit(ClassDeclaration)): Handle future
46	attribute.
47	* expr.cc (ExprVisitor::binop_assignment): Ensure RHS is evaluated
48	before LHS.
49	(ExprVisitor::visit(SliceExp)): Always save lower bounds if upper has
50	any side effects.
51	* typeinfo.cc (TypeInfoVisitor::TypeInfoClassDeclaration): Use
52	ClassDeclaration::isAbstract.
53	(TypeInfoVisitor::visit(TypeInfoTupleDeclaration)): Mark internal
54	reference as public and hidden.
55
562017-12-10  Iain Buclaw  <ibuclaw@gdcproject.org>
57
58	* d-codegen.cc (build_alignment_field): Set DECL_PADDING_P and
59	DECL_FIELD_CONTEXT on generated fields.
60	(build_struct_literal): Use build_zero_cst to generate padding.
61	* decl.cc (build_type_decl): Set public and decl assembler name.
62
632017-12-10  Iain Buclaw  <ibuclaw@gdcproject.org>
64
65	* types.cc (TypeVisitor::visit(TypeClass)): Check for duplicate
66	declarations before adding method.
67
682017-12-09  Iain Buclaw  <ibuclaw@gdcproject.org>
69
70	* expr.cc (ExprVisitor::visit(AddrExp)): Build internal struct literal
71	symbol before generating its initializer.
72
732017-12-09  Iain Buclaw  <ibuclaw@gdcproject.org>
74
75	* d-lang.cc (d_parse_file): Set first_global_object_name.
76
772017-12-09  Iain Buclaw  <ibuclaw@gdcproject.org>
78
79	* lang.opt (fmodule-filepath=): Rename to fmodule-file.
80	* d-lang.cc (d_handle_option): Update case for OPT_fmodule_file_.
81
822017-12-09  Iain Buclaw  <ibuclaw@gdcproject.org>
83
84	* d-tree.h (CALL_EXPR_ARGS_ORDERED): Define.
85	* d-codegen.cc (d_build_call): Set CALL_EXPR_ARGS_ORDERED for
86	functions with D linkage.
87	* d-lang.cc (d_gimplify_expr): Handle CALL_EXPR_ARGS_ORDERED.
88
892017-12-09  Eugene Wissner  <belka@caraus.de>
90
91	* toir.cc (IRVisitor::visit(SwitchStatement)): Set SWITCH_ALL_CASES_P on
92	switch statements. Set SWITCH_BREAK_LABEL_P on the artificial label
93	created for break statements from a switch.
94
952017-12-04  Eugene Wissner  <belka@caraus.de>
96
97	* toir.cc (IRVisitor::visit(SwitchStatement)): Build SWITCH_EXPR using build2 instead
98	of build3.
99
1002017-11-14  Eugene Wissner  <belka@caraus.de>
101
102	* decl.cc (finish_thunk): Drop frequency argument from
103	symbol_table::create_edge.
104	* d-lang.cc (d_post_options): Set default value of
105	-Wreturn-type to false.
106
1072017-11-11  Iain Buclaw  <ibuclaw@gdcproject.org>
108
109	* d-codegen.cc (build_float_cst): Remove float rounding check.
110	* d-longdouble.cc (longdouble::to_int): Don't round floats before int
111	conversion.
112	* expr.cc (ExprVisitor::binary_op): Handle excess precision.
113	(ExprVisitor::visit(NegExp)): Likwise.
114
1152017-10-31  Iain Buclaw  <ibuclaw@gdcproject.org>
116
117	* d-codegen.cc (build_address): Store CST nodes into a TARGET_EXPR
118	before taking its address.
119
1202017-10-08  Iain Buclaw  <ibuclaw@gdcproject.org>
121
122	* Make-lang.in (D_FRONTEND_OBJS): Remove newdelete.o.
123	* d-incpath.cc (add_globalpaths): Handle NULL target path.
124
1252017-10-01  Iain Buclaw  <ibuclaw@gdcproject.org>
126
127	* typeinfo.cc (TypeInfoVisitor::visit(TypeInfoClassDeclaration)):
128	Properly check base classes for pointers.
129
1302017-09-28  Iain Buclaw  <ibuclaw@gdcproject.org>
131
132	* expr.cc (ExprVisitor::visit(StringExp)): Add extra null terminator
133	onto string type, not the literal.
134
1352017-09-26  Iain Buclaw  <ibuclaw@gdcproject.org>
136
137	* types.cc (make_array_type): Move checking of void static arrays
138	here.
139
1402017-09-24  Iain Buclaw  <ibuclaw@gdcproject.org>
141
142	* d-attribs.c: Add include for attribs.h.
143	* d-codegen.cc (copy_aggregate_type): Remove TYPE_METHODS.
144	(lower_struct_comparison): Use opt_scalar_int_mode.
145	* d-target.cc (Target::_init): Use TYPE_MAX_VALUE instead of
146	TYPE_MAXVAL.
147	(Target::isVectorTypeSupported):  Update call to
148	scalar_mode_supported_p.
149	* decl.cc (DeclVisitor::visit(Import)): Pass false as new argument to
150	the imported_module_or_decl hook.
151	* types.cc (TypeVisitor::visit(TypeClass)): Remove TYPE_METHODS.
152
1532017-09-14  Iain Buclaw  <ibuclaw@gdcproject.org>
154
155	* Make-lang.in (D_FRONTEND_OBJS): Add blockexit.o, initsem.o,
156	inlinecost.o, safe.o, staticcond.o, and typesem.o.
157	* d-attribs.c (uda_attribute_p): Use get_identifier to compare
158	strings.
159	(build_attributes): Handle empty string expressions.
160	* d-builtins.cc (build_frontend_type): Use static create methods to
161	'new' front-end types, expressions, and declarations.
162	(d_eval_constant_expression): Likewise.
163	(build_alias_declaration): Likewise.
164	(d_build_builtins_module): Likewise.
165	* d-codegen.cc (declaration_type): Likewise.
166	(type_passed_as): Likewise.
167	(get_frame_for_symbol): Remove dependency on id.h.
168	(get_frameinfo): Don't overwrite FRAMEINFO_CREATES_FRAME if function
169	has nested frame references.
170	* d-convert.cc (convert_for_assignment): Allow static arrays to be
171	initialized with a zero integer value.
172	* d-frontend.cc (genCmain): Remove dependency on id.h.
173	* d-frontend.h (initializerToExpression): Add declaration.
174	(gendocfile): Add declaration.
175	(initTraitsStringTable): Remove.
176	* d-lang.cc (deps_write): Remove dependency on id.h.
177	(deps_add_target): Don't call StringTables's destructor.
178	(d_init): Remove calls to deleted front-end initialize functions.
179	* decl.cc (DeclVisitor::visit(PragmaDeclaration)): Remove dependency
180	on id.h.
181	(DeclVisitor::visit(VarDeclaration)): Call initializerToExpression to
182	get the initializer of decl.
183	(build_decl_tree): Remove dependency on id.h.
184	(layout_class_initializer): Use static create method to 'new'
185	front-end expression.
186	* expr.cc (ExprVisitor::visit(AssignExp)): Handle static array
187	assignment where RHS is integer zero.
188	(ExprVisitor::visit(VarExp)): Remove dependency on id.h.
189	(ExprVisitor::visit(StringExp)): Handle empty string expressions.
190	* modules.cc (get_internal_fn): Use FuncDeclaration::genCfunc to
191	create function decl.
192	(build_module_tree): Remove dependency on id.h.
193	* toir.cc (IRVisitor::visit(ExtAsmStatement)): Handle empty string
194	expressions.
195	* typeinfo.cc (make_frontend_typeinfo): Use static create methods to
196	'new' front-end declarations.
197	(create_tinfo_types): Remove dependency on id.h.
198	(get_cpp_typeinfo_decl): Likewise.
199	(create_typeinfo): Likewise.
200
2012017-08-23  Johannes Pfau  <johannespfau@gmail.com>
202
203	* typeinfo.cc (TypeInfoVisitor::visit(TypeInfoStructDeclaration)): Do
204	not send member functions to backend here.
205
2062017-08-19  Iain Buclaw  <ibuclaw@gdcproject.org>
207
208	* d-convert.cc (convert_expr): Use build_zero_cst for casts from
209	typeof(null).
210
2112017-08-13  Iain Buclaw  <ibuclaw@gdcproject.org>
212
213	* d-target.cc (Target::isVectorOpSupported): Disallow vectors in
214	conditional and logical operators.
215
2162017-08-08  Iain Buclaw  <ibuclaw@gdcproject.org>
217
218	* intrinsics.cc (maybe_expand_intrinsic): Handle isNaN(), isInfinity()
219	and isFinite() intrinsics.
220	* intrinsics.def: Add INTRINSIC_ISNAN, INTRINSIC_ISINFINITY, and
221	INTRINSIC_ISFINITE.
222
2232017-08-08  Iain Buclaw  <ibuclaw@gdcproject.org>
224
225	* intrinsics.cc (expand_intrinsic_popcnt): New function.
226	(maybe_expand_intrinsic): Handle INTRINSIC_POPCNT.
227	* intrinsics.def (INTRINSIC_POPCNT): Declare.
228
2292017-08-06  Iain Buclaw  <ibuclaw@gdcproject.org>
230
231	* d-frontend.cc (isBuiltin): Remove restriction on builtins.
232	(eval_builtin): Check DECL_INTRINSIC_CODE.
233	* d-tree.h (intrinsic_code): Add enum declaration.
234	(lang_decl): Add intrinsic field.
235	(DECL_INTRINSIC_CODE): New macro.
236	(DECL_BUILT_IN_CTFE): New macro.
237	* decls.cc (get_symbol_decl): Initialize DECL_INTRINSIC_CODE.
238	* intrinsics.cc (intrinsic_decl): Add ctfeonly field.
239	(maybe_set_intrinsic): Set frontend builtin flag only if the function
240	is CTFE-able.  Set BUILT_IN_FRONTEND if function has no body.
241	(clear_intrinsic_flag): Clear DECL_INTRINSIC_CODE instead of frontend
242	builtin flag.
243	(maybe_expand_intrinsic): Handle INTRINSIC_TAN intrinsics.
244	Call clear_intrinsic_flag on CTFE built-ins if semantic has finished.
245	* intrinsics.def: Add INTRINSIC_TAN.
246	(DEF_D_BUILTIN): New macro.
247	(DEF_CTFE_BUILTIN): New macro.
248
2492017-08-06  Iain Buclaw  <ibuclaw@gdcproject.org>
250
251	* decl.cc (DeclVisitor::visit): Don't set input_location.
252	(build_decl_tree): Handle set and restore of input_location.
253	(declare_local_var): Don't set input_location.
254	* expr.cc (build_expr): Handle set and restore of input_location.
255	* imports.cc (build_import_decl): Likewise.
256	* modules.cc (get_dso_registry_fn): Use UNKNOWN_LOCATION for
257	declaration of _d_dso_registry.
258	* runtime.cc (build_libcall_decl): Use UNKNOWN_LOCATION for
259	declaration of library functions.
260	* toir.cc (IRVisitor::visit): Don't set input_location.
261	(IRVisitor::build_stmt): New function.
262	(IRVisitor::do_jump): Update signature.
263	(build_function_body): Use IRVisitor::build_stmt.
264	* typeinfo.cc (layout_classinfo_interfaces): Don't set input_location.
265	* types.cc (layout_aggregate_members): Likewise.
266	(layout_aggregate_type): Likewise.
267
2682017-08-05  Iain Buclaw  <ibuclaw@gdcproject.org>
269
270	* d-codegen.cc (build_boolop): Handle VECTOR_TYPE comparisons.
271	* d-target.cc (Target::checkVectorType): Rename to
272	Target::isVectorTypeSupported.
273	(Target::isVectorOpSupported): New function.
274	* expr.cc (ExprVisitor::visit(IdentityExp)): Don't memcmp floating
275	point vectors.
276	(ExprVisitor::visit(CmpExp)): Handle always true or always false
277	vector comparisons.
278
2792017-08-02  Iain Buclaw  <ibuclaw@gdcproject.org>
280
281	* typeinfo.cc (SpeculativeTypeVisitor::visit(TypeClass)): Don't emit
282	typeinfo for speculative class types.
283
2842017-07-29  Iain Buclaw  <ibuclaw@gdcproject.org>
285
286	* d-lang.cc (build_lang_decl): Handle compiler generated typeinfo that
287	also appear in code.
288	* d-tree.h (lang_identifier): Add decl_tree.
289	(IDENTIFIER_DECL_TREE): New macro.
290	* decl.cc (declare_extern_var): Re-use already generated decl if
291	called with the same identifier twice.
292
2932017-07-29  Iain Buclaw  <ibuclaw@gdcproject.org>
294
295	* decl.cc (d_finish_decl): Replace ENABLE_TREE_CHECKING macro with
296	flag_checking.
297
2982017-07-28  Iain Buclaw  <ibuclaw@gdcproject.org>
299
300	* d-tree.h (D_DECL_ONE_ONLY): Remove macro accessor.
301	* decl.cc (DeclVisitor::visit(StructDeclaration)): Move call to
302	d_comdat_linkage here.
303	(DeclVisitor::visit(ClassDeclaration)): Likewise.
304	(DeclVisitor::visit(InterfaceDeclaration)): Likewise.
305	(DeclVisitor::visit(EnumDeclaration)): Likewise.
306	(get_symbol_decl): Move call to mark_needed here.
307	(declare_extern_var): Mark compiler generated symbols as needed.
308	(make_thunk): Remove copy of D_DECL_ONE_ONLY.
309	(get_vtable_decl): Don't call d_comdat_linkage.
310	(aggregate_initializer_decl): Likewise.
311	(enum_initializer_decl): Likewise.
312	* modules.cc (d_finish_compilation): Don't call mark_needed.
313	* typeinfo.cc (get_classinfo_decl): Don't call d_comdat_linkage.
314
3152017-07-28  Iain Buclaw  <ibuclaw@gdcproject.org>
316
317	* d-spec.c (lang_specific_driver): Always add `-o' option when
318	compiling D sources.
319
3202017-07-28  Iain Buclaw  <ibuclaw@gdcproject.org>
321
322	* d-frontend.cc (genCmain): Don't error if entrypoint not found.
323
3242017-07-18  Iain Buclaw  <ibuclaw@gdcproject.org>
325
326	* d-lang.cc (d_types_compatible_p): Check that both types are
327	RECORD_TYPE before using record-specific flag comparison.
328
3292017-07-15  Iain Buclaw  <ibuclaw@gdcproject.org>
330
331	* d-builtins.cc (d_build_d_type_nodes): Set TYPE_DYNAMIC_ARRAY on
332	array_type_node.
333	* d-codegen.cc (build_delegate_cst): Set TYPE_DELEGATE on internal
334	delegate constant types.
335	* d-frontend.h (cppTypeInfoMangle): Remove declaration.
336	(toCppMangleItanium): Add declaration.
337	(cppTypeInfoMangleItanium): Add declaration.
338	* d-lang.cc (d_types_compatible_p): Use type flags to determine
339	compatibility.  Return false instead of doing size comparison.
340	* d-target.cc (Target::toCppMangle): New function.
341	(Target::cppTypeInfoMangle): New function.
342	(Target::cppTypeMangle): New function.
343	(Target::systemLinkage): New function.
344	* d-tree.h (TYPE_DYNAMIC_ARRAY): New macro.
345	(TYPE_DELEGATE): New macro.
346	(TYPE_ASSOCIATIVE_ARRAY): New macro.
347	* typeinfo.cc (layout_cpp_typeinfo): Use Target::cppTypeInfoMangle.
348	* types.cc (TypeVisitor::visit(TypeDArray)): Set TYPE_DYNAMIC_ARRAY.
349	(TypeVisitor::visit(TypeAArray)): Set TYPE_ASSOCIATIVE_ARRAY.
350	(TypeVisitor::visit(TypeDelegate)): Set TYPE_DELEGATE.
351
3522017-07-11  Iain Buclaw  <ibuclaw@gdcproject.org>
353
354	* d-target.cc (Target::loadModule): Check module identifier if a
355	declaration doesn't exist.
356	* typeinfo.cc (make_frontend_typeinfo): Use module location instead if
357	a declaration doesn't exist.
358
3592017-06-28  Iain Buclaw  <ibuclaw@gdcproject.org>
360
361	* d-frontend.cc (CTFloat::hash): New function.
362
3632017-06-25  Iain Buclaw  <ibuclaw@gdcproject.org>
364
365	* d-codegen.cc (d_array_string): Remove function.
366	(d_assert_call): Inline implementation of d_array_string here.
367	* d-tree.h (d_array_string): Remove declaration.
368	* typeinfo.cc (TypeInfoVisitor::layout_string): New function.
369	(TypeInfoVisitor::visit): Update calls to d_array_string to use
370	layout_string instead.
371
3722017-06-25  Iain Buclaw  <ibuclaw@gdcproject.org>
373
374	* toir.cc (IRVisitor::visit(ExtAsmStatement)): Set ASM_VOLATILE_P only
375	if statement is not marked with pure attribute.
376
3772017-06-25  Iain Buclaw  <ibuclaw@gdcproject.org>
378
379	* d-lang.cc (d_parse_file): Print all predefined version identifiers
380	if verbose.
381
3822017-06-24  Iain Buclaw  <ibuclaw@gdcproject.org>
383
384	* d-frontend.cc (Global::_init): Remove memset for global.params.
385
3862017-06-24  Iain Buclaw  <ibuclaw@gdcproject.org>
387
388	* Make-lang.in (D_ALL_OBJS): Add D_TARGET_OBJS.
389	* d-builtins.cc (d_add_builtin_version): Move here from d-lang.cc.
390	(d_init_versions): New function.
391	* d-lang.cc (d_init): Call d_init_versions.
392	* d-target-def.h: New file.
393	* d-target.cc (Target::critsecsize): Replace with call to
394	targetdm.critsec_size.
395	* d-target.def: New file.
396	* d-target.h: New file.
397	* d-tree.h (d_init_versions): Add declaration.
398
3992017-06-20  Iain Buclaw  <ibuclaw@gdcproject.org>
400
401	* expr.cc (ExprVisitor::visit(BinAssignExp)): Strip promotions from
402	both signed and unsigned rshift assignments.
403
4042017-06-17  Iain Buclaw  <ibuclaw@gdcproject.org>
405
406	* d-diagnostic.cc (expand_format): New function.
407	(d_diagnostic_report_diagnostic): New function.
408	(error, verror): Update format attributes.  Use function
409	d_diagnostic_report_diagnostic instead of xvasprintf.
410	(errorSupplemental, verrorSupplemental): Likewise.
411	(warning, vwarning): Likewise.
412	(warningSupplemental, vwarningSupplemental): Likewise.
413	(deprecation, vdeprecation): Likewise.
414	(deprecationSupplemental, vdeprecationSupplemental): Likewise.
415
4162017-06-15  Iain Buclaw  <ibuclaw@gdcproject.org>
417
418	* expr.cc (ExprVisitor::visit(AssertExp)): Don't call invariant on
419	interface objects.
420
4212017-06-12  Iain Buclaw  <ibuclaw@gdcproject.org>
422
423	* expr.cc (ExprVisitor::visit(DelegateExp)): Convert object to right
424	type before using it.
425
4262017-06-12  Iain Buclaw  <ibuclaw@gdcproject.org>
427
428	* d-decls.cc (get_decl_tree): Find the first parent member function
429	before constructing non-local `this' decl.
430
4312017-06-10  Iain Buclaw  <ibuclaw@gdcproject.org>
432
433	* d-builtins.cc (build_frontend_type): Allow all vector types to be
434	included in builtins module.
435
4362017-06-09  Iain Buclaw  <ibuclaw@gdcproject.org>
437
438	* types.cc (TypeVisitor::visit(TypeStruct)): Let struct alignment
439	override the alignsize.
440
4412017-06-09  Iain Buclaw  <ibuclaw@gdcproject.org>
442
443	* d-codegen.cc (d_decl_context): Use origin template declaration as
444	context for instantiated type symbols.
445
4462017-06-08  Iain Buclaw  <ibuclaw@gdcproject.org>
447
448	* d-attribs.c (d_handle_weak_attribute): Use quoted string format.
449	* decls.cc (finish_thunk): Update call to create_edge for new API.
450
4512017-06-08  Iain Buclaw  <ibuclaw@gdcproject.org>
452
453	* expr.cc (ExprVisitor::visit(StringExp)): Create string type that is
454	same length as string value literal.
455
4562017-05-27  Iain Buclaw  <ibuclaw@gdcproject.org>
457
458	* Make-lang.in (D_FRONTEND_OBJS): Rename object.o to rootobject.o.
459
4602017-05-26  Iain Buclaw  <ibuclaw@gdcproject.org>
461
462	* decl.cc: Remove include for dumpfile.h.
463	(finish_function): Use dump_function to for dumping original ASTs.
464
4652017-05-24  Iain Buclaw  <ibuclaw@gdcproject.org>
466
467	* config-lang.in (gtfiles): Add typeinfo.cc.
468	* d-codegen.cc (d_build_call_list): Remove function.
469	(d_build_call_nary): Remove function.
470	(build_binary_op): Remove function.
471	(build_binop_assignment): Remove function.
472	(build_vthis_type): Rename to build_vthis_function.
473	(create_field_decl): Move to decl.cc.
474	* d-lang.cc (genCmain): Moved to d-frontend.cc.
475	(builtin_modules): Declare static.
476	(d_add_builtin_module): New function.
477	(d_add_entrypoint_module): New function.
478	* expr.cc (ExprVisitor::binary_op): New function.
479	(ExprVisitor::binop_assignment): New function.
480	* intrinsic.cc (expand_intrinsic): Rename to maybe_expand_intrinsic.
481	* runtime.cc (build_libcall): Updated signature.
482	* types.cc (make_two_field_type): Remove function.
483	(make_struct_type): New function.
484
4852017-05-22  Iain Buclaw  <ibuclaw@gdcproject.org>
486
487	* Make-lang.in (D_OBJS): Add intrinsics.o and runtime.o.
488	* d-codegen.h: Remove file.
489	* intrinsics.cc: New file.
490	* runtime.cc: New file.
491
4922017-05-21  Iain Buclaw  <ibuclaw@gdcproject.org>
493
494	* d-codegen.cc: Remove include for d-dmd-gcc.h.
495	* d-dmd-gcc.h: Rename to d-frontend.h.  Update all includes.
496	* d-frontend.cc (Global::_init): Remove unnecessary initialization.
497	* expr.cc: Remove include for d-dmd-gcc.h.
498
4992017-05-21  Iain Buclaw  <ibuclaw@gdcproject.org>
500
501	* d-attribs.c (handle_sentinel_attribute): Remove function.
502	(ignore_attribute): Remove function.
503	(d_langhook_common_attribute_table): Remove sentinel and tm regparm
504	from common attribute table.
505	(d_langhook_format_attribute_table): Remove variable.
506	* d-lang.cc (LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE): Remove macro.
507	(LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Remove macro.
508	(d_post_options): Don't set flag_unit_at_a_time.
509	(d_nametype): Remove function.
510	* types.cc (TypeVisitor::visit(TypeBasic)): Set TYPE_NAME.
511	(TypeVisitor::visit(TypeVector)): Likewise.
512
5132017-05-20  Iain Buclaw  <ibuclaw@gdcproject.org>
514
515	* Make-lang.in (D_OBJS): Remove d-objfile.o.  Add modules.o.
516	* d-codegen.cc (get_linemap): Move function here.
517	* d-objfile.cc: Remove file.
518	* d-objfile.h: Remove header.
519	* d-tree.h (GDC_PREFIX): New macro.
520	* decl.cc (make_internal_name): Rename to mangle_internal_decl.
521	(DeclVisitor): Move class here.
522	(gcc_attribute_p): Move function here.
523	(build_decl_tree): Likewise.
524	(d_finish_decl): Likewise.
525	(start_function): Likewise.
526	(finish_function): Likewise.
527	(mark_needed): Likewise.
528	(base_vtable_offset): Likewise.
529	(build_artificial_decl): Likewise.
530	(build_type_decl): Likewise.
531	(d_comdat_group): Likewise.
532	(d_comdat_linkage): Likewise.
533	(add_moduleinfo_field): Move to modules.cc
534	(layout_moduleinfo_fields): Likewise.
535	(get_moduleinfo_decl): Likewise.
536	* modules.cc: New file.
537
5382017-05-10  Iain Buclaw  <ibuclaw@gdcproject.org>
539
540	* imports.cc (ImportVisitor::visit(Import)): New function.
541
5422017-05-06  Iain Buclaw  <ibuclaw@gdcproject.org>
543
544	* d-objfile.cc (DeclVisitor::visit(Module)): Set input_location before
545	walking module members.
546	(get_linemap): Return input_location if no filename set.
547	(set_input_location): Remove function.  Update all callers to set
548	input_location directly.
549	(set_decl_location): Remove function.  Update all callers to pass
550	get_linemap to build_decl, or use input_location.
551	* types.cc (insert_aggregate_field): Update signature.
552
5532017-04-30  Iain Buclaw  <ibuclaw@gdcproject.org>
554
555	* d-objfile.cc (start_function): Update signature.
556	(finish_function): Update signature.
557	(DeclVisitor::visit(FuncDeclaration)): Move function construction to
558	start_function.  Move function finalization to finish_function.
559	(set_function_end_locus): Remove function.
560	(d_finish_function): Remove function.
561	(build_simple_function_decl): Don't set frontend body.
562	(build_simple_function): Update signature.  Use start/finish function
563	to compile the body.
564	(emit_dso_registry_cdtor): Likewise.
565	* expr.cc (ExprVisitor::visit(WrappedExp)): Remove function.
566
5672017-04-29  Iain Buclaw  <ibuclaw@gdcproject.org>
568
569	* d-diagnostic.cc (verror): Use xvasprintf.
570	(verrorSupplemental): Likewise.
571	(vwarning): Likewise.
572	(vwarningSupplemental): Likewise.
573	(vdeprecation): Likewise.
574	(vdeprecationSupplemental): Likewise.
575
5762017-04-24  Iain Buclaw  <ibuclaw@gdcproject.org>
577
578	* d-tree.h (d_tree_index): Add DTI_VTABLE_ENTRY_TYPE,
579	DTI_VTBL_INTERFACE_TYPE, DTI_ARRAY_TYPE, and DTI_NULL_ARRAY.
580	(vtable_entry_type): New macro.
581	(vtbl_interface_type_node): New macro.
582	(array_type_node): New macro.
583	(null_array_node): New macro.
584	* d-builtins.cc (d_build_d_type_nodes): Initialize new trees.
585	* d-codegen.cc (build_struct_literal): Allow NULL index when
586	looking for next field to initialize.
587	(copy_aggregate_type): New function.
588	* d-target.cc (Target::loadModule): Look for object module,
589	call create_tinfo_types.
590	* decl.cc (TypeInfoDeclVisitor): Move to typeinfo.cc.
591	(get_typeinfo_decl): Likewise.
592	(copy_struct): Remove function.  Updated callers to use
593	copy_aggregate_type.
594	(layout_classinfo_interfaces): Move to typeinfo.cc.
595	(get_classinfo_decl): Likewise.
596	(get_cpp_typeinfo_decl): Likewise.
597	* typeinfo.cc (tinfo_kind): New enum.
598	(tinfo_types): New static variable.
599	(get_typeinfo_kind): New function.
600	(make_internal_typeinfo): New function.
601	(make_frontend_typeinfo): New function.
602	(create_tinfo_types): New function.
603	(TypeInfoVisitor::set_field): Remove function.
604	Update all callers to use layout_field.
605	(TypeInfoVisitor::layout_vtable): Remove function.
606	Update all callers to use layout_base.
607	(TypeInfoVisitor::layout_field): New function.
608	(TypeInfoVisitor::layout_base): New function.
609	(builtin_typeinfo_p): New function.
610	(genTypeInfo): Rename to create_typeinfo.
611	(isSpeculativeType): Rename to speculative_type_p.
612
6132017-04-23  Iain Buclaw  <ibuclaw@gdcproject.org>
614
615	* d-tree.h (d_function_chain): Declare macro.  Update all uses of
616	`cfun->language' to use it.
617
6182017-04-22  Iain Buclaw  <ibuclaw@gdcproject.org>
619
620	* d-decls.cc: Rename to decl.cc.
621	(get_symbol_decl): Handle typeinfo declarations.
622	(declare_extern_var): New function.
623	(declare_local_var): New function.
624	(get_moduleinfo_decl): Call declare_extern_var.
625	(get_classinfo_decl): Likewise.
626	(get_vtable_decl): Likewise.
627	(get_cpp_typeinfo_decl): Likewise.
628	(aggregate_initializer_decl): Likewise.
629	(enum_initializer_decl): Likewise.
630	* Make-lang.in (D_OBJS): Update.
631	* d-codegen.cc (build_local_var): Remove function.
632	Updated all callers to use declare_local_var.
633	(build_local_temp): Move to decl.cc.
634	(get_decl_tree): Likewise.
635	(expand_decl): Remove function.
636	(build_closure): Inline expand_decl here.
637
6382017-04-20  Iain Buclaw  <ibuclaw@gdcproject.org>
639
640	* d-codegen.cc (pop_binding_label): Move to toir.cc.
641	(pop_label): Likewise.
642	(push_binding_level): Likewise
643	(pop_binding_level): Likewise.
644	(push_stmt_list): Likewise.
645	(add_stmt): Likewise.
646	(check_goto): Move to toir.cc, make it a member of IRVisitor.
647	(check_previous_goto): Likewise.
648	(lookup_label): Likewise.
649	(lookup_bc_label): Likewise.
650	(define_label): Likewise.
651	* toir.cc (build_ir): Rename to build_function_body.
652
6532017-04-19  Iain Buclaw  <ibuclaw@gdcproject.org>
654
655	* d-target.cc: Update includes.
656
6572017-04-19  Iain Buclaw  <ibuclaw@gdcproject.org>
658
659	* lang-specs.h: Remove capitalized D source suffixes.
660
6612017-04-19  Iain Buclaw  <ibuclaw@gdcproject.org>
662
663	* lang-specs.h: Add rule for forwarding -iprefix and -imultilib to the
664	compiler proper.
665
6662017-04-19  Iain Buclaw  <ibuclaw@gdcproject.org>
667
668	* lang-specs.h: Remove cc1d spec.
669
6702017-04-19  Iain Buclaw  <ibuclaw@gdcproject.org>
671
672	* lang-specs.h: Remove +e handling.
673
6742017-04-18  Iain Buclaw  <ibuclaw@gdcproject.org>
675
676	* d-diagnostic.cc: New file.
677	* d-frontend.cc: New file.
678	* d-glue.cc: Remove file.
679	* d-port.cc: Remove file.
680	* d-longdouble.h (template<typename T> operator): Remove operators.
681
6822017-04-17  Iain Buclaw  <ibuclaw@gdcproject.org>
683
684	* d-incpath.cc (add_env_var_paths): Rename to add_environment_paths.
685	(make_absolute): Remove function.
686	(add_import_path): Rename to add_globalpaths.
687	(add_fileimp_path): Rename to add_filepaths.
688
6892017-04-17  Iain Buclaw  <ibuclaw@gdcproject.org>
690
691	* d-codegen.h (d_types_same): Renamed to same_type_p.
692	Moved to types.cc.
693	(build_object_type): Renamed to get_object_type.  Moved to types.cc.
694	* d-codegen.cc (type_va_array): Renamed to valist_array_p.
695	Moved to types.cc.
696	(d_array_type): Renamed to make_array_type.  Moved to types.cc.
697	(insert_type_modifiers): Moved to types.cc.
698	(build_two_field_type): Likewise.
699	(empty_aggregate_p): Likewise.
700	(fixup_anonymous_offset): Likewise.
701	(layout_aggregate_members): Likewise.
702	(layout_aggregate_type): Likewise.
703	(insert_aggregate_field): Likewise.
704	(finish_aggregate_type): Likewise.
705
7062017-04-17  Iain Buclaw  <ibuclaw@gdcproject.org>
707
708	* Make-lang.in (D_FRONTEND_OBJS): Update to match new source names.
709
7102017-04-11  Iain Buclaw  <ibuclaw@gdcproject.org>
711
712	* gdc.texi: Rewrite documentation for manpages.
713
7142017-04-08  Iain Buclaw  <ibuclaw@gdcproject.org>
715
716	* d-objfile.cc (DeclVisitor::visit(FuncDeclaration)): Remove logic
717	that parent needs to be compiled before nested.
718
7192017-04-08  Iain Buclaw  <ibuclaw@gdcproject.org>
720
721	* d-lang.cc (d_post_options): Don't overwrite in_fnames.
722	(d_parse_file): Don't error about not being able to use stdin.
723	Implement support for reading source code from stdin.
724
7252017-04-08  Iain Buclaw  <ibuclaw@gdcproject.org>
726
727	* d-lang.cc (d_parse_file): Remove invalid file name checks.
728
7292017-04-08  Iain Buclaw  <ibuclaw@gdcproject.org>
730
731	* d-glue.cc (Global::_init): Set global.stdmsg to stderr.
732
7332017-04-07  Iain Buclaw  <ibuclaw@gdcproject.org>
734
735	* d-codgen.h (current_module_decl): Moved to d-objfile.cc.
736	* d-objfile.h (current_module_info): Likewise.
737	(ModuleInfoFlags): Likewise.
738	(ModuleInfo): Likewise.
739	* d-objfile.cc (start_function): Move updating ModuleInfo structure to
740	...
741	(DeclVisitor::visit(FuncDeclaration)): ... here.  Set it after
742	finishing off the function.
743
7442017-04-07  Iain Buclaw  <ibuclaw@gdcproject.org>
745
746	* d-objfile.cc (DeclVisitor::visit(FuncDeclaration)): Use
747	push_function_decl for storing current state when switching to nested
748	functions.  Remove handling of deferred functions.
749	* d-tree.h (language_function): Remove deferred_fns.
750	* expr.cc (ExprVisitor::visit(DelegateExp)): Don't defer compiling
751	the delegate lambda.
752	(ExprVisitor::visit(FuncExp)): Likewise for function literals.
753	(ExprVisitor::visit(VarExp)): Likewise.
754
7552017-04-07  Iain Buclaw  <ibuclaw@gdcproject.org>
756
757	* d-codegen.cc (start_function): Move to d-objfile.cc, make it static.
758	(end_function): Likewise.  Renamed to finish_function.
759
7602017-04-05  Iain Buclaw  <ibuclaw@gdcproject.org>
761
762	* d-codegen.cc (d_convert): Move to d-convert.cc.
763	(convert_expr): Likewise.
764	(convert_for_assignment): Likewise.
765	(convert_for_argument): Likewise.
766	(convert_for_condition): Likewise.
767	(d_array_convert): Likewise.
768
7692017-04-04  Iain Buclaw  <ibuclaw@gdcproject.org>
770
771	* d-builtins.c (d_global_trees): Move to d-lang.cc.
772	(build_dtype): Rename to build_frontend_type.
773	Updated all callers.
774	(build_expression): Rename to d_eval_constant_expression.
775	Updated all callers.
776	(build_alias_declaration): New function.
777	(d_build_c_type_nodes): New function.
778	(d_build_d_type_nodes): New function.
779	(d_define_builtins): New function.
780
7812017-04-04  Iain Buclaw  <ibuclaw@gdcproject.org>
782
783	* d-attribs.c (insert_type_attribute): Use
784	build_type_attribute_variant.
785	(insert_decl_attribute): Use build_decl_attribute_variant.
786	(uda_attribute_p): Remove string table, use Identifier comparison for
787	looking up table attributes.
788	(build_attributes): Make unknown attribute a warning, use quoted
789	strings in diagnostic messages.
790
7912017-04-01  Iain Buclaw  <ibuclaw@gdcproject.org>
792
793	* d-lang.cc (d_handle_option): Handle -fdump-d-original.
794	(d_parse_file): Likewise.
795	* d-target.cc (Target::maxStaticDataSize): New variable.
796	(Target::_init): Initialize maxStaticDataSize.
797	* lang.opt (fdump-d-original): Declare.
798
7992017-04-01  Iain Buclaw  <ibuclaw@gdcproject.org>
800
801	* Make-lang.in (D_GLUE_OBJS): Remove d-todt.cc.
802	* d-objfile.cc (build_moduleinfo_symbol): Build initializer for
803	ModuleInfo directly from inferred type fields.
804	(d_finish_symbol): Remove handling of DECL_LANG_INITIAL.
805	* d-todt.cc: Remove file.
806	* d-tree.h (lang_decl): Remove initial field.
807	(DECL_LANG_INITIAL): Remove macro.
808
8092017-03-31  Iain Buclaw  <ibuclaw@gdcproject.org>
810
811	* d-objfile.cc (DeclVisitor::visit(VarDeclaration)): Use build_expr to
812	generate the static initializer.
813	* d-todt.cc (Initializer::toDt): Remove function and all overrides.
814	* expr.cc (ExprVisitor::visit(VarExp)): Use build_expr to get the
815	constant initializer of a constant variable.
816
8172017-03-29  Iain Buclaw  <ibuclaw@gdcproject.org>
818
819	* d-decls.cc (aggregate_initializer): Renamed to
820	aggregate_initializer_decl.  Updated all callers.
821	(enum_initializer): Renamed to enum_initializer_decl.
822	Updated all callers.
823	(layout_class_initializer): New function.
824	(layout_struct_initializer): New function.
825	* d-todt.cc (ClassDeclaration::toDt): Remove function.
826	(StructDeclaration::toDt): Remove function.
827
8282017-03-27  Iain Buclaw  <ibuclaw@gdcproject.org>
829
830	* d-objfile.cc (DeclVisitor::visit(Module)): New function.
831	(Module::genobjfile): Remove function.
832	Updated all callers to use build_decl_tree.
833	(layout_moduleinfo): New function.
834	(Module::genmoduleinfo): Remove function.
835	Update all callers to use layout_moduleinfo.
836
8372017-03-26  Iain Buclaw  <ibuclaw@gdcproject.org>
838
839	* d-objfile.cc (base_vtable_offset): New function.
840	(ClassDeclaration::baseVtblOffset): Remove function.
841	Updated all callers to use base_vtable_offset.
842
8432017-03-26  Iain Buclaw  <ibuclaw@gdcproject.org>
844
845	* d-objfile.cc (DeclVisitor): New visitor interface to supercede the
846	toObjFile methods.
847	(build_decl_tree): New function.
848	(Dsymbol::toObjFile): Remove function and overrides.
849	Updated all callers to use build_decl_tree.
850
8512017-03-20  Iain Buclaw  <ibuclaw@gdcproject.org>
852
853	* d-decls.cc (get_cpp_typeinfo_decl): New function.
854	* d-lang.cc (d_build_eh_type_type): Return classinfo for
855	__cpp_type_info_ptr when generating catch for C++ classes.
856	* runtime.def (CXA_BEGIN_CATCH): Define.
857	(CXA_END_CATCH): Define.
858	* toir.cc (IRVisitor::visit(TryCatchStatement)): Support catching
859	classes thrown from C++.
860	* typeinfo.cc (layout_cpp_typeinfo): New function.
861
8622017-03-20  Iain Buclaw  <ibuclaw@gdcproject.org>
863
864	* d-builtins.cc (d_build_builtins_module): Always mark gcc builtins as
865	nothrow functions.
866
8672017-03-11  Iain Buclaw  <ibuclaw@gdcproject.org>
868
869	* d-longdouble.cc (CTFloat::zero): New variable.
870	(CTFloat::one): New variable.
871	(CTFloat::minusone): New variable.
872	(CTFloat::half): New variable.
873	(longdouble::set): Remove float and double overloads.
874	(longdouble::operator float): Remove function.
875	(longdouble::operator double): Remove function.
876	* d-target.cc (Target::_init): Initialize floating point constants.
877
8782017-03-11  Iain Buclaw  <ibuclaw@gdcproject.org>
879
880	* d-lang.cc (d_init): Replace calls to init with _init.
881	* d-glue.cc (Global::init): Renamed to Global::_init.
882	* d-target.cc (Target::init): Renamed to Target::_init.
883
8842017-03-11  Iain Buclaw  <ibuclaw@gdcproject.org>
885
886	* d-longdouble.cc (longdouble::format): Remove function.
887	(longdouble::formatHex): Remove function.
888	(longdouble::dump): Remove function.
889	(CTFloat::sprint): Inline implementation of format and formatHex here.
890
8912017-03-11  Iain Buclaw  <ibuclaw@gdcproject.org>
892
893	* d-lang.cc (d_init): Remove calls to Port::init and longdouble::init.
894	* d-longdouble.cc (real_limits): Remove variable.
895	(longdouble::init): Remove function.
896	(CTFloat::parse): Update to use Target::RealProperties.
897	* d-port.cc (Port::ldbl_nan): Remove variable.
898	(Port::snan): Remove variable.
899	(Port::ldbl_infinity): Remove variable.
900	(Port::ldbl_max): Remove variable.
901	(Port::init): Remove function.
902	(Port::isFloat32LiteralOutOfRange): Update to use
903	Target::RealProperties.
904	(Port::isFloat64LiteralOutOfRange): Likewise.
905	* d-target.cc (Target::FPTypeProperties<T>::max): Define.
906	(Target::FPTypeProperties<T>::min_normal): Define.
907	(Target::FPTypeProperties<T>::nan): Define.
908	(Target::FPTypeProperties<T>::snan): Define.
909	(Target::FPTypeProperties<T>::infinity): Define.
910	(Target::FPTypeProperties<T>::epsilon): Define.
911	(Target::FPTypeProperties<T>::dig): Define.
912	(Target::FPTypeProperties<T>::mant_dig): Define.
913	(Target::FPTypeProperties<T>::max_exp): Define.
914	(Target::FPTypeProperties<T>::min_exp): Define.
915	(Target::FPTypeProperties<T>::max_10_exp): Define.
916	(Target::FPTypeProperties<T>::min_10_exp): Define.
917	(define_float_constants): New function.
918	(Target::init): Initialize compile-time floating point properties.
919	* longdouble.h (Mode): Remove type declaration.
920	(real_properties): Remove type declaration.
921
9222017-03-10  Iain Buclaw  <ibuclaw@gdcproject.org>
923
924	* d-longdouble.cc (CTFloat::fabs): New function.
925	(CTFloat::isIdentical): New function.
926	(CTFloat::isNaN): New function.
927	(CTFloat::isSNaN): New function.
928	(CTFloat::isInfinity): New function.
929	(CTFloat::parse): New function.
930	(CTFloat::sprint): New function.
931	* d-port.cc (Port::isNan): Remove function.
932	(Port::isSignallingNan): Remove function.
933	(Port::isInfinity): Remove function.
934	(Port::fequal): Remove function.
935	(Port::strtof): Remove function.
936	(Port::strtod): Remove function.
937	(Port::strtold): Remove function.
938	(Port::isFloat32LiteralOutOfRange): New function.
939	(Port::isFloat64LiteralOutOfRange): New function.
940	* longdouble.h (ld_sprint): Remove function.
941
9422017-03-06  Iain Buclaw  <ibuclaw@gdcproject.org>
943
944	* d-glue.cc (verror): Update to handle -Wspeculative.
945	(verrorSupplemental): Likewise.
946	* d-lang.cc (d_init_options): Initialize module alias array.
947	(d_init_options): Handle -fmodule-filepath= and -Wspeculative.
948	* d-port.cc (Port::stricmp): Remove function.
949	(Port::writelongLE): New function.
950	(Port::writelongBE): New function.
951	* lang.opt (Wspeculative): Declare.
952	(fmodule-filepath=): Declare.
953
9542017-03-06  Iain Buclaw  <ibuclaw@gdcproject.org>
955
956	* d-lang.cc (d_handle_option): Handle -ftransition=dip1000
957	* lang.opt (ftransition=dip1000): Declare.
958	(ftransition=safe): Make alias for -ftransition=dip1000
959
9602017-03-04  Iain Buclaw  <ibuclaw@gdcproject.org>
961
962	* d-codegen.cc (get_decl_tree): Handle chaining over many levels of
963	nesting functions to get to the right parent for the 'this' field.
964
9652017-03-04  Iain Buclaw  <ibuclaw@gdcproject.org>
966
967	* d-decls.cc (get_symbol_decl): Move generation of DECL_ARGUMENTS for
968	empty body declarations to ...
969	(make_thunk): ... here.  Also set-up DECL_RESULT.
970	(finish_thunk): Mark DECL_UNINLINEABLE on external functions.
971
9722017-03-04  Iain Buclaw  <ibuclaw@gdcproject.org>
973
974	* d-decls.cc (make_thunk): Don't build thunks for functions that
975	failed to compile.
976
9772017-03-04  Iain Buclaw  <ibuclaw@gdcproject.org>
978
979	* d-objfile.cc (emit_dso_registry_hooks): Set DECL_PRESERVE_P.
980
9812017-02-26  Iain Buclaw  <ibuclaw@gdcproject.org>
982
983	* d-codegen.cc (build_frame_type): Update condition for scope
984	destruction error.
985	* d-port.cc (Port::valcpy): New function.
986	* expr.cc (ExprVisitor::visit(CallExp)): Generate cast of 'this'
987	object to the right handle type before indexing.
988
9892017-02-24  Iain Buclaw  <ibuclaw@gdcproject.org>
990
991	* d-glue.cc (warningSupplemental): New function.
992	(vwarningSupplemental): New function.
993	(deprecationSupplemental): New function.
994	(vdeprecationSupplemental): New function.
995
9962017-02-23  Iain Buclaw  <ibuclaw@gdcproject.org>
997
998	* imports.cc (ImportVisitor::visit(OverDeclaration)): New function.
999	(ImportVisitor::visit(FuncAliasDeclaration)): New function.
1000
10012017-02-21  Iain Buclaw  <ibuclaw@gdcproject.org>
1002
1003	* d-lang.cc (d_handle_option): Handle -X and -Xf options.
1004	(d_parse_file): Update.
1005	* lang-specs.h: Add rules for -X style options.
1006	* lang.opt (X): Declare.
1007	(Xf): Declare.
1008	(fXf=): Make alias for -Xf.
1009
10102017-02-21  Iain Buclaw  <ibuclaw@gdcproject.org>
1011
1012	* lang.opt (fd-vgc): Comment out help test.
1013	(fd-verbose): Likewise.
1014	(fd-vtls): Likewise.
1015	(femit-modules): Likewise.
1016
10172017-02-20  Iain Buclaw  <ibuclaw@gdcproject.org>
1018
1019	* d-target.cc (Target::fieldalign): Adjust.
1020
10212017-02-19  Iain Buclaw  <ibuclaw@gdcproject.org>
1022
1023	* d-lang.cc (d_option_data): Add fields to support other -M options.
1024	(d_init_options): Initialize them.
1025	(deps_add_target): New function.
1026	(deps_write): Support multiple targets and phony rules.
1027	(d_handle_option): Handle gcc -M style options.
1028	(d_parse_file): Likewise.
1029	* lang-specs.h: Add rules for -M style options.
1030	* lang.opt: Declare -M style options.
1031
10322017-02-19  Iain Buclaw  <ibuclaw@gdcproject.org>
1033
1034	* d-lang.cc (is_system_module): Remove.
1035	(deps_write): Always ignore entrypoint module.
1036
10372017-02-19  Iain Buclaw  <ibuclaw@gdcproject.org>
1038
1039	* d-lang.cc (write_one_dep): Remove.
1040	(deps_write): Update signature.
1041
10422017-02-19  Iain Buclaw  <ibuclaw@gdcproject.org>
1043
1044	* d-lang.cc (iprefix_dir): Remove.
1045	(imultilib_dir): Remove.
1046	(std_inc): Remove.
1047	(d_option_data): New struct.
1048	(d_option): Declare.
1049	(d_init_options): Initialize d_option.
1050	(d_init): Update to use d_option.
1051	(d_handle_option): Likewise.
1052	(d_parse_file): Likewise.
1053	(deps_write): Update signature.
1054
10552017-02-19  Iain Buclaw  <ibuclaw@gdcproject.org>
1056
1057	* d-lang.cc (d_handle_option): Call D_handle_option_auto.
1058	* lang.opt (Wunknown-pragmas): Turn on warning with -Wall.
1059
10602017-02-18  Iain Buclaw  <ibuclaw@gdcproject.org>
1061
1062	* d-lang.cc (d_handle_option): Replace -fin with -fpreconditions;
1063	-fout with -fpostconditions.  Handle -fswitch-errors.
1064	(d_post_options): Move setting of release code flags here.
1065	* lang.opt (fassert): Declare flag_assert.
1066	(fin): Make alias for -fpreconditions.
1067	(finvariants): Declare flag_invariants.
1068	(fout): Make alias for -fpostconditions.
1069	(fpostconditions): Declare.
1070	(fpreconditions): Declare.
1071	(fswitch-errors): Declare.
1072
10732017-02-18  Iain Buclaw  <ibuclaw@gdcproject.org>
1074
1075	* d-objfile.cc (PragmaDeclaration::toObjFile): Warn about unknown
1076	pragmas only if -Wunknown-pragmas.
1077
10782017-02-18  Iain Buclaw  <ibuclaw@gdcproject.org>
1079
1080	* d-glue.cc (Global::init): Initialize errorLimit to flag_max_errors.
1081	(verror): Don't halt program after invocation limit.
1082	* d-lang.cc (d_handle_option): Remove handling -fmax-error-messages.
1083	* lang.opt (fmax-error-messages): Remove option.
1084
10852017-02-18  Iain Buclaw  <ibuclaw@gdcproject.org>
1086
1087	* d-decls.cc (get_symbol_decl): Handle -Wtemplates.
1088	* d-lang.cc (d_init_options): Remove setting flag_emit_templates.
1089	(d_handle_option): Replace handling -femit-templates with
1090	-fall-instantiations.
1091	(d_pushdecl): Remove checking for flag_emit_templates.
1092	* d-tree.h (D_DECL_IS_TEMPLATE): Remove macro.
1093	* lang.opt (flag_emit_templates): Remove variable.
1094	(fall-instantiations): Declare.
1095	(femit-templates): Make alias for -fall-instantiations.
1096	(Wtemplates): Declare.
1097
10982017-02-18  Iain Buclaw  <ibuclaw@gdcproject.org>
1099
1100	* lang.opt (fassert): Update help text.
1101	(fin): Likewise.
1102	(finvariants): Likewise.
1103	(fout): Likewise.
1104
11052017-02-11  Iain Buclaw  <ibuclaw@gdcproject.org>
1106
1107	* d-objfile.cc (VarDeclaration::toObjFile): Error if a variable covers
1108	more than half the address space.
1109
11102017-02-04  Iain Buclaw  <ibuclaw@gdcproject.org>
1111
1112	* d-objfile.cc (Module::genmoduleinfo): Ignore symbol visibility when
1113	looking up module DSO symbols.
1114
11152017-01-29  Iain Buclaw  <ibuclaw@gdcproject.org>
1116
1117	* d-lang.cc (d_handle_option): Handle -ftransition=all.
1118	* lang.opt (ftransition=all): Add compiler option.
1119
11202017-01-29  Iain Buclaw  <ibuclaw@gdcproject.org>
1121
1122	* d-lang.cc (d_handle_option): Handle -ftransition=checkimports.
1123	* lang.opt (ftransition=checkimports): Add compiler option.
1124
11252017-01-28  Iain Buclaw  <ibuclaw@gdcproject.org>
1126
1127	* d-lang.cc (d_handle_option): Handle -ftransition=import.
1128	* lang.opt (ftransition=import): Add compiler option.
1129
11302017-01-25  Iain Buclaw  <ibuclaw@gdcproject.org>
1131
1132	* imports.cc (ImportVisitor::visit(EnumDeclaration)): New function.
1133	(ImportVisitor::visit(AggregateDeclaration)): New function.
1134	(ImportVisitor::visit(ClassDeclaration)): New function.
1135	(ImportVisitor::make_import): New function.
1136	(ImportVisitor::visit(AliasDeclaration)): Get decl for type alias.
1137
11382017-01-22  Iain Buclaw  <ibuclaw@gdcproject.org>
1139
1140	* expr.cc (ExprVisitor::visit(EqualExp)): Don't use memcmp on arrays
1141	of structs that define xopEquals.
1142
11432017-01-15  Iain Buclaw  <ibuclaw@gdcproject.org>
1144
1145	* d-spec.cc (lang_specific_driver): Add missing break.
1146
11472017-01-13  Iain Buclaw  <ibuclaw@gdcproject.org>
1148
1149	* d-codegen.cc (build_class_instance): Don't check for void
1150	initialized fields.
1151	* expr.cc (ExprVisitor::visit(StructLiteralExp)): Likewise.
1152
11532017-01-11  Iain Buclaw  <ibuclaw@gdcproject.org>
1154
1155	* typeinfo.cc (layout_classinfo): Use placement new to initialize
1156	typeinfo class declaration.
1157
11582017-01-02  Iain Buclaw  <ibuclaw@gdcproject.org>
1159
1160	* d-codegen,cc (get_frame_for_symbol): Use fully qualified name in
1161	error message.
1162	(build_frame_type): Always add parameters to closure vars if the
1163	function has a contract function.
1164	(get_frameinfo): Likewise, always create a frame.
1165	* expr.cc (ExprVisitor::needs_dtor): New function.
1166	(ExprVisitor::lvalue_p): New function.
1167	(ExprVisitor::visit(AssignExp)): Check for dtor in array assignments.
1168	(ExprVisitor::visit(TypeidExp)): Cast result to expression type.
1169
1170
1171Copyright (C) 2017 Free Software Foundation, Inc.
1172
1173Copying and distribution of this file, with or without modification,
1174are permitted in any medium without royalty provided the copyright
1175notice and this notice are preserved.
1176