[PATCH v3 3/14] D: The front-end (GDC) changelogs.

Updated changelogs following updates to patch 2/14.

---
diff --git a/gcc/d/ChangeLog b/gcc/d/ChangeLog
new file mode 100644
index 00000000000..9c10772d50d
--- /dev/null
+++ b/gcc/d/ChangeLog
@@ -0,0 +1,1051 @@
+2017-10-01  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* typeinfo.cc (TypeInfoVisitor::visit(TypeInfoClassDeclaration)):
+	Properly check base classes for pointers.
+
+2017-09-28  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* expr.cc (ExprVisitor::visit(StringExp)): Add extra null terminator
+	onto string type, not the literal.
+
+2017-09-26  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* types.cc (make_array_type): Move checking of void static arrays
+	here.
+
+2017-09-24  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-attribs.c: Add include for attribs.h.
+	* d-codegen.cc (copy_aggregate_type): Remove TYPE_METHODS.
+	(lower_struct_comparison): Use opt_scalar_int_mode.
+	* d-target.cc (Target::_init): Use TYPE_MAX_VALUE instead of
+	TYPE_MAXVAL.
+	(Target::isVectorTypeSupported):  Update call to
+	scalar_mode_supported_p.
+	* decl.cc (DeclVisitor::visit(Import)): Pass false as new argument to
+	the imported_module_or_decl hook.
+	* types.cc (TypeVisitor::visit(TypeClass)): Remove TYPE_METHODS.
+
+2017-09-14  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* Make-lang.in (D_FRONTEND_OBJS): Add blockexit.o, initsem.o,
+	inlinecost.o, safe.o, staticcond.o, and typesem.o.
+	* d-attribs.c (uda_attribute_p): Use get_identifier to compare
+	strings.
+	(build_attributes): Handle empty string expressions.
+	* d-builtins.cc (build_frontend_type): Use static create methods to
+	'new' front-end types, expressions, and declarations.
+	(d_eval_constant_expression): Likewise.
+	(build_alias_declaration): Likewise.
+	(d_build_builtins_module): Likewise.
+	* d-codegen.cc (declaration_type): Likewise.
+	(type_passed_as): Likewise.
+	(get_frame_for_symbol): Remove dependency on id.h.
+	(get_frameinfo): Don't overwrite FRAMEINFO_CREATES_FRAME if function
+	has nested frame references.
+	* d-convert.cc (convert_for_assignment): Allow static arrays to be
+	initialized with a zero integer value.
+	* d-frontend.cc (genCmain): Remove dependency on id.h.
+	* d-frontend.h (initializerToExpression): Add declaration.
+	(gendocfile): Add declaration.
+	(initTraitsStringTable): Remove.
+	* d-lang.cc (deps_write): Remove dependency on id.h.
+	(deps_add_target): Don't call StringTables's destructor.
+	(d_init): Remove calls to deleted front-end initialize functions.
+	* decl.cc (DeclVisitor::visit(PragmaDeclaration)): Remove dependency
+	on id.h.
+	(DeclVisitor::visit(VarDeclaration)): Call initializerToExpression to
+	get the initializer of decl.
+	(build_decl_tree): Remove dependency on id.h.
+	(layout_class_initializer): Use static create method to 'new'
+	front-end expression.
+	* expr.cc (ExprVisitor::visit(AssignExp)): Handle static array
+	assignment where RHS is integer zero.
+	(ExprVisitor::visit(VarExp)): Remove dependency on id.h.
+	(ExprVisitor::visit(StringExp)): Handle empty string expressions.
+	* modules.cc (get_internal_fn): Use FuncDeclaration::genCfunc to
+	create function decl.
+	(build_module_tree): Remove dependency on id.h.
+	* toir.cc (IRVisitor::visit(ExtAsmStatement)): Handle empty string
+	expressions.
+	* typeinfo.cc (make_frontend_typeinfo): Use static create methods to
+	'new' front-end declarations.
+	(create_tinfo_types): Remove dependency on id.h.
+	(get_cpp_typeinfo_decl): Likewise.
+	(create_typeinfo): Likewise.
+
+2017-08-23  Johannes Pfau  <johannespfau@gmail.com>
+
+	* typeinfo.cc (TypeInfoVisitor::visit(TypeInfoStructDeclaration)): Do
+	not send member functions to backend here.
+
+2017-08-19  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-convert.cc (convert_expr): Use build_zero_cst for casts from
+	typeof(null).
+
+2017-08-13  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-target.cc (Target::isVectorOpSupported): Disallow vectors in
+	conditional and logical operators.
+
+2017-08-08  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* intrinsics.cc (maybe_expand_intrinsic): Handle isNaN(), isInfinity()
+	and isFinite() intrinsics.
+	* intrinsics.def: Add INTRINSIC_ISNAN, INTRINSIC_ISINFINITY, and
+	INTRINSIC_ISFINITE.
+
+2017-08-08  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* intrinsics.cc (expand_intrinsic_popcnt): New function.
+	(maybe_expand_intrinsic): Handle INTRINSIC_POPCNT.
+	* intrinsics.def (INTRINSIC_POPCNT): Declare.
+
+2017-08-06  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-frontend.cc (isBuiltin): Remove restriction on builtins.
+	(eval_builtin): Check DECL_INTRINSIC_CODE.
+	* d-tree.h (intrinsic_code): Add enum declaration.
+	(lang_decl): Add intrinsic field.
+	(DECL_INTRINSIC_CODE): New macro.
+	(DECL_BUILT_IN_CTFE): New macro.
+	* decls.cc (get_symbol_decl): Initialize DECL_INTRINSIC_CODE.
+	* intrinsics.cc (intrinsic_decl): Add ctfeonly field.
+	(maybe_set_intrinsic): Set frontend builtin flag only if the function
+	is CTFE-able.  Set BUILT_IN_FRONTEND if function has no body.
+	(clear_intrinsic_flag): Clear DECL_INTRINSIC_CODE instead of frontend
+	builtin flag.
+	(maybe_expand_intrinsic): Handle INTRINSIC_TAN intrinsics.
+	Call clear_intrinsic_flag on CTFE built-ins if semantic has finished.
+	* intrinsics.def: Add INTRINSIC_TAN.
+	(DEF_D_BUILTIN): New macro.
+	(DEF_CTFE_BUILTIN): New macro.
+
+2017-08-06  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* decl.cc (DeclVisitor::visit): Don't set input_location.
+	(build_decl_tree): Handle set and restore of input_location.
+	(declare_local_var): Don't set input_location.
+	* expr.cc (build_expr): Handle set and restore of input_location.
+	* imports.cc (build_import_decl): Likewise.
+	* modules.cc (get_dso_registry_fn): Use UNKNOWN_LOCATION for
+	declaration of _d_dso_registry.
+	* runtime.cc (build_libcall_decl): Use UNKNOWN_LOCATION for
+	declaration of library functions.
+	* toir.cc (IRVisitor::visit): Don't set input_location.
+	(IRVisitor::build_stmt): New function.
+	(IRVisitor::do_jump): Update signature.
+	(build_function_body): Use IRVisitor::build_stmt.
+	* typeinfo.cc (layout_classinfo_interfaces): Don't set input_location.
+	* types.cc (layout_aggregate_members): Likewise.
+	(layout_aggregate_type): Likewise.
+
+2017-08-05  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (build_boolop): Handle VECTOR_TYPE comparisons.
+	* d-target.cc (Target::checkVectorType): Rename to
+	Target::isVectorTypeSupported.
+	(Target::isVectorOpSupported): New function.
+	* expr.cc (ExprVisitor::visit(IdentityExp)): Don't memcmp floating
+	point vectors.
+	(ExprVisitor::visit(CmpExp)): Handle always true or always false
+	vector comparisons.
+
+2017-08-02  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* typeinfo.cc (SpeculativeTypeVisitor::visit(TypeClass)): Don't emit
+	typeinfo for speculative class types.
+
+2017-07-29  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-lang.cc (build_lang_decl): Handle compiler generated typeinfo that
+	also appear in code.
+	* d-tree.h (lang_identifier): Add decl_tree.
+	(IDENTIFIER_DECL_TREE): New macro.
+	* decl.cc (declare_extern_var): Re-use already generated decl if
+	called with the same identifier twice.
+
+2017-07-29  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* decl.cc (d_finish_decl): Replace ENABLE_TREE_CHECKING macro with
+	flag_checking.
+
+2017-07-28  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-tree.h (D_DECL_ONE_ONLY): Remove macro accessor.
+	* decl.cc (DeclVisitor::visit(StructDeclaration)): Move call to
+	d_comdat_linkage here.
+	(DeclVisitor::visit(ClassDeclaration)): Likewise.
+	(DeclVisitor::visit(InterfaceDeclaration)): Likewise.
+	(DeclVisitor::visit(EnumDeclaration)): Likewise.
+	(get_symbol_decl): Move call to mark_needed here.
+	(declare_extern_var): Mark compiler generated symbols as needed.
+	(make_thunk): Remove copy of D_DECL_ONE_ONLY.
+	(get_vtable_decl): Don't call d_comdat_linkage.
+	(aggregate_initializer_decl): Likewise.
+	(enum_initializer_decl): Likewise.
+	* modules.cc (d_finish_compilation): Don't call mark_needed.
+	* typeinfo.cc (get_classinfo_decl): Don't call d_comdat_linkage.
+
+2017-07-28  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-spec.c (lang_specific_driver): Always add `-o' option when
+	compiling D sources.
+
+2017-07-28  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-frontend.cc (genCmain): Don't error if entrypoint not found.
+
+2017-07-18  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-lang.cc (d_types_compatible_p): Check that both types are
+	RECORD_TYPE before using record-specific flag comparison.
+
+2017-07-15  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-builtins.cc (d_build_d_type_nodes): Set TYPE_DYNAMIC_ARRAY on
+	array_type_node.
+	* d-codegen.cc (build_delegate_cst): Set TYPE_DELEGATE on internal
+	delegate constant types.
+	* d-frontend.h (cppTypeInfoMangle): Remove declaration.
+	(toCppMangleItanium): Add declaration.
+	(cppTypeInfoMangleItanium): Add declaration.
+	* d-lang.cc (d_types_compatible_p): Use type flags to determine
+	compatibility.  Return false instead of doing size comparison.
+	* d-target.cc (Target::toCppMangle): New function.
+	(Target::cppTypeInfoMangle): New function.
+	(Target::cppTypeMangle): New function.
+	(Target::systemLinkage): New function.
+	* d-tree.h (TYPE_DYNAMIC_ARRAY): New macro.
+	(TYPE_DELEGATE): New macro.
+	(TYPE_ASSOCIATIVE_ARRAY): New macro.
+	* typeinfo.cc (layout_cpp_typeinfo): Use Target::cppTypeInfoMangle.
+	* types.cc (TypeVisitor::visit(TypeDArray)): Set TYPE_DYNAMIC_ARRAY.
+	(TypeVisitor::visit(TypeAArray)): Set TYPE_ASSOCIATIVE_ARRAY.
+	(TypeVisitor::visit(TypeDelegate)): Set TYPE_DELEGATE.
+
+2017-07-11  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-target.cc (Target::loadModule): Check module identifier if a
+	declaration doesn't exist.
+	* typeinfo.cc (make_frontend_typeinfo): Use module location instead if
+	a declaration doesn't exist.
+
+2017-06-28  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-frontend.cc (CTFloat::hash): New function.
+
+2017-06-25  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (d_array_string): Remove function.
+	(d_assert_call): Inline implementation of d_array_string here.
+	* d-tree.h (d_array_string): Remove declaration.
+	* typeinfo.cc (TypeInfoVisitor::layout_string): New function.
+	(TypeInfoVisitor::visit): Update calls to d_array_string to use
+	layout_string instead.
+
+2017-06-25  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* toir.cc (IRVisitor::visit(ExtAsmStatement)): Set ASM_VOLATILE_P only
+	if statement is not marked with pure attribute.
+
+2017-06-25  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-lang.cc (d_parse_file): Print all predefined version identifiers
+	if verbose.
+
+2017-06-24  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-frontend.cc (Global::_init): Remove memset for global.params.
+
+2017-06-24  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* Make-lang.in (D_ALL_OBJS): Add D_TARGET_OBJS.
+	* d-builtins.cc (d_add_builtin_version): Move here from d-lang.cc.
+	(d_init_versions): New function.
+	* d-lang.cc (d_init): Call d_init_versions.
+	* d-target-def.h: New file.
+	* d-target.cc (Target::critsecsize): Replace with call to
+	targetdm.critsec_size.
+	* d-target.def: New file.
+	* d-target.h: New file.
+	* d-tree.h (d_init_versions): Add declaration.
+
+2017-06-20  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* expr.cc (ExprVisitor::visit(BinAssignExp)): Strip promotions from
+	both signed and unsigned rshift assignments.
+
+2017-06-17  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-diagnostic.cc (expand_format): New function.
+	(d_diagnostic_report_diagnostic): New function.
+	(error, verror): Update format attributes.  Use function
+	d_diagnostic_report_diagnostic instead of xvasprintf.
+	(errorSupplemental, verrorSupplemental): Likewise.
+	(warning, vwarning): Likewise.
+	(warningSupplemental, vwarningSupplemental): Likewise.
+	(deprecation, vdeprecation): Likewise.
+	(deprecationSupplemental, vdeprecationSupplemental): Likewise.
+
+2017-06-15  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* expr.cc (ExprVisitor::visit(AssertExp)): Don't call invariant on
+	interface objects.
+
+2017-06-12  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* expr.cc (ExprVisitor::visit(DelegateExp)): Convert object to right
+	type before using it.
+
+2017-06-12  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-decls.cc (get_decl_tree): Find the first parent member function
+	before constructing non-local `this' decl.
+
+2017-06-10  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-builtins.cc (build_frontend_type): Allow all vector types to be
+	included in builtins module.
+
+2017-06-09  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* types.cc (TypeVisitor::visit(TypeStruct)): Let struct alignment
+	override the alignsize.
+
+2017-06-09  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (d_decl_context): Use origin template declaration as
+	context for instantiated type symbols.
+
+2017-06-08  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-attribs.c (d_handle_weak_attribute): Use quoted string format.
+	* decls.cc (finish_thunk): Update call to create_edge for new API.
+
+2017-06-08  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* expr.cc (ExprVisitor::visit(StringExp)): Create string type that is
+	same length as string value literal.
+
+2017-05-27  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* Make-lang.in (D_FRONTEND_OBJS): Rename object.o to rootobject.o.
+
+2017-05-26  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* decl.cc: Remove include for dumpfile.h.
+	(finish_function): Use dump_function to for dumping original ASTs.
+
+2017-05-24  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* config-lang.in (gtfiles): Add typeinfo.cc.
+	* d-codegen.cc (d_build_call_list): Remove function.
+	(d_build_call_nary): Remove function.
+	(build_binary_op): Remove function.
+	(build_binop_assignment): Remove function.
+	(build_vthis_type): Rename to build_vthis_function.
+	(create_field_decl): Move to decl.cc.
+	* d-lang.cc (genCmain): Moved to d-frontend.cc.
+	(builtin_modules): Declare static.
+	(d_add_builtin_module): New function.
+	(d_add_entrypoint_module): New function.
+	* expr.cc (ExprVisitor::binary_op): New function.
+	(ExprVisitor::binop_assignment): New function.
+	* intrinsic.cc (expand_intrinsic): Rename to maybe_expand_intrinsic.
+	* runtime.cc (build_libcall): Updated signature.
+	* types.cc (make_two_field_type): Remove function.
+	(make_struct_type): New function.
+
+2017-05-22  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* Make-lang.in (D_OBJS): Add intrinsics.o and runtime.o.
+	* d-codegen.h: Remove file.
+	* intrinsics.cc: New file.
+	* runtime.cc: New file.
+
+2017-05-21  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc: Remove include for d-dmd-gcc.h.
+	* d-dmd-gcc.h: Rename to d-frontend.h.  Update all includes.
+	* d-frontend.cc (Global::_init): Remove unnecessary initialization.
+	* expr.cc: Remove include for d-dmd-gcc.h.
+
+2017-05-21  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-attribs.c (handle_sentinel_attribute): Remove function.
+	(ignore_attribute): Remove function.
+	(d_langhook_common_attribute_table): Remove sentinel and tm regparm
+	from common attribute table.
+	(d_langhook_format_attribute_table): Remove variable.
+	* d-lang.cc (LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE): Remove macro.
+	(LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Remove macro.
+	(d_post_options): Don't set flag_unit_at_a_time.
+	(d_nametype): Remove function.
+	* types.cc (TypeVisitor::visit(TypeBasic)): Set TYPE_NAME.
+	(TypeVisitor::visit(TypeVector)): Likewise.
+
+2017-05-20  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* Make-lang.in (D_OBJS): Remove d-objfile.o.  Add modules.o.
+	* d-codegen.cc (get_linemap): Move function here.
+	* d-objfile.cc: Remove file.
+	* d-objfile.h: Remove header.
+	* d-tree.h (GDC_PREFIX): New macro.
+	* decl.cc (make_internal_name): Rename to mangle_internal_decl.
+	(DeclVisitor): Move class here.
+	(gcc_attribute_p): Move function here.
+	(build_decl_tree): Likewise.
+	(d_finish_decl): Likewise.
+	(start_function): Likewise.
+	(finish_function): Likewise.
+	(mark_needed): Likewise.
+	(base_vtable_offset): Likewise.
+	(build_artificial_decl): Likewise.
+	(build_type_decl): Likewise.
+	(d_comdat_group): Likewise.
+	(d_comdat_linkage): Likewise.
+	(add_moduleinfo_field): Move to modules.cc
+	(layout_moduleinfo_fields): Likewise.
+	(get_moduleinfo_decl): Likewise.
+	* modules.cc: New file.
+
+2017-05-10  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* imports.cc (ImportVisitor::visit(Import)): New function.
+
+2017-05-06  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-objfile.cc (DeclVisitor::visit(Module)): Set input_location before
+	walking module members.
+	(get_linemap): Return input_location if no filename set.
+	(set_input_location): Remove function.  Update all callers to set
+	input_location directly.
+	(set_decl_location): Remove function.  Update all callers to pass
+	get_linemap to build_decl, or use input_location.
+	* types.cc (insert_aggregate_field): Update signature.
+
+2017-04-30  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-objfile.cc (start_function): Update signature.
+	(finish_function): Update signature.
+	(DeclVisitor::visit(FuncDeclaration)): Move function construction to
+	start_function.  Move function finalization to finish_function.
+	(set_function_end_locus): Remove function.
+	(d_finish_function): Remove function.
+	(build_simple_function_decl): Don't set frontend body.
+	(build_simple_function): Update signature.  Use start/finish function
+	to compile the body.
+	(emit_dso_registry_cdtor): Likewise.
+	* expr.cc (ExprVisitor::visit(WrappedExp)): Remove function.
+
+2017-04-29  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-diagnostic.cc (verror): Use xvasprintf.
+	(verrorSupplemental): Likewise.
+	(vwarning): Likewise.
+	(vwarningSupplemental): Likewise.
+	(vdeprecation): Likewise.
+	(vdeprecationSupplemental): Likewise.
+
+2017-04-24  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-tree.h (d_tree_index): Add DTI_VTABLE_ENTRY_TYPE,
+	DTI_VTBL_INTERFACE_TYPE, DTI_ARRAY_TYPE, and DTI_NULL_ARRAY.
+	(vtable_entry_type): New macro.
+	(vtbl_interface_type_node): New macro.
+	(array_type_node): New macro.
+	(null_array_node): New macro.
+	* d-builtins.cc (d_build_d_type_nodes): Initialize new trees.
+	* d-codegen.cc (build_struct_literal): Allow NULL index when
+	looking for next field to initialize.
+	(copy_aggregate_type): New function.
+	* d-target.cc (Target::loadModule): Look for object module,
+	call create_tinfo_types.
+	* decl.cc (TypeInfoDeclVisitor): Move to typeinfo.cc.
+	(get_typeinfo_decl): Likewise.
+	(copy_struct): Remove function.  Updated callers to use
+	copy_aggregate_type.
+	(layout_classinfo_interfaces): Move to typeinfo.cc.
+	(get_classinfo_decl): Likewise.
+	(get_cpp_typeinfo_decl): Likewise.
+	* typeinfo.cc (tinfo_kind): New enum.
+	(tinfo_types): New static variable.
+	(get_typeinfo_kind): New function.
+	(make_internal_typeinfo): New function.
+	(make_frontend_typeinfo): New function.
+	(create_tinfo_types): New function.
+	(TypeInfoVisitor::set_field): Remove function.
+	Update all callers to use layout_field.
+	(TypeInfoVisitor::layout_vtable): Remove function.
+	Update all callers to use layout_base.
+	(TypeInfoVisitor::layout_field): New function.
+	(TypeInfoVisitor::layout_base): New function.
+	(builtin_typeinfo_p): New function.
+	(genTypeInfo): Rename to create_typeinfo.
+	(isSpeculativeType): Rename to speculative_type_p.
+
+2017-04-23  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-tree.h (d_function_chain): Declare macro.  Update all uses of
+	`cfun->language' to use it.
+
+2017-04-22  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-decls.cc: Rename to decl.cc.
+	(get_symbol_decl): Handle typeinfo declarations.
+	(declare_extern_var): New function.
+	(declare_local_var): New function.
+	(get_moduleinfo_decl): Call declare_extern_var.
+	(get_classinfo_decl): Likewise.
+	(get_vtable_decl): Likewise.
+	(get_cpp_typeinfo_decl): Likewise.
+	(aggregate_initializer_decl): Likewise.
+	(enum_initializer_decl): Likewise.
+	* Make-lang.in (D_OBJS): Update.
+	* d-codegen.cc (build_local_var): Remove function.
+	Updated all callers to use declare_local_var.
+	(build_local_temp): Move to decl.cc.
+	(get_decl_tree): Likewise.
+	(expand_decl): Remove function.
+	(build_closure): Inline expand_decl here.
+
+2017-04-20  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (pop_binding_label): Move to toir.cc.
+	(pop_label): Likewise.
+	(push_binding_level): Likewise
+	(pop_binding_level): Likewise.
+	(push_stmt_list): Likewise.
+	(add_stmt): Likewise.
+	(check_goto): Move to toir.cc, make it a member of IRVisitor.
+	(check_previous_goto): Likewise.
+	(lookup_label): Likewise.
+	(lookup_bc_label): Likewise.
+	(define_label): Likewise.
+	* toir.cc (build_ir): Rename to build_function_body.
+
+2017-04-19  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-target.cc: Update includes.
+
+2017-04-19  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* lang-specs.h: Remove capitalized D source suffixes.
+
+2017-04-19  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* lang-specs.h: Add rule for forwarding -iprefix and -imultilib to the
+	compiler proper.
+
+2017-04-19  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* lang-specs.h: Remove cc1d spec.
+
+2017-04-19  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* lang-specs.h: Remove +e handling.
+
+2017-04-18  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-diagnostic.cc: New file.
+	* d-frontend.cc: New file.
+	* d-glue.cc: Remove file.
+	* d-port.cc: Remove file.
+	* d-longdouble.h (template<typename T> operator): Remove operators.
+
+2017-04-17  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-incpath.cc (add_env_var_paths): Rename to add_environment_paths.
+	(make_absolute): Remove function.
+	(add_import_path): Rename to add_globalpaths.
+	(add_fileimp_path): Rename to add_filepaths.
+
+2017-04-17  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.h (d_types_same): Renamed to same_type_p.
+	Moved to types.cc.
+	(build_object_type): Renamed to get_object_type.  Moved to types.cc.
+	* d-codegen.cc (type_va_array): Renamed to valist_array_p.
+	Moved to types.cc.
+	(d_array_type): Renamed to make_array_type.  Moved to types.cc.
+	(insert_type_modifiers): Moved to types.cc.
+	(build_two_field_type): Likewise.
+	(empty_aggregate_p): Likewise.
+	(fixup_anonymous_offset): Likewise.
+	(layout_aggregate_members): Likewise.
+	(layout_aggregate_type): Likewise.
+	(insert_aggregate_field): Likewise.
+	(finish_aggregate_type): Likewise.
+
+2017-04-17  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* Make-lang.in (D_FRONTEND_OBJS): Update to match new source names.
+
+2017-04-11  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* gdc.texi: Rewrite documentation for manpages.
+
+2017-04-08  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-objfile.cc (DeclVisitor::visit(FuncDeclaration)): Remove logic
+	that parent needs to be compiled before nested.
+
+2017-04-08  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-lang.cc (d_post_options): Don't overwrite in_fnames.
+	(d_parse_file): Don't error about not being able to use stdin.
+	Implement support for reading source code from stdin.
+
+2017-04-08  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-lang.cc (d_parse_file): Remove invalid file name checks.
+
+2017-04-08  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-glue.cc (Global::_init): Set global.stdmsg to stderr.
+
+2017-04-07  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codgen.h (current_module_decl): Moved to d-objfile.cc.
+	* d-objfile.h (current_module_info): Likewise.
+	(ModuleInfoFlags): Likewise.
+	(ModuleInfo): Likewise.
+	* d-objfile.cc (start_function): Move updating ModuleInfo structure to
+	...
+	(DeclVisitor::visit(FuncDeclaration)): ... here.  Set it after
+	finishing off the function.
+
+2017-04-07  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-objfile.cc (DeclVisitor::visit(FuncDeclaration)): Use
+	push_function_decl for storing current state when switching to nested
+	functions.  Remove handling of deferred functions.
+	* d-tree.h (language_function): Remove deferred_fns.
+	* expr.cc (ExprVisitor::visit(DelegateExp)): Don't defer compiling
+	the delegate lambda.
+	(ExprVisitor::visit(FuncExp)): Likewise for function literals.
+	(ExprVisitor::visit(VarExp)): Likewise.
+
+2017-04-07  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (start_function): Move to d-objfile.cc, make it static.
+	(end_function): Likewise.  Renamed to finish_function.
+
+2017-04-05  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (d_convert): Move to d-convert.cc.
+	(convert_expr): Likewise.
+	(convert_for_assignment): Likewise.
+	(convert_for_argument): Likewise.
+	(convert_for_condition): Likewise.
+	(d_array_convert): Likewise.
+
+2017-04-04  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-builtins.c (d_global_trees): Move to d-lang.cc.
+	(build_dtype): Rename to build_frontend_type.
+	Updated all callers.
+	(build_expression): Rename to d_eval_constant_expression.
+	Updated all callers.
+	(build_alias_declaration): New function.
+	(d_build_c_type_nodes): New function.
+	(d_build_d_type_nodes): New function.
+	(d_define_builtins): New function.
+
+2017-04-04  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-attribs.c (insert_type_attribute): Use
+	build_type_attribute_variant.
+	(insert_decl_attribute): Use build_decl_attribute_variant.
+	(uda_attribute_p): Remove string table, use Identifier comparison for
+	looking up table attributes.
+	(build_attributes): Make unknown attribute a warning, use quoted
+	strings in diagnostic messages.
+
+2017-04-01  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-lang.cc (d_handle_option): Handle -fdump-d-original.
+	(d_parse_file): Likewise.
+	* d-target.cc (Target::maxStaticDataSize): New variable.
+	(Target::_init): Initialize maxStaticDataSize.
+	* lang.opt (fdump-d-original): Declare.
+
+2017-04-01  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* Make-lang.in (D_GLUE_OBJS): Remove d-todt.cc.
+	* d-objfile.cc (build_moduleinfo_symbol): Build initializer for
+	ModuleInfo directly from inferred type fields.
+	(d_finish_symbol): Remove handling of DECL_LANG_INITIAL.
+	* d-todt.cc: Remove file.
+	* d-tree.h (lang_decl): Remove initial field.
+	(DECL_LANG_INITIAL): Remove macro.
+
+2017-03-31  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-objfile.cc (DeclVisitor::visit(VarDeclaration)): Use build_expr to
+	generate the static initializer.
+	* d-todt.cc (Initializer::toDt): Remove function and all overrides.
+	* expr.cc (ExprVisitor::visit(VarExp)): Use build_expr to get the
+	constant initializer of a constant variable.
+
+2017-03-29  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-decls.cc (aggregate_initializer): Renamed to
+	aggregate_initializer_decl.  Updated all callers.
+	(enum_initializer): Renamed to enum_initializer_decl.
+	Updated all callers.
+	(layout_class_initializer): New function.
+	(layout_struct_initializer): New function.
+	* d-todt.cc (ClassDeclaration::toDt): Remove function.
+	(StructDeclaration::toDt): Remove function.
+
+2017-03-27  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-objfile.cc (DeclVisitor::visit(Module)): New function.
+	(Module::genobjfile): Remove function.
+	Updated all callers to use build_decl_tree.
+	(layout_moduleinfo): New function.
+	(Module::genmoduleinfo): Remove function.
+	Update all callers to use layout_moduleinfo.
+
+2017-03-26  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-objfile.cc (base_vtable_offset): New function.
+	(ClassDeclaration::baseVtblOffset): Remove function.
+	Updated all callers to use base_vtable_offset.
+
+2017-03-26  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-objfile.cc (DeclVisitor): New visitor interface to supercede the
+	toObjFile methods.
+	(build_decl_tree): New function.
+	(Dsymbol::toObjFile): Remove function and overrides.
+	Updated all callers to use build_decl_tree.
+
+2017-03-20  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-decls.cc (get_cpp_typeinfo_decl): New function.
+	* d-lang.cc (d_build_eh_type_type): Return classinfo for
+	__cpp_type_info_ptr when generating catch for C++ classes.
+	* runtime.def (CXA_BEGIN_CATCH): Define.
+	(CXA_END_CATCH): Define.
+	* toir.cc (IRVisitor::visit(TryCatchStatement)): Support catching
+	classes thrown from C++.
+	* typeinfo.cc (layout_cpp_typeinfo): New function.
+
+2017-03-20  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-builtins.cc (d_build_builtins_module): Always mark gcc builtins as
+	nothrow functions.
+
+2017-03-11  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-longdouble.cc (CTFloat::zero): New variable.
+	(CTFloat::one): New variable.
+	(CTFloat::minusone): New variable.
+	(CTFloat::half): New variable.
+	(longdouble::set): Remove float and double overloads.
+	(longdouble::operator float): Remove function.
+	(longdouble::operator double): Remove function.
+	* d-target.cc (Target::_init): Initialize floating point constants.
+
+2017-03-11  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-lang.cc (d_init): Replace calls to init with _init.
+	* d-glue.cc (Global::init): Renamed to Global::_init.
+	* d-target.cc (Target::init): Renamed to Target::_init.
+
+2017-03-11  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-longdouble.cc (longdouble::format): Remove function.
+	(longdouble::formatHex): Remove function.
+	(longdouble::dump): Remove function.
+	(CTFloat::sprint): Inline implementation of format and formatHex here.
+
+2017-03-11  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-lang.cc (d_init): Remove calls to Port::init and longdouble::init.
+	* d-longdouble.cc (real_limits): Remove variable.
+	(longdouble::init): Remove function.
+	(CTFloat::parse): Update to use Target::RealProperties.
+	* d-port.cc (Port::ldbl_nan): Remove variable.
+	(Port::snan): Remove variable.
+	(Port::ldbl_infinity): Remove variable.
+	(Port::ldbl_max): Remove variable.
+	(Port::init): Remove function.
+	(Port::isFloat32LiteralOutOfRange): Update to use
+	Target::RealProperties.
+	(Port::isFloat64LiteralOutOfRange): Likewise.
+	* d-target.cc (Target::FPTypeProperties<T>::max): Define.
+	(Target::FPTypeProperties<T>::min_normal): Define.
+	(Target::FPTypeProperties<T>::nan): Define.
+	(Target::FPTypeProperties<T>::snan): Define.
+	(Target::FPTypeProperties<T>::infinity): Define.
+	(Target::FPTypeProperties<T>::epsilon): Define.
+	(Target::FPTypeProperties<T>::dig): Define.
+	(Target::FPTypeProperties<T>::mant_dig): Define.
+	(Target::FPTypeProperties<T>::max_exp): Define.
+	(Target::FPTypeProperties<T>::min_exp): Define.
+	(Target::FPTypeProperties<T>::max_10_exp): Define.
+	(Target::FPTypeProperties<T>::min_10_exp): Define.
+	(define_float_constants): New function.
+	(Target::init): Initialize compile-time floating point properties.
+	* longdouble.h (Mode): Remove type declaration.
+	(real_properties): Remove type declaration.
+
+2017-03-10  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-longdouble.cc (CTFloat::fabs): New function.
+	(CTFloat::isIdentical): New function.
+	(CTFloat::isNaN): New function.
+	(CTFloat::isSNaN): New function.
+	(CTFloat::isInfinity): New function.
+	(CTFloat::parse): New function.
+	(CTFloat::sprint): New function.
+	* d-port.cc (Port::isNan): Remove function.
+	(Port::isSignallingNan): Remove function.
+	(Port::isInfinity): Remove function.
+	(Port::fequal): Remove function.
+	(Port::strtof): Remove function.
+	(Port::strtod): Remove function.
+	(Port::strtold): Remove function.
+	(Port::isFloat32LiteralOutOfRange): New function.
+	(Port::isFloat64LiteralOutOfRange): New function.
+	* longdouble.h (ld_sprint): Remove function.
+
+2017-03-06  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-glue.cc (verror): Update to handle -Wspeculative.
+	(verrorSupplemental): Likewise.
+	* d-lang.cc (d_init_options): Initialize module alias array.
+	(d_init_options): Handle -fmodule-filepath= and -Wspeculative.
+	* d-port.cc (Port::stricmp): Remove function.
+	(Port::writelongLE): New function.
+	(Port::writelongBE): New function.
+	* lang.opt (Wspeculative): Declare.
+	(fmodule-filepath=): Declare.
+
+2017-03-06  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-lang.cc (d_handle_option): Handle -ftransition=dip1000
+	* lang.opt (ftransition=dip1000): Declare.
+	(ftransition=safe): Make alias for -ftransition=dip1000
+
+2017-03-04  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (get_decl_tree): Handle chaining over many levels of
+	nesting functions to get to the right parent for the 'this' field.
+
+2017-03-04  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-decls.cc (get_symbol_decl): Move generation of DECL_ARGUMENTS for
+	empty body declarations to ...
+	(make_thunk): ... here.  Also set-up DECL_RESULT.
+	(finish_thunk): Mark DECL_UNINLINEABLE on external functions.
+
+2017-03-04  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-decls.cc (make_thunk): Don't build thunks for functions that
+	failed to compile.
+
+2017-03-04  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-objfile.cc (emit_dso_registry_hooks): Set DECL_PRESERVE_P.
+
+2017-02-26  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (build_frame_type): Update condition for scope
+	destruction error.
+	* d-port.cc (Port::valcpy): New function.
+	* expr.cc (ExprVisitor::visit(CallExp)): Generate cast of 'this'
+	object to the right handle type before indexing.
+
+2017-02-24  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-glue.cc (warningSupplemental): New function.
+	(vwarningSupplemental): New function.
+	(deprecationSupplemental): New function.
+	(vdeprecationSupplemental): New function.
+
+2017-02-23  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* imports.cc (ImportVisitor::visit(OverDeclaration)): New function.
+	(ImportVisitor::visit(FuncAliasDeclaration)): New function.
+
+2017-02-21  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-lang.cc (d_handle_option): Handle -X and -Xf options.
+	(d_parse_file): Update.
+	* lang-specs.h: Add rules for -X style options.
+	* lang.opt (X): Declare.
+	(Xf): Declare.
+	(fXf=): Make alias for -Xf.
+
+2017-02-21  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* lang.opt (fd-vgc): Comment out help test.
+	(fd-verbose): Likewise.
+	(fd-vtls): Likewise.
+	(femit-modules): Likewise.
+
+2017-02-20  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-target.cc (Target::fieldalign): Adjust.
+
+2017-02-19  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-lang.cc (d_option_data): Add fields to support other -M options.
+	(d_init_options): Initialize them.
+	(deps_add_target): New function.
+	(deps_write): Support multiple targets and phony rules.
+	(d_handle_option): Handle gcc -M style options.
+	(d_parse_file): Likewise.
+	* lang-specs.h: Add rules for -M style options.
+	* lang.opt: Declare -M style options.
+
+2017-02-19  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-lang.cc (is_system_module): Remove.
+	(deps_write): Always ignore entrypoint module.
+
+2017-02-19  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-lang.cc (write_one_dep): Remove.
+	(deps_write): Update signature.
+
+2017-02-19  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-lang.cc (iprefix_dir): Remove.
+	(imultilib_dir): Remove.
+	(std_inc): Remove.
+	(d_option_data): New struct.
+	(d_option): Declare.
+	(d_init_options): Initialize d_option.
+	(d_init): Update to use d_option.
+	(d_handle_option): Likewise.
+	(d_parse_file): Likewise.
+	(deps_write): Update signature.
+
+2017-02-19  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-lang.cc (d_handle_option): Call D_handle_option_auto.
+	* lang.opt (Wunknown-pragmas): Turn on warning with -Wall.
+
+2017-02-18  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-lang.cc (d_handle_option): Replace -fin with -fpreconditions;
+	-fout with -fpostconditions.  Handle -fswitch-errors.
+	(d_post_options): Move setting of release code flags here.
+	* lang.opt (fassert): Declare flag_assert.
+	(fin): Make alias for -fpreconditions.
+	(finvariants): Declare flag_invariants.
+	(fout): Make alias for -fpostconditions.
+	(fpostconditions): Declare.
+	(fpreconditions): Declare.
+	(fswitch-errors): Declare.
+
+2017-02-18  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-objfile.cc (PragmaDeclaration::toObjFile): Warn about unknown
+	pragmas only if -Wunknown-pragmas.
+
+2017-02-18  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-glue.cc (Global::init): Initialize errorLimit to flag_max_errors.
+	(verror): Don't halt program after invocation limit.
+	* d-lang.cc (d_handle_option): Remove handling -fmax-error-messages.
+	* lang.opt (fmax-error-messages): Remove option.
+
+2017-02-18  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-decls.cc (get_symbol_decl): Handle -Wtemplates.
+	* d-lang.cc (d_init_options): Remove setting flag_emit_templates.
+	(d_handle_option): Replace handling -femit-templates with
+	-fall-instantiations.
+	(d_pushdecl): Remove checking for flag_emit_templates.
+	* d-tree.h (D_DECL_IS_TEMPLATE): Remove macro.
+	* lang.opt (flag_emit_templates): Remove variable.
+	(fall-instantiations): Declare.
+	(femit-templates): Make alias for -fall-instantiations.
+	(Wtemplates): Declare.
+
+2017-02-18  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* lang.opt (fassert): Update help text.
+	(fin): Likewise.
+	(finvariants): Likewise.
+	(fout): Likewise.
+
+2017-02-11  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-objfile.cc (VarDeclaration::toObjFile): Error if a variable covers
+	more than half the address space.
+
+2017-02-04  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-objfile.cc (Module::genmoduleinfo): Ignore symbol visibility when
+	looking up module DSO symbols.
+
+2017-01-29  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-lang.cc (d_handle_option): Handle -ftransition=all.
+	* lang.opt (ftransition=all): Add compiler option.
+
+2017-01-29  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-lang.cc (d_handle_option): Handle -ftransition=checkimports.
+	* lang.opt (ftransition=checkimports): Add compiler option.
+
+2017-01-28  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-lang.cc (d_handle_option): Handle -ftransition=import.
+	* lang.opt (ftransition=import): Add compiler option.
+
+2017-01-25  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* imports.cc (ImportVisitor::visit(EnumDeclaration)): New function.
+	(ImportVisitor::visit(AggregateDeclaration)): New function.
+	(ImportVisitor::visit(ClassDeclaration)): New function.
+	(ImportVisitor::make_import): New function.
+	(ImportVisitor::visit(AliasDeclaration)): Get decl for type alias.
+
+2017-01-22  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* expr.cc (ExprVisitor::visit(EqualExp)): Don't use memcmp on arrays
+	of structs that define xopEquals.
+
+2017-01-15  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-spec.cc (lang_specific_driver): Add missing break.
+
+2017-01-13  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (build_class_instance): Don't check for void
+	initialized fields.
+	* expr.cc (ExprVisitor::visit(StructLiteralExp)): Likewise.
+
+2017-01-11  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* typeinfo.cc (layout_classinfo): Use placement new to initialize
+	typeinfo class declaration.
+
+2017-01-02  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen,cc (get_frame_for_symbol): Use fully qualified name in
+	error message.
+	(build_frame_type): Always add parameters to closure vars if the
+	function has a contract function.
+	(get_frameinfo): Likewise, always create a frame.
+	* expr.cc (ExprVisitor::needs_dtor): New function.
+	(ExprVisitor::lvalue_p): New function.
+	(ExprVisitor::visit(AssignExp)): Check for dtor in array assignments.
+	(ExprVisitor::visit(TypeidExp)): Cast result to expression type.
+
+
+Copyright (C) 2017 Free Software Foundation, Inc.
+
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
diff --git a/gcc/d/ChangeLog-2006 b/gcc/d/ChangeLog-2006
new file mode 100644
index 00000000000..4160b0ffe97
--- /dev/null
+++ b/gcc/d/ChangeLog-2006
@@ -0,0 +1,954 @@
+2006-12-27  DF  <dvdfrdmn@users.sf.net>
+
+	* phobos/internal/fpmath.d: Support x86_64
+
+	* phobos/configure.in: x86_64 can use fpmath.d
+	* phobos/configure: update
+
+	* target-ver-syms.sh: Add some CPU architectures
+
+2006-12-26  DF  <dvdfrdmn@users.sf.net>
+
+	* phobos/configure.in: actually use value of
+	--enable-phobos-config-dir
+
+2006-12-26  David Friedman  <dvdfrdmn@users.sf.net>
+
+	Rest of 0.178 changes:
+
+	* phobos/std/bitarray.d: revert previous changes
+
+	* d-decls.cc (toSymbolX): update
+
+	* d-glue.cc (TypeFunction::retStyle): implement
+
+	* phobos/std/format.d: update for Mangle.Tenum
+
+	-------------
+
+	Initial merge of 0.178:
+
+	* dmd/class.c, dmd/declaration.c, dmd/declaration.h, dmd/doc.c,
+	dmd/expression.c, dmd/expression.h, dmd/func.c, dmd/init.c,
+	dmd/lexer.c, dmd/mangle.c, dmd/mars.c, dmd/mars.h, dmd/mtype.c,
+	dmd/optimize.c, dmd/parse.c, dmd/statement.c, dmd/statement.h,
+	dmd/template.c, dmd/tocsym.c, dmd/toobj.c: Merge 0.178
+
+	* phobos/internal/gc/win32.d, phobos/internal/object.d,
+	phobos/std/c/linux/linux.d, phobos/std/date.d,
+	phobos/std/dateparse.d, phobos/std/format.d, phobos/std/gc.d,
+	phobos/std/regexp.d, phobos/std/socket.d, phobos/std.ddoc: Merge
+	0.178
+
+	---------------
+
+	* dmd/constfold.c (CastExp::constFold): Fix Bugzilla 738.
+
+	* dmd/todt.c (StructDeclaration::toDt): Fix Bugzilla 736.
+
+	* d-decls.cc (VarDeclaration::toSymbol): Fix Bugzilla 737.
+
+	* d-glue.cc (make_assign_math_op): Fix Bugzilla 739.
+
+	* d-codegen.cc, d-decls.cc, d-glue.cc, symbol.cc, symbol.h:
+	Use toParent2.  Handle nested template instance functions.
+	(Bugzilla 742, 743)
+
+2006-12-25  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* dmd/mtype.c: Don't use '@' in mangled names
+
+	* d-glue.cc (TypeFunction::toCtype): Handle recursive type
+	reference (Bugzilla 745)
+
+	* d-codegen.cc, d-codegen.h, d-glue.cc, d-objfile.cc, d-objfile.h,
+	dmd/aggregate.h, dmd/attrib.c, dmd/class.c, dmd/declaration.c,
+	dmd/declaration.h, dmd/enum.c, dmd/enum.h, dmd/func.c,
+	dmd/idgen.c, dmd/scope.c, dmd/scope.h, dmd/struct.c: Implement
+	GCC attributes.
+
+	* dmd/mtype.c (TypeDelegate::dotExp): Fix regression caused by
+	last fix.
+
+2006-12-24  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* dmd/parse.h, dmd/parse.c(parseStatement, parseExtAsm),
+	dmd/statement.h, asmstmt.cc: Implement GCC extended assembler.
+
+2006-12-20  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* dmd/mars.h: format issues are due to newlib, not Cygwin
+
+	* setup-gcc.sh: Fix sed patterns and options.
+
+	* dmd/mtype.c (TypeDelegate::dotExp): Handle .ptr so that
+	it can be an lvalue. (Bugzilla 696)
+
+	* d-irstate.cc (getLoopForLabel): Handle labels pointing to
+	ScopeStatements. (Bugzilla 695)
+
+2006-12-16  David Friedman  <dvdfrdmn@users.sf.net>
+
+	Release GDC 0.20
+
+	* setup-gcc.sh: account for modified version strings
+
+	* dmd/mtype.c (TypeTuple::toDecoBuffer): workaround newlib bug
+
+	* dmd/mars.h: fix printf formats for Cygwin
+
+	* d-builtins.c (d_init_builtins): Handle va_list type when it is
+	an array.
+
+	* gcc-mars.cc, gdc-version: update
+
+	* d-decls.cc: warnings cleanup
+
+	* dmd/expression.c (realToMangleBuffer): filter out 'x'
+
+2006-12-13  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* package/simple.sh: use MAKE environment variable
+
+2006-12-11  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* patch-build_gcc-4.0: don't disable Objective C
+
+2006-12-09  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* phobos/std/bitarray.d (unittest): workaround 0.177 breakage
+
+	* phobos/std/format.d,
+	* phobos/std/string.d,
+	* phobos/std/loader.d: update
+
+	* phobos/std/file.d: fix merge. update.
+
+	* dmd/root.[ch] (writestring): make arg const
+
+	* dmd/expression.c (toMangleBuffer): update
+
+	Initial 0.177 merges
+
+	* dmd/constfold.c, dmd/declaration.c, dmd/expression.[ch],
+	dmd/func.c, dmd/idgen.c, dmd/manlge.c, dmd/mars.c, dmd/mtype.[ch],
+	dmd/opover.c, dmd/tocsym.c, dmd/toobj.c, dmd/typinf.c: Merge 0.177
+
+	* etc/c/zlib.d, phobos/internal/aaA.d, phobos/internal/adi.d,
+	phobos/internal/arraycat.d, phobos/internal/gc/gc.d,
+	phobos/internal/gc/testgc.d, phobos/internal/object.d,
+	phobos/internal/qsort.d, phobos/internal/switch.d,
+	phobos/internal/trace.d, phobos/object.d, phobos/std/array.d,
+	phobos/std/boxer.d, phobos/std/conv.d, phobos/std/cover.d,
+	phobos/std/cpuid.d, phobos/std/date.d, phobos/std/file.d,
+	phobos/std/format.d, phobos/std/loader.d, phobos/std/math2.d,
+	phobos/std/md5.d, phobos/std/mmfile.d, phobos/std/outbuffer.d,
+	phobos/std/path.d, phobos/std/regexp.d, phobos/std/socket.d,
+	phobos/std/stream.d, phobos/std/string.d, phobos/std/switcherr.d,
+	phobos/std/syserror.d, phobos/std/typeinfo/ti_Acdouble.d,
+	phobos/std/typeinfo/ti_Acfloat.d, phobos/std/typeinfo/ti_Acreal.d,
+	phobos/std/typeinfo/ti_Adchar.d, phobos/std/typeinfo/ti_Adouble.d,
+	phobos/std/typeinfo/ti_Afloat.d, phobos/std/typeinfo/ti_Ag.d,
+	phobos/std/typeinfo/ti_Aint.d, phobos/std/typeinfo/ti_Along.d,
+	phobos/std/typeinfo/ti_Areal.d, phobos/std/typeinfo/ti_Ashort.d,
+	phobos/std/typeinfo/ti_Aubyte.d, phobos/std/typeinfo/ti_Auint.d,
+	phobos/std/typeinfo/ti_Aulong.d, phobos/std/typeinfo/ti_Aushort.d,
+	phobos/std/typeinfo/ti_Awchar.d, phobos/std/uri.d,
+	phobos/std/utf.d, phobos/std/windows/charset.d,
+	phobos/std/windows/registry.d, phobos/std/zlib.d: Merge 0.177
+
+	--------------
+
+	* patch-apple-gcc-4.0.x, patch-build_gcc-4.0: Support
+	building the Apple way on PowerPC machines.
+
+2006-12-06  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* d-codegen.cc (call): Fix for calling delegate literal.
+
+	* setup-gcc.sh: fail if patching build_gcc fails
+
+	* d-glue.cc (NewExp::toElem): expand stack vars
+	for GCC 3.x
+
+	* phobos/std/cpuid.d: fix for cpuid kludge
+
+2006-12-05  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* dmd/mars.h: Handle msvcrt C99 printf incompatibility.
+
+	* dmd/template.c, dmd/declaration.c, dmd/expression.c, dmd/func.c,
+	dmd/init.c, dmd/lexer.c, dmd/mangle.c, dmd/mtype.c,
+	dmd/optimize.c, dmd/root.c: ditto
+
+	* phobos/config/unix-mid: fix compile error
+
+2006-12-04  David Friedman  <dvdfrdmn@users.sf.net>
+
+	More 0.176 merges
+
+	* phobos/config/unix-mid: add reentrant funcs
+
+	* d-glue.cc (DeleteExp::toElem): handle on-stack vars
+
+	* d-glue.cc (FuncDeclaration::toObjFile): emit _arguments
+
+	* dmd/declaration.h, dmd/func.c: save _arguments local var for
+	backend
+
+2006-12-03  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* d-glue.cc: New _arguments ABI.
+
+	* gcc-mars.cc: Update for verror.
+
+	* d-decls.cc, d-objfile.cc,
+	* d-glue.cc (Module::genobjfile, d_gcc_aggregate_dtors): Update
+	for new toSymbolX.
+
+	* d-glue.cc (TypeAArray::toCtype): Implement new AA ABI.
+
+	* d-codegen.cc (convertTo): Don't allow conversion of dynamic
+	array to associated array and vice versa.
+
+	* d-codegen.cc (getLibCallDecl, rawArray, convertForCondition),
+	d-glue.cc (NullExp::toElem): change AA type
+
+	* gcc-mars.cc : printf corrections
+
+	* phobos/Makefile.in (MAIN_OBJS): add bind.o
+
+	Initial merge of DMD 0.176
+
+	* attrib.c, dmd/cast.c, dmd/class.c, dmd/cond.c, dmd/constfold.c,
+	dmd/declaration.c, dmd/doc.c, dmd/dsymbol.h, dmd/dump.c,
+	dmd/expression.c, dmd/expression.h, dmd/func.c, dmd/idgen.c,
+	dmd/init.c, dmd/init.h, dmd/lexer.c, dmd/link.c, dmd/mangle.c,
+	dmd/mars.c, dmd/mars.h, dmd/module.c, dmd/mtype.c, dmd/optimize.c,
+	dmd/parse.c, dmd/root.c, dmd/statement.c, dmd/template.c,
+	dmd/tocsym.c, dmd/todt.c, dmd/toobj.c: Merge 0.176
+
+	* internal/aaA.d, phobos/internal/cmath2.d, phobos/internal/deh.c,
+	phobos/internal/object.d, phobos/linux.mak,
+	phobos/std/c/linux/linux.d, phobos/std/c/linux/socket.d,
+	phobos/std/compiler.d, phobos/std/math.d, phobos/std/socket.d,
+	phobos/std/string.d, phobos/std/traits.d,
+	phobos/std/typeinfo/ti_Aubyte.d, phobos/std/typeinfo/ti_ubyte.d,
+	phobos/std.ddoc, phobos/win32.mak: Merge 0.176
+
+	* phobos/std/bind.d: New file in 0.176
+
+	* dmd/toir.[ch]: New files (from DMD 0.175)
+
+	* phobos/phobos.d: New file (from DMD 0.160)
+
+	--------------
+
+	* phobos/std/boxer.d (unbox(T : void*).unbox): fix
+
+	* d-glue.cc (NewExp::toElem): Support allocation on stack
+
+	Initial merge of DMD 0.175
+
+	* cast.c, dmd/class.c, dmd/dchar.c, dmd/dchar.h,
+	dmd/declaration.c, dmd/declaration.h, dmd/delegatize.c,
+	dmd/dsymbol.c, dmd/dump.c, dmd/enum.c, dmd/expression.c,
+	dmd/expression.h, dmd/func.c, dmd/identifier.c, dmd/identifier.h,
+	dmd/inifile.c, dmd/init.c, dmd/lexer.c, dmd/lstring.h,
+	dmd/mangle.c, dmd/mars.c, dmd/mtype.c, dmd/mtype.h,
+	dmd/optimize.c, dmd/parse.c, dmd/root.c, dmd/root.h, dmd/scope.c,
+	dmd/scope.h, dmd/statement.c, dmd/statement.h, dmd/stringtable.c,
+	dmd/todt.c, dmd/typinf.c: Merge 0.175
+
+	dmd/html.c: not merged
+
+	* phobos/internal/object.d, phobos/std/demangle.d,
+	phobos/std/format.d, phobos/std/socket.d, phobos/std/stdio.d,
+	phobos/std/traits.d, phobos/std/uni.d, phobos/std.ddoc:
+	Merge 0.175
+
+	------------
+
+	* config/darwin8, config/mingw: update config fragments
+
+2006-11-26  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* d-codegen.cc, d-glue.cc: Fix missing continue label
+	expansion for GCC < 4.0
+
+	* d-glue.cc (make_math_op): Convert non-complex to complex
+	in all version of GCC. (Buzilla 575)
+
+	* d-codegen.cc: for tree code class for GCC < 4.0
+
+	* phobos/Makefile.in: make test programs dependendent on
+	libgphobos.a as gdc will still try to find it
+
+	* phobos/configure.in: conditionally build std/boxer.o
+
+	* phobos/Makefile.in (MAIN_OBJS): remove std/boxer.o
+
+	* phobos/internal/arraycat.d (_d_array_literal): disable
+
+	* phobos/std/format.d: fix for PowerPC Linux
+
+2006-11-25  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* d-gcc-real.h: cleanup for warnings
+
+2006-11-24  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* d-glue.cc (DotVarExp::toElem): Handle const members.
+
+	* d-codegen.cc (needs_temp): Return false for constants.
+	(isFreeOfSideEffects): New function.
+
+	* d-glue.cc (do_array_set): Evaluate the rvalue only once
+	(Bugzilla 578).
+
+2006-11-18  David Friedman  <dvdfrdmn@users.sf.net>
+
+	Rest of DMD 0.174 merge:
+
+	* dmd/mtype.c (TypeDelegate::dotExp): Use cast-to-pointer
+	for .ptr property
+
+	* d-decls.cc (VarDeclaration::toSymbol): Build CONST_DECLs
+	* d-codegen.cc (IRState::emitLocalVar): Do nothing if CONST_DECL
+
+	* d-codegen.cc (ArrayScope::setArrayExp): Handle tuple/constant
+	lengths.
+
+	* dmd/toobj.c (Dsymbol::toObjFile): emit local variables for
+	tuples
+
+	* svn: move traits.d and typetuple.d to the correct directory
+
+	* gcc-mars.cc (error): add va_list form
+
+	* dmd/mars.h (error): use va_list for 'error'
+
+	* dmd/expression.c, dmd/lexer.c: fix compile errors
+
+	* phobos/Makefile.in (MAIN_OBJS): add traits.o and typetuple.o
+
+	* dmd-script: add -v1 option
+
+	* dmd/root.c (FileName::ensurePathExists): fix conditions
+	for non-win32, non-linux.
+
+	* dmd-script (printUsage): add missing options documentation
+
+	* d-codegen.{h, cc}: use size_t
+
+	* phobos/internal/dgccmain2.d: update
+
+	Initial merge of DMD 0.174:
+
+	* dmd/attrib.c, dmd/cast.c, dmd/class.c, dmd/declaration.c,
+	dmd/declaration.h, dmd/doc.c, dmd/dsymbol.c, dmd/dsymbol.h,
+	dmd/expression.c, dmd/expression.h, dmd/func.c, dmd/hdrgen.c,
+	dmd/idgen.c, dmd/inline.c, dmd/lexer.c, dmd/mangle.c, dmd/mars.c,
+	dmd/mars.h, dmd/module.c, dmd/mtype.c, dmd/mtype.h, dmd/parse.c,
+	dmd/statement.c, dmd/template.c, dmd/template.h, dmd/tocsym.c,
+	dmd/todt.c, dmd/toobj.c, dmd/typinf.c, dmd/utf.c, dmd/utf.h: Merge
+	0.174
+
+	* phobos/internal/aApplyR.d, phobos/internal/dmain2.d,
+	phobos/internal/object.d, phobos/linux.mak, phobos/object.d,
+	phobos/std/date.d, phobos/std/openrj.d, phobos/std/signals.d,
+	phobos/win32.mak: Merge 0.174
+
+	* phobos/std/traits.d, phobos/std/typetuple.d: New files in 0.174
+
+
+2006-11-17  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* package/simple.sh: enhancements
+
+	* dmd/attrib.c: fix message
+
+2006-11-16  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* d-codegen.cc (continueHere): fix error
+	* d-glue.cc (d_gcc_aggregate_dtors): "
+
+2006-11-14  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* d-builtins2.cc, d-codegen.{cc, h}, d-decls.cc, d-glue.cc,
+	d-lang.h: remove D_TYPE_IS_NESTED.  Do not pull original
+	TypeFunction from FUNCTION_TYPE.
+
+	* d-codegen.cc: cleanup
+
+	* d-codegen.cc, gdc-alloca.h, phobos/config/gen_unix.c: fixes for
+	older MacOS X builds
+
+2006-11-13  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* phobos/std/cpuid.d: fixes for PIC
+
+	* d-asm-i386.h: Fix for referencing funcs (Bugzilla 307).
+	Correct clobbers for cpuid, but left out EBX as a kludge for
+	std.cpuid.
+
+	* phobos/std/c/linux/linux.d: make imports public (Bugzilla 403)
+
+	* d-decls.cc (uniqueName): Fixed logic error (Bugzilla 375). Then
+	just removed most of the code and comments because the workaround
+	is no longer needed.
+
+2006-11-12  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* dmd/root.c (Object::hashCode): cast to pointer acceptable int type
+
+	Rest of DMD 0.173 merge:
+
+	* d-glue.cc (UnrolledLoopStatement::toIR): implement
+
+	* d-codegen.h (setContinueLabel): add interface for multiple continues
+
+	* d-irstate.h (Flow), d-irstate.cc: add overrideContinueLabel for
+	GCC < 4.0
+
+	* d-builtins2.cc, d-glue.cc, d-codegen.cc: update for
+	TypeFunction::arguments -> parameters and tuples
+
+	* dmd/func.c: update
+
+	* d-gcc-complex_t.h: update
+
+	* phobos/Makefile.in (MAIN_OBJS): add signals.o and cpuid.o
+
+	Initial merge of DMD 0.173:
+
+	* dmd/arraytypes.h, dmd/cast.c, dmd/class.c, dmd/complex_t.h,
+	dmd/constfold.c, dmd/declaration.c, declaration.h,
+	dmd/delegatize.c, dmd/doc.c, dmd/dsymbol.c, dmd/dsymbol.h,
+	expression.c, dmd/expression.h, dmd/func.c, dmd/html.c,
+	dmd/html.h, dmd/inline.c, lexer.c, dmd/lexer.h, dmd/mars.c,
+	dmd/mars.h, dmd/mem.h, dmd/mtype.c, dmd/mtype.h, opover.c,
+	dmd/optimize.c, dmd/parse.c, dmd/parse.h, dmd/statement.c,
+	dmd/statement.h, struct.c, dmd/template.c, dmd/template.h,
+	dmd/tocsym.c, dmd/toobj.c, dmd/typinf.c: Merge 0.173
+
+	* phobos/internal/object.d, phobos/linux.mak, phobos/std/stream.d,
+	phobos/std/string.d, phobos/std/system.d, phobos/std.ddoc,
+	phobos/unittest.d, phobos/win32.mak: Merge 0.173
+
+	* phobos/std/c/locale.d, phobos/std/cpuid.d, phobos/std/signals.d:
+	New files in 0.173
+
+	----
+
+	* dmd/class.c, dmd/mars.c, dmd/opover.c, dmd/statement.c:
+	Merge DMD 0.172
+
+	Merge DMD 0.171:
+
+	* dmd/func.c, dmd/optimize.c: Update comments
+
+	* dmd/aggregate.h, dmd/class.c, dmd/func.c, dmd/mars.c:
+	Merge 0.171
+
+	* phobos/internal/aApplyR.d, phobos/internal/gc/gc/.d: Merge 0.171
+
+	----
+
+	Rest of DMD 0.170 merge:
+
+	* d-glue.cc (ArrayLiteralExp::toElem): Handle the case in which
+	the type of the expression is a pointer.
+
+	* dmd/optimize.c (PtrExp::optimize): Don't change type
+	of expression without cast
+
+	* phobos/internal/aApplyR.d: turn off debug(apply)
+
+2006-11-11  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* d-glue.cc (ForeachStatement::toIR): support foreach_reverse
+
+	* dmd/lexer.c: size_t -> unsigned
+
+	* d-lang.cc (d_handle_option): update
+
+	* phobos/Makefile.in: add aApplyR.o
+
+	* phobos/internal/monitor.c: merged
+
+	Initial merge of DMD 0.170:
+
+	* dmd/attrib.c, dmd/cast.c, dmd/class.c, dmd/delegatize.c,
+	dmd/dsymbol.c, dmd/expression.c, dmd/expression.h, dmd/func.c,
+	dmd/identifier.c, dmd/idgen.c, dmd/import.c, dmd/lexer.c,
+	dmd/lexer.h, dmd/mangle.c, dmd/mars.c, dmd/module.c, dmd/mtype.c,
+	dmd/mtype.h, dmd/opover.c, dmd/parse.c, dmd/statement.c,
+	dmd/statement.h, dmd/template.h, dmd/utf.h: Merge 0.170
+
+	* phobos/internal/aApply, phobos/internal/cast.d,
+	phobos/internal/gc/gc.d, phobos/internal/mars.h,
+	phobos/internal/object.d, phobos/linux.mak, phobos/object.d,
+	phobos/std/gc.d, phobos/std/math.d, phobos/std/outofmemory.d,
+	phobos/std/path.d, phobos/std/zlib.d, phobos/std.ddoc,
+	phobos/unittest.d, phobos/win32.mak: Merge 0.170
+
+	* internal/monitor.c: not changed; merge deferred for now
+
+	* phobos/internal/aApplyR.d: new file in 0.170
+
+	----
+
+	Rest of 0.169 merge:
+
+	* phobos/internal/object.d: fix merge error
+
+	* d-asm-i386.h: update for DMD changes
+
+	* dmd/mtype.c, phobos/internal/adi.d (_adSortChar, _adSortWchar):
+	fix for calling conventions
+
+	* d-gcc-complex_t.h: updated
+
+	Initial merge of DMD 0.169:
+
+	* dmd/aggregate.h, dmd/arraytypes.h, dmd/attrib.h, dmd/class.c,
+	dmd/complex_t.h, dmd/cond.h, dmd/declaration.h, dmd/declaration.c,
+	dmd/doc.h, dmd/dsymbol.c, dmd/dsymbol.h, dmd/enum.h,
+	dmd/expression.c, dmd/expression.h, dmd/hdrgen.h, dmd/html.h,
+	dmd/identifier.h, dmd/idgen.c, dmd/import.c, dmd/import.h,
+	dmd/init.c, dmd/init.h, dmd/lexer.h, dmd/macro.h, dmd/macro.c,
+	dmd/mars.c, dmd/mars.h, dmd/module.c, dmd/module.h, dmd/mtype.c,
+	dmd/mtype.h, dmd/opover.c, dmd/optimize.c, dmd/parse.h,
+	dmd/root.c, dmd/scope.c, dmd/scope.h, dmd/statement.c,
+	dmd/statement.h, dmd/staticassert.h, dmd/struct.c, dmd/template.c,
+	dmd/template.h, dmd/total.h, dmd/typinf.c, dmd/utf.h,
+	dmd/version.h: Merge 0.169
+
+	* phobos/internal/adi.d, phbobos/internal/critical.c,
+	phbobos/internal/mars.h, phbobos/internal/monitor.c,
+	phbobos/internal/object.d, phbobos/object.d, phbobos/std/regexp.d:
+	Merge 0.169
+
+	----
+
+	* dmd-script: Create directories for output files
+
+	Rest of 0.168 changes:
+
+	* d-dmd-gcc.h, d-glue.cc (d_gcc_aggregate_dtors): new function
+	* dmd/toobj.c (ClassDeclaration::toObjFile): use d_gcc_aggregate_dtors
+
+	* d-codegen.cc (convertTo): handle delegate .ptr property
+
+	* lang-specs.h, dmd-script: handle .xhtml extension
+
+	Initial merge of DMD 0.168
+
+	* dmd/aggregate.h, dmd/arraytypes.h, dmd/cast.c, dmd/class.c,
+	dmd/declaration.c, dmd/expression.h, dmd/func.c, dmd/html.[ch],
+	dmd/idgen.c, dmd/init.c, dmd/lexer.c, dmd/lexer.h, dmd/link.c,
+	dmd/mangle.c, dmd/mars.c, dmd/module.c, dmd/mtype.[ch],
+	dmd/statement.c, dmd/toobj.c, dmd/typeinf.c: Merge 0.168
+
+	* phobos/etc/gamma.d, phobos/internal/object.d,
+	phobos/std/c/linux/linux.d.orig-dmd, phobos/std/date.d,
+	phobos/std/math.d, phobos/std/socket.d, phobos/std/socketstream.d,
+	phobos/std/stream.d, phobos/std/uni.d, phobos/win32.mak: Merge 0.168
+
+2006-11-10  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* Make-lang.in (d.install-common): cross install fix for gdmd
+
+	* d-glue.cc (NewExp::toElem): uint -> unsigned
+
+	* package/simple.sh: Don't depend on rsync
+
+	* patch-toplev-3.4.x, patch-toplev-4.0.x: Modify top-level
+	Makefile.in, configure.in, and configure to work with
+	a Canadian cross build.
+
+	* d-glue.cc (SynchronizedStatement::toIR): Remove uneeded
+	startBindings call.  Add missing _d_criticalenter call.
+
+2006-10-12  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* phobos/config/unix-mid: add sysconf
+
+2006-10-11  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* phobos/std/format.d (doFormat): support Mangle.Tstruct for p_args
+
+	* phobos/config/unix-head: import tm from gcc.config
+
+	* phobos/config/gen_unix.c (c_time): Moved out struct tm.
+
+	* phobos/config/gen_config1.c: Support clock_t. Move struct tm here.
+
+	* d-glue.cc (AssignExp::toElem): use _d_arraysetlength3p
+	(FuncDeclaration::toObjFile): Fixed assert of class member if
+	synchronized.
+
+	* d-codegen.{h, cc}: replace libcall _d_arraysetlength2p with
+	_d_arraysetlength3p
+
+	* phobos/internal/gc/gc.d (_d_arraysetlength3p): pointer version
+	of _d_arraysetlength3.  GCC asm jump fix.
+
+2006-10-09  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* d-codegen.{h, cc}: new libcalls: _dnewmp, _d_newarraymip
+
+	* phobos/internal/gc/gc.d (_dnewmp, _d_newarraymip): pointer version
+	of _dnewm, _d_newarraymi
+
+	* phobos/config/unix-mid: add utime
+
+	* phobos/std/file.d: changes for GDC
+
+	* phobos/config/gen_unix.c: support utimbuf
+
+2006-09-23  David Friedman  <dvdfrdmn@users.sf.net>
+
+	Initial merge of 0.167:
+
+	* dmd/array.c, dmd/cast.c, dmd/declaration.c, dmd/delegatize.c,
+	dmd/expression.[ch], dmd/func.c, dmd/idgen.c, dmd/import.c,
+	dmd/init.c, dmd/inline.c, dmd/lexer.[ch], dmd/mars.c,
+	dmd/mtype.[ch], dmd/optimize.c, dmd/parse.c, dmd/statement.c,
+	dmd/template.c, dmd/typinf.c: Merge 0.167
+
+	* phobos/internal/arraycat.d, phobos/internal/gc/gc.d,
+	phobos/internal/gc/testgc.d, phobos/internal/object.d,
+	phobos/linux.mak, phobos/object.d, phobos/std/asserterror.d,
+	phobos/std/c/linux/linux.d.orig-dmd, phobos/std/c/time.d,
+	phobos/std/file.d, phobos/std/format.d, phobos/std/math.d,
+	phobos/std/string.d, phobos/std/thread.d, phobos/unittest.d,
+	phobos/win32.mak: Merge 0.167
+
+	* phobos/std/c/windows/stat.d: New 0.167
+
+2006-09-06  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* d-glue.cc (FuncDelaration::toObjFile):
+	Assert isMember	for synchronized functions.
+	(NewExp::toElem): Correct some cases for nested classes
+
+2006-09-04  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* gdc-version, gcc-mars.cc: update
+
+	* d-codegen.cc (trueDeclarationType): support lazy arguments
+	(trueArgumentType): ditto
+
+	* d-codegen.{h, cc}: comment out convertForInitialization
+
+	* Make-lang.in (D_DMD_OBJS): add delegatize
+
+	* dmd/delegatize.c: new, DMD 0.166
+
+	* dmd/cast.c, dmd/declaration.[ch], dmd/expression.[ch],
+	dmd/func.c, dmd/inline.c, dmd/lexer.c, dmd/lexer.h, dmd/mars.c,
+	dmd/mtype.c, dmd/mtype.h, dmd/opover.c, dmd/parse.c,
+	dmd/statement.c, dmd/struct.c, dmd/template.c, dmd/tocsym.c,
+	dmd/typinf.c: Merge DMD 0.166
+
+	* phobos/etc/c/zlib/...: Merge 0.166
+
+	* phobos/internal/aApply.d, phobos/internal/gc/linux.mak,
+	phobos/linux.mak, phobos/std/cover.d, phobos/std/utf.d,
+	phobos/win32.mak: Merge 0.166
+
+	* phobos/etc/zlib/infblock.[ch], phobos/etc/zlib/infcodes.[ch],
+	phobos/etc/zlib/infutil.[ch], phobos/etc/zlib/maketree.c,
+	phobos/etc/zlib/zlib.html: remove, DMD 0.166
+
+	* gdc-version: update
+
+	* d-glue.cc (FuncDeclaration::toObjFile): update
+
+	* dmd/cast.c, dmd/declaration.[ch], dmd/enum.c,
+	dmd/expression.[ch], dmd/func.c, dmd/init.c, dmd/inline.c,
+	dmd/mars.c, dmd/mtype.c, dmd/statement.c, dmd/template.c,
+	dmd/typeinf.c: Merge DMD 0.165
+
+	* phobos/internal/gc/gcx.d, phobos/std.ddoc: Merge DMD 0.165
+
+	* gdc-version: updated
+
+	* dmd/aggregate.h, dmd/declaration.[ch], dmd/doc.c, dmd/dsymbol.c,
+	dmd/expression.c, dmd/import.c, dmd/inifile.c, dmd/mars.c,
+	dmd/module.[ch], dmd/mtype.c, dmd/parse.c, dmd/statement.c,
+	dmd/template.c: Merge DMD 0.164
+
+	* phobos/std/socket.d: Merge DMD 0.164
+	* phobos/std/thread.d: no change
+
+2006-07-22  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* phobos/internal/gc/testgc.d: add import
+
+	* phobos/std/thread.d (Thread.thread_init, Thread.getESP): make
+	public
+
+	* phobos/std/c/unix/unix.d: use public import
+
+	* dmd/access.c, dmd/aggregate.h, dmd/attrib.c, dmd/class.c,
+	dmd/declaration.[ch], dmd/enum.c, dmd/expression.c, dmd/func.c,
+	dmd/import.[ch], dmd/mars.c, dmd/module.c, dmd/mtype.[ch],
+	dmd/parse.[ch], dmd/scope.[ch], dmd/struct.c, dmd/template.[ch],
+	dmd/todt.c: Merge DMD 0.163
+
+	* phobos/internal/object.d, phobos/std/c/linux/linux.d.orig-dmd,
+	phobos/std/regexp.d, phobos/std/stdio.d, phobos/std/stream.d:
+	Merge DMD 0.163
+
+2006-07-12  David Friedman  <dvdfrdmn@users.sf.net>
+
+	Release GDC 0.19
+
+	* dmd/template.c: don't use ehfilter
+	* gdc-version: update
+
+2006-07-11  David Friedman  <dvdfrdmn@users.sf.net>
+
+	Support for Apple GCC and other fixes
+
+	* setup-gcc.sh: patch build_gcc
+	* patch-build_gcc-4.0: new
+
+	* dmd-script: Support -arch option and apple driver naming.
+	Use absolute path to execute program with -run.
+
+2006-07-10  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* phobos/config/darwin8/{frag-gen,frag-math,frag-unix}: new
+	* phobos/configure.in: support Darwin cross compiling
+	* phobos/configure.in: updated
+
+	* phobos/config/gen_unix.c (c_fcntl): added *_OK enums
+	* phobos/config/skyos/frag-unix: updated
+
+2006-07-03  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* ../../gcc/tree.h, ../../gcc/tree-dump.c: machine readable dump
+
+	Merge DMD 0.162
+
+	* d-glue.cc (AssignExp::toElem): use _d_arraysetlength2p
+
+	* phobos/internal/gc/gc.d: chanage _d_arraysetlength2 to
+	_d_arraysetlength2p
+
+2006-07-02  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* d-codegen.{h, cc}: support _d_arraysetlength2
+
+	* dmd/cast.c, dmd/declaration.c, dmd/doc.c, dmd/expression.c,
+	dmd/func.c, dmd/mars.c, dmd/mtype.c, dmd/parse.c, dmd/struct.c,
+	dmd/template.[ch], dmd/toobj.c: merged
+
+	* phobos/internal/gc/gc.d, phobos/object.d,
+	phobos/std/asserterror.d, phobos/std/moduleinit.d: merged
+
+	---
+
+	* phobos/std/regexp.d (RegExp.Range.setbitmax): fix for
+	big endian
+
+2006-06-28  DF  <dvdfrdmn@users.sf.net>
+
+	* d-glue.cc (TypeStruct::toCtype, TypeEnum::toCtype): Move
+	initTypeDecl call to after size calculation.
+
+2006-06-24  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* phobos/Makefile.in: fix and clean up config.d dependencies
+
+	* d-gcc-real.cc (real_t): fix assumptions about HOST_WIDE_INT
+
+2006-06-23  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* Make-lang.in, asmstmt.cc, d-convert.cc, d-gcc-includes.h,
+	  d-lang.cc, setup-gcc.sh: update to support building with Apple
+	  GCC
+	* d-apple-gcc.cc, patch-apple-gcc-4.0.x: new
+
+	Misc fixes
+
+	* Make-lang.in: Add dependencies for DMD header files.
+
+	* phobos/config/gen_unix.c (c_time): fix array bounds bug
+
+2006-06-22  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* Make-lang.in: use BUILD_LDFLAGS for generator progs
+
+2006-06-21  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* d-asm-i386.h: implement offset/offsetof
+
+2006-06-20  David Friedman  <dvdfrdmn@users.sf.net>
+
+	Merge DMD 0.161
+
+	* gcc-mars.cc, gdc-version: updated
+
+	* dmd/cast.c, dmd/class.c, dmd/declaration.[ch], dmd/dsymbol.c,
+	dmd/expression.[ch], dmd/func.c, dmd/idegen.c, dmd/import.h,
+	dmd/inline.c, dmd/lexer.[ch], dmd/mars.[ch], dmd/module.c,
+	dmd/mtype.c, dmd/opover.c, dmd/parse.c, dmd/root.[ch],
+	dmd/statement.c, dmd/struct.c, dmd/template.[ch], dmd/toobj.c:
+	Merge DMD 0.161
+
+	* phobos/internal/adi.d, phobos/internal/cast.d,
+	phobos/internal/trace.d, phobos/linux.mak,
+	phobos/std/asserterror.d, phobos/std/base64.d,
+	phobos/std/bitarray.d, phobos/std/boxer.d,
+	phobos/std/c/linux/socket.d, phobos/std/c/windows/windows.d,
+	phobos/std/c/windows/winsock.d, phobos/std/conv.d,
+	phobos/std/cstream.d, phobos/std/date.d, phobos/std/dateparse.d,
+	phobos/std/demangle.d, phobos/std/file.d, phobos/std/format.d,
+	phobos/std/math.d, phobos/std/math2.d, phobos/std/mmfile.d,
+	phobos/std/random.d, phobos/std/regexp.d, phobos/std/socket.d,
+	phobos/std/socketstream.d, phobos/std/stream.d,
+	phobos/std/string.d, phobos/std/stream.d, phobos/std/thread.d,
+	phobos/std/typeinfo/ti_Along.d, phobos/std/typeinfo/ti_Aulong.d,
+	phobos/std/tyeinfo/ti_void.d, phobos/std/uni.d, phobos/std/uri.d,
+	phobos/std/utf.d, phobos/std/windows/registry.d, phobos/std/zip.d,
+	phobos/std/zlib.d, phobos/std.ddoc, phobos/unittest.d,
+	phobos/win32.mak: Merge DMD 0.161
+
+	* Make-lang.in, d-lang.cc: Possible workaround for MingGW path
+	issues.  Create d-confdefs.h to contain the values of D_PHOBOS_DIR
+	and D_PHOBOS_TARGET_DIR.
+
+2006-06-10  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* History: new file
+	* package/install.sif: ditto
+	* package/simple.sh:
+
+	* phobos/std/zip.d (putUshort): fix for BigEndian case
+
+	* phobos/internal/gc/gcgccextern.d: update for version(freebsd)
+
+	* target-ver-syms.sh: Use "freebsd" for FreeBSD.
+
+	* phobos/configure.in: Enable std.loader for FreeBSD.
+	* phobos/std/loader.d: ditto
+	* phobos/configure: updated
+
+	* Make-lang.in: Support package building. Cleanup.
+
+2006-06-08  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* patch-gcc-4.0.x: updated with...
+	* .../gcc/tree-nested.c: check if static chain is a PARM_DECL
+	(Bugzilla 175)
+
+2006-06-07  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* Make-lang.in: use CXX_FOR_BUILD
+
+	* phobos/std/format.d (unittest): Some C libraries do not support
+	the %A format.
+
+2006-06-06  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* phobos/config/skyos/frag-unix: update for SkyOS beta 10
+
+2006-06-05  David Friedman  <dvdfrdmn@users.sf.net>
+
+	Merge DMD 0.160
+
+	* d-codegen.cc (arrayType): handle zero-length arrays for local
+	variables.
+
+	* gdc-version, gcc-mars.cc: update
+
+	* d-glue.cc (NewExp::toElem): support 'exp. new ...'
+
+	* d-codegen.{h, cc}: support _d_assert_msg
+
+	* dmd/attrib.c, dmd/enum.c, dmd/expression.[ch], dmd/idgen.c,
+	dmd/inifile.c, dmd/inline.c, dmd/mars.c, dmd/module.c,
+	dmd/mtype.c, dmd/opover.c, dmd/parse.[ch], dmd/statement.[ch],
+	dmd/staticassert.[ch], dmd/struct.c: Merge DMD 0.160
+
+	* phobos/std/asserterror.d, phobos/std/regexp.d,
+	phobos/std/zlib.d, phobos/std.ddoc, phobos/win32.mak: Merge DMD
+	0.160
+
+2006-06-04  David Friedman  <dvdfrdmn@users.sf.net>
+
+	Various fixes
+
+	* d-codegen.cc (twoFieldType): cleanup
+
+	* phobos/internal/gc/gc_dyld.c: correct callback signature
+
+	* phobos/std/format.d (unittest): Undo test change.
+	(putreal): Handle the case where real is equivalent to double.
+
+	* d-glue.cc (TypeClass::toCtype): use prepareTypeDecl instead of
+	setting an initial TYPE_NAME (Bugzilla 174)
+	(TypeStruct::toCtype): ditto
+	(TypeEnum::toCtype): ditto
+
+	* d-objfile.{h, cc} (prepareTypeDecl): New: Create type
+	declarations, but do not declare them to back end.
+
+	Merge DMD 0.159 and more
+
+	* d-asm-i386.h (parsePrimaryExp): handle floating point const
+	decls specially (Bugzilla 141)
+
+2006-06-03  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* d-glue.cc (AssertExp::toElem): handle interfaces
+
+	* phobos/std/math.d (poly): fix for darwin x86
+
+	* phobos/std/format.d (unittest): handle some variation in %a
+	formats
+
+	* gdc-version: updated
+
+	* gcc-mars.cc: updated
+
+	* dmd/attrib.c, dmd/attrib.h, dmd/class.c, dmd/declaration.c,
+	dmd/doc.c, dmd/expression.c, dmd/expression.h, dmd/func.c,
+	dmd/link.c, dmd/mars.c, dmd/module.c, dmd/module.h, dmd/parse.c,
+	dmd/parse.h, dmd/statement.c, dmd/staticassert.c, dmd/struct.c,
+	dmd/template.c, dmd/toobj.c: Merge DMD 0.159
+
+	* phobos/std/c/linux/linux.d.orig-dmd,
+	phobos/std/c/linux/linuxextern.d, phobos/std/c/windows/windows.d,
+	phobos/std/regexp.d, phobos/std/string.d, phobos/std/uni.d,
+	phobos/std.ddoc: Merge DMD 0.159
+
+	* dmd-script: use -O3 for GCC if -O is passed
+
+	Fix bugs 157, 162, 164, 171
+
+	* d-asm-i386.h: 'invlpg' instruction takes an operand (Bug 171)
+
+	* patch-gcc-4.0.x: updated with...
+	* .../gcc/tree-nested.c: use a VAR_DECL for custom static chain
+	(Bug 162, Bug 164)
+
+	* gdc-version: updated
+
+	* d-glue.cc (FuncExp::toElem): Handle Tpointer case. (Bug 157)
+
+2006-06-01  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* Start of SourceForge repository
+
+
+Copyright (C) 2006 Free Software Foundation, Inc.
+
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
diff --git a/gcc/d/ChangeLog-2007 b/gcc/d/ChangeLog-2007
new file mode 100644
index 00000000000..a2e504362c3
--- /dev/null
+++ b/gcc/d/ChangeLog-2007
@@ -0,0 +1,1340 @@
+2007-12-15  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* phobos*/Makefile.{am,in}, phobos*/aclocal.m4: Automake changes
+
+	* setup-gcc.sh: Support Apple GCC build 5465
+
+	* patch-apple-gcc-5465, patch-build_gcc-5465, patch-toplev-5465:
+	new files
+
+2007-12-01  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* phobos/config/unix.x3, phobos/config/x3.c, phobos/config/x3.h
+	phobos/config/x3, phobos/config/x3main.c: better diagnostics
+	and behavior
+
+2007-11-24  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* setup-gcc.sh: Ignore .svn directories when making symlink trees.
+
+	* d-bi-attrs-34.h, d-bi-attrs-341.h, d-bi-attrs-40,h,
+	d-bi-attrs-41.h: Support attributes on declarations in
+	other modules.
+
+	* d-codegen.cc (IRState::attributes): Support constant declarations
+	as string arguments.
+
+2007-11-08  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* d-cppmngl.cc: Use base-36 in substitutions.  Other fixes.
+
+2007-10-17  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* d-cppmngl.cc: More C++ mangling fixes and cleanups.
+
+2007-10-16  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* d-glue.cc (EqualExp::toElem): Convert result to libcall
+	to expression type. (Bugzilla 1573)
+
+2007-10-15  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* d-cppmngl.cc: Improve C++ mangling.
+
+2007-10-14  David Friedman  <dvdfrdmn@users.sf.net>
+
+	Merge DMD 1.022, 2.005
+
+	* dmd/..., dmd2/..., phobos/..., phobos2/...: Merge.
+
+	* Make-lang.in: Add builtin.dmd.o and d-cppmngl.o for V2.
+
+	* d-cppmngl.cc: New file
+
+	* phobos/std/c/dirent.d, phobos/std/c/linux/linux.d: Update
+	* phobs2/...: same
+
+	* symbol.h, d-decls.cc: Remove references to Classym
+
+	----
+
+	* d-glue.cc (CatExp::toElem): Null check. (Bugzilla 1581)
+
+	Remove carriage returns from files
+
+2007-10-13  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* d-glue.cc (CatExp::toElem): Flatten multiple CatExps into a
+	single library call. (Bugzilla 1556)
+
+	* phobos/std/boxer.d (box, boxArray), phobos2/...: Fix for
+	promoted types.	(Bugzilla 1543)
+
+	* d-codegen.cc (call): Catch a case in which a member function can
+	be called without 'this'. (Bugzilla 1568)
+
+	* dmd/mtype.c (TypeArray::dotExp): Correct return type of
+	sort and reverse functions. (SF 1809220 / Bugzilla 1554)
+
+	* dmd2/mtype.c: Ditto.
+
+	* patch-gcc-4.1.x: Add patch for ARM exception handling int nested
+	functions.
+
+	* d-objfile.cc: Make DT data TREE_CONSTANT
+
+	* dmd2/optimize.c: Fix for infinite recursion on initializer
+	when an error has already occurred.
+
+	-----
+
+	Add support for ARM EABI.  Fix some missing items from
+	cross-compilation changes.
+
+	* d-lang.cc: Add "Arm" and "Thumb" version identifiers
+
+	* phobos/unwind.d: Move pointer encoding to deh_pe.d. Move generic
+	unwinder interface to unwind_generic.d.  Import either generic or
+	ARM interfaces based on config value.
+
+	* phobos/unwind_generic.d, phobos/unwind_pe.d: New file; old code.
+
+	* phobos/unwind_arm.d: New file.
+
+	* phobos/deh.d: Support ARM exception handling ABI.
+
+	* phobos/configure.in, frag-ac.in: Add config for ARM unwinder
+
+	* phobos/configure.in, phobos/internal.c, phobos/monitor.c: Support
+	"no system" targets.
+
+	* phobos/cbridge_math.c: Correct identifier names for earlier
+	changes.
+
+	* phobos/Makefile.am, phobos/Makefile.in, phobos/config.h.in,
+	phobos/configure : Update.
+
+	* phobos2/...: Duplicate phobos/ changes
+
+2007-10-07  David Friedman  <dvdfrdmn@users.sf.net>
+
+	Merge cross-compilation changes to phobos2
+
+	* phobos2/....: Merge
+
+	---
+
+	Enhance cross-compilation support:
+
+	* phobos/Makefile.am, phobos/Makefile.in, phobos/acinclude.m4,
+	phobos/aclocal.m4, phobos/configure.in, phobos/configure,
+	phobos/config.h.in: Replace "fragment generation" with "X3"
+	system.  Remove obsolete tests.
+
+	* phobos/config/{config-head, config-mid, config-tail}: Removed
+	* phobos/config/{makestruct.h, unix-head, unix-mid}: Removed
+	* phobos/{darwin8, mingw, skyos}: Removed
+
+	* phobos/config/{errno.x3, fpcls.x3, libc.x3, unix.x3},
+	phobos/config{x3, x3.c, x3.h, x3main.c}:  New files
+
+	* phobos/frag-ac.in: Now only contains boolean constants.
+	* phobos/frag-math.in: New file.  Contains old configured math
+	functions.
+
+	* phobos/gcc/configext.d: Removed
+	* phobos/gcc/support.d: Move fallback strtold definition here.
+
+	* phobos/Makefile.am: Do not compile std/c/stdio.o
+	* phobos/std/c/stdio.c: Change function definitions to external
+	declarations.
+
+	* phobos/gcc/deh.d, phobos/gcc/fpcls.d, phobos/gcc/fpmath.d,
+	phobos/gcc/support.d, phobos/gcc/threadsem.d,
+	phobos/internal/dgccmain2.d, phobos/internal/fpmath.d,
+	phobos/internal/gc/gcgcc.d, phobos/phobos-ver-syms.in,
+	phobos/std/c/dirent.d, phobos/std/c/math.d, phobos/std/c/stddef.d,
+	phobos/std/c/stdio.d, phobos/std/c/stdlib.d, phobos/std/c/time.d,
+	phobos/std/c/unix/unix.d, phobos/std/date.d, phobos/std/math.d,
+	phobos/std/math2.d, phobos/std/mmfile.d, phobos/std/random.d,
+	phobos/std/stdio.d, phobos/std/stream.d, phobos/std/system.d,
+	phobos/std/thread.d: Update.  Add some support for targets
+	withouth an operation system.
+
+2007-09-24  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* d-glue.cc (IndeExp::toElem), d-codegen.cc (arrayElemRef):
+	Put the BIND_EXPR "inside the brackets". (Bugzilla 1155)
+
+	(StructLiteralExp::toElem): Handle NULL elements (for anonymous
+	unions.)
+
+2007-09-23  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* d-codegen.{h,cc}, d-glue.cc: Add type to error_mark_node
+	for code that assumes the type of certain expressions.
+	(Bugzilla 1051)
+
+	* d-glue.cc (FuncDeclaration::toObjFile): Set DECL_IGNORED_P
+	on the frame paramter.  (Bugzilla 1033)
+
+	* d-glue.cc, d-codegen.cc, d-objfile.cc: Set DECL_IGNORED_P
+	in most cases where DECL_ARTIFICIAL is set.
+
+	* d-builtins2.cc (d_gcc_magic_builtins_module): Handle type
+	declarations after converting functions.
+
+	* d-glue.cc (make_assign_math_op): Special case for division
+	when lhs is imaginary. (Bugzilla 739)
+
+	* dmd-script: Apply Ander's patch for implicit -H and -D
+	behavior.  (Bugzilla 1502)
+
+	Use of -of argument does not depend on header generation.
+	(Bugzilla 1501)
+
+	* d-builtins2.cc,  dmd*/module.c: If the target va_list is a
+	struct, add the struct declaration to the object module.
+	(Bugzilla 1507)
+
+	* dmd2/parse.c: fix line endings
+
+	----
+
+	Update for D 2.0:
+
+	* Make-lang.in: Support both DMD front end version 1 and 2.
+	Replace gcc-mars.cc with  d/mars.c.
+
+	* gcc-mars.cc: Remove file.
+
+	* d-codegen.h, d-codegen.cc: Update for DMD 2.x.
+	Add _d_hidden_func libcall.
+
+	* d-decls.cc, d-glue.cc: Update for DMD 2.x.
+
+	* d-dmd-gcc.h: Add rtlsym, etc.
+
+	* d-lange.cc: Include mars.h.  Implement rtlsym.
+
+	* d-objfile.cc (ObjectFile::hasModule): Add checks to allow
+	this function to be called earlier.
+
+	* dmd*/mars.c: Make changes for GDC.
+
+	* dmd*/attrib.c: Use WANTinterpret for pragma(GNU_asm)
+
+	* dmd2/parse.c (parseDeclarator): Fix aliasing bug.
+
+	* rdmd.d: Update for D 2.0
+
+	* gdc-version: now only contains the GDC version
+
+	* setup-gcc.sh: Support building D version 1 or 2.  Take DMD
+	version from dmd*/mars.c.
+
+	* dmd2/, phobos2/: New directories
+
+	* phobos2/Makefile.am (MAIN_OBJS): add std.c.stdio module
+	for std{in,out,err} vars
+
+	* phobos*/std/c/stdio.d: Make functions with definitions
+	extern(D).
+
+	* phobos2/std/loader.d: Update for D 2.0.
+
+	* phobos2/std/hiddenfunc.d: Use C calling conventions for GDC.
+
+2007-09-14  David Friedman  <dvdfrdmn@users.sf.net>
+
+
+	* d-codegen.cc (convertTo, call): Prevent multiple re-evaluation
+	of delgate. (Bugzilla 1492)
+
+2007-09-13  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* d-glue.cc, d-codegen.h, d-codegen.cc: Make it an error
+	to reference a nested function without a body. (SF 1793594)
+
+2007-09-12  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* phobos/config/ldfuncs-ppclinux: Declare sqrt.
+
+	* target-ver-syms.sh, phobos/acinclude.m4, phobos/configure.in:
+	Support kfreebsd.
+
+	* d-codegen.{h, cc}, d-glue.cc: Change rawArray to toDArray. Do
+	not cast result to void[]. (Bugzilla 1490)
+
+2007-09-07  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* phobos/std/c/stdio.d: Define fpos_t correctly for Drawin
+	(Bugzilla 1469)
+
+2007-09-05  David Friedman  <dvdfrdmn@users.sf.net>
+
+	Merge DMD 1.021
+
+	* dmd-script, d-spec.c (lang_specific_driver): Support
+	-debuglib= and -defaultlib= options.
+
+	* dmd/cast.c, dmd/constfold.c, dmd/declaration.c, dmd/dsymbol.c,
+	dmd/expression.c, dmd/expression.h, dmd/func.c, dmd/identifier.c,
+	dmd/idgen.c, dmd/init.c, dmd/init.h, dmd/interpret.c, dmd/lexer.c,
+	dmd/lexer.h, dmd/link.c, dmd/mars.c, dmd/mars.h, dmd/parse.c,
+	dmd/statement.c, dmd/staticassert.c, dmd/template.c: Merge
+
+	* internal/object.d, phobos/internal/trace.d, phobos/object.d,
+	phobos/std/c/windows/windows.d, phobos/std/date.d,
+	phobos/std/regexp.d, phobos/std/windows/registry.d: Merge
+
+	---
+
+	* phobos/std/stdio.d (readln): Use the result of getdelim
+	correctly. (SF 1788195)
+
+	* d-glue.cc (FuncDeclaration::toObjFile): Do not gimplify if
+	there were errors (Bugzilla 1415)
+
+2007-08-31  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* d-objfile.cc (outdata): Do not set TREE_CONSTANT on initializers
+	(Bugzilla 1453)
+
+2007-08-29  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* d-decls.cc (uniqueName): Allow multiple static declaration with
+	the same name if in a function. (SF 1783085)
+
+2007-08-28  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* d-codegen.cc (call): Use CommaExp correctly. (Bugzilla 1443)
+
+	* dmd/todt.c (createTsarrayDt): Don't take quadratic time to build
+	the initializer. (Bugzilla 1440)
+
+2007-08-22  David Friedman  <dvdfrdmn@users.sf.net>
+
+	Release GDC 0.24
+
+	---
+
+	* rdmd.d: Fix for Windows
+
+2007-08-21  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* GDC.html, History, README, gcc-mars.cc, gdc-version:
+	Update for 0.24
+
+	* rdmd.d, rdmd.1: New files. (Bugzilla 1152)
+
+	* patch-build_gcc-4.0: Build universal rdmd. (Bugzilla 1152)
+
+	* package/simple.sh: Install rdmd. (Bugzilla 1152)
+	Install man pages for MacOS build.
+
+	* dmd-script: Apply Ander's patch to make -op apply
+	to interface files. (Bugzilla 1137)
+
+	* d-lang.cc (d_parse_file): In -fall-sources mode,
+	only generate an interface file for the -fonly module.
+
+	* phobos/internal/adi.d (_adReverseChar, _adReverseWchar):
+	Make sure stride difference is signed.
+
+2007-08-20  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* patch-gcc-4.1.x, patch-gcc-4.0.x: Fix botched patches.
+
+2007-08-05  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* d-codegen.cc (convertForArgument): Recognize
+	pointer arithmetic expression as reference.
+	(Bugzilla 1400)
+
+	* d-glue.cc (DotVarExp::toElem): Do not NOP_EXPR
+	the result. (Bugzilla 1398)
+
+2007-07-27  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* phobos/std/stdio: Fix breakage from last commit.
+	(SF 1761989)
+
+2007-07-26  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* phobos/std/c/stdio.d: Change import for gcc.config
+
+	* d-lang.cc: add flag_iso for target macros
+
+	* patch-gcc-4.0.x:  (gcc/tree-sra.c): Do not use SRA
+	on structs with aliased fields created for anonymous
+	unions.  (Followup to Bugzilla 1034)
+
+2007-07-25  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* d-lang.cc: implement d_gcc_is_target_win32
+
+	* dmd/parse.c (parseLinkage): use d_gcc_is_target_win32
+
+	* d-dmd-gcc.h (d_gcc_is_target_win32): added
+
+2007-07-24  David Friedman  <dvdfrdmn@users.sf.net>
+
+	Merge DMD 1.019 - 1.020
+
+	* dmd/attrib.c, dmd/cast.c, dmd/constfold.c, dmd/declaration.h,
+	dmd/expression.c, dmd/expression.h, dmd/func.c, dmd/idgen.c,
+	dmd/inline.c, dmd/interpret.c, dmd/mars.c, dmd/mars.h,
+	dmd/mtype.c, dmd/mtype.h, dmd/opover.c, dmd/parse.c,
+	dmd/template.c, dmd/template.h, dmd/tocsym.c, dmd/toir.c: Merge
+
+	* phobos/internal/gc/gc.d, phobos/linux.mak,
+	phobos/std/demangle.d, phobos/std/format.d, phobos/std/loader.d,
+	phobos/std/socket.d, phobos/std/uni.d: Merge
+
+2007-07-22  David Friedman  <dvdfrdmn@users.sf.net>
+
+	Merge DMD 1.015 - 1.018:
+
+	* dmd/lexer.c (escapeSequence): Change vendor string.
+
+	* dmd-script: Update documentation link
+
+	* dmd/attrib.c, dmd/cast.c, dmd/class.c, dmd/declaration.c,
+	dmd/dsymbol.c, dmd/expression.c, dmd/expression.h, dmd/func.c,
+	dmd/hdrgen.h, dmd/idgen.c, dmd/init.c, dmd/init.h, dmd/inline.c,
+	dmd/interpret.c, dmd/lexer.c, dmd/mars.c, dmd/mars.h,
+	dmd/module.c, dmd/mtype.c, dmd/mtype.h, dmd/optimize.c,
+	dmd/parse.c, dmd/scope.c, dmd/scope.h, dmd/statement.c,
+	dmd/statement.h, dmd/staticassert.c, dmd/template.c: Merge
+
+	* phobos/internal/dmain2.d, phobos/internal/gc/gcx.d,
+	phobos/internal/object.d, phobos/object.d, phobos/std/bind.d,
+	phobos/std/compiler.d, phobos/std/date.d, phobos/std/dateparse.d,
+	phobos/std/format.d, phobos/std/intrinsic.d, phobos/std/loader.d,
+	phobos/std/math2.d, phobos/std/metastrings.d, phobos/std/mmfile.d,
+	phobos/std/outbuffer.d, phobos/std/string.d,
+	phobos/std/windows/registry.d, phobos/win32.mak: Merge
+
+	----
+
+	* gdc_alloca.h: Support OpenBSD. (Bugzilla 1065)
+
+	* patch-gcc-4.1.x (gcc/tree-sra.c): Do not use SRA
+	on structs with aliased fields created for anonymous
+	unions.  (Bugzilla 1034)
+
+2007-07-19  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* patch-gcc-4.1.x (gcc/predict.c): Add null-pointer check.
+	(Bugzilla 1035)
+
+	---
+
+	* phobos/std/format.d (doFormatPtr): Fix accidental
+	reversion from DMD merge.
+
+	* d-codegen.cc (maybeSetUpBuiltin): Add some missing
+	instrinsics.
+
+	* phobos/Makefile.am (MAIN_OBJS): Add gcc.builtins
+	module to get built-instruct initializers.
+
+	* phobos/Makefile.in: Regenerated
+
+	* d-lang.cc (d_parse_file): Call d_gcc_magic_module
+	for each module on the command line.
+
+	* d-builtins2.cc (d_gcc_magic_builtins_module): output
+	declaration other than funcs
+
+2007-07-16  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* dmd/todt.c (StructLiteralExp::toDt): Use target_size_t
+	as in StructInitializer::toDt.
+
+	Bugzilla 1032:
+
+	* dmd/todt.c: Use DT_container for arrays, array elements,
+	and structs
+
+	* dt.h, d-objfile.cc: Add DT_container / dtcontainer
+
+2007-07-14  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* d-codegen.cc (ArrayScope::setArrayExp, finish): Handle
+	constant lengths.  (Bugzilla 1031)
+
+2007-07-13  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* d-codegen.cc (toElemLvalue): Use toElemLvalue recursively.
+	(Bugzilla 1191)
+
+	* d-codegen.cc (twoFieldCtor): Only set TREE_READONLY if
+	TREE_CONSTANT
+
+	* d-glue.cc (array_set_expr, AssocArrayLiteralExp::toElem,
+	(StructLiteralExp::toElem, NullExp::toElem):
+	Do not set TREE_READONLY.
+
+	* d-glue.cc (NewExp::toElem): Do not set TREE_READONLY on
+	new array dimensions.
+
+	* d-codegen.cc (darrayVal): Do not set TREE_READONLY.
+	(Bugzilla 1329)
+
+	(delegateVal): ditto
+
+	* d-codegen.cc (FieldVisitor::visit): Handle classes that
+	are forward references. (Bugzilla 1325)
+
+	* dmd-script: Pass -J option correctly.	(SF 1721435)
+
+	* d-glue.cc (DeleteExp::toElem): Handle interfaces.
+	(SF 1721496)
+
+	* d-decls.cc (VarDeclaration::toSymbol): Handle void initializer.
+	(SF 1749622)
+
+	* d-glue.cc (AndAndExp, OrOrExp): Handle void second expression.
+	(SF 1689634)
+
+	* phobos/gcc/cbridge_time.c (_d_gnu_cbridge_tza): Remove
+	daylight saving time offset from tm_gmtoff (Bugzilla 1208)
+
+	* phobos/std/format.d (doFormat): Use original signature.  Actual
+	work is done by new doFormatPtr. (Bugzilla 1109)
+
+	* phobos/std/boxer.d: Use doFormatPtr
+
+2007-07-11  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* d-convert.cc (default_conversion): make public
+	(SF 1711324 and 1709602)
+
+	* d-apple-gcc.c (build_function_call): re-enable some code
+
+2007-05-08  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* d-apple-gcc.c: Remove a variable that is now defined in d-lang.c
+
+	* d-lang.cc: Fix for other GCC versions.
+
+	* d-c-stubs.c: New file.
+
+	* Make-lang.in (D_BORROWED_C_OBJS): Always use C_TARGET_OBJS.  Add
+	stubs for C compiler to allow linking target-specific preprocessor
+	defines.
+
+2007-05-05  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* d-codegen.cc (hwi2toli, getTargetSizeConst): Fix 2x wide int to
+	long int conversion.
+
+	* dmd/cast.c (implicitConvTo): Use GCC floating point
+	routines instead of native.
+
+	* d-gcc-real.cc (toInt): Correctly convert to long integer
+
+	* Make-lang.in (D_DMD_H): Add d-gcc-real.h
+
+	* phobos/internal/dgccmain2.d: Print newline after error message
+
+2007-04-29  David Friedman  <dvdfrdmn@users.sf.net>
+
+	Merge DMD 1.014:
+
+	* dmd/aggregate.h, dmd/constfold.c, dmd/delegatize.c, dmd/enum.c,
+	dmd/enum.h, dmd/expression.c, dmd/expression.h, dmd/idgen.c,
+	dmd/inline.c, dmd/interpret.c, dmd/lexer.c, dmd/lexer.h,
+	dmd/mars.c, dmd/mtype.c, dmd/optimize.c, dmd/struct.c,
+	dmd/template.c, dmd/tocsym.c, dmd/todt.c, dmd/toobj.c,
+	dmd/typinf.c: Merge.
+
+	* phobos/internal/gc/gc.d, phobos/internal/gc/gcx.d,
+	phobos/std/format.d, phobos/std.ddoc: Merge.
+
+	* d-glue.d (StructLiteralExp::toElem): implement
+	* d-decls.d (EnumDeclaration::toInitializer): copy from tocsym.c
+
+	------------
+
+	Merge DMD 1.013:
+
+	* dmd/cast.c, dmd/constfold.c, dmd/declaration.c,
+	dmd/expression.c, dmd/expression.h, dmd/interpret.c, dmd/link.c,
+	dmd/mars.c, dmd/mtype.c, dmd/opover.c, dmd/optimize.c,
+	dmd/parse.c, dmd/port.h, dmd/statement.c: Merge.
+
+	* phobos/internal/aaA.d, phobos/internal/switch.d,
+	phobos/std/date.d, phobos/std/file.d, phobos/std/format: Merge.
+
+	* d-codegen.h, d-codegen.cc: add _d_assocarrayliteralTp
+	* d-glue.cc (AssocArrayLiteralExp::toElem): Implement.
+
+	* phobos/internal/aaA.d (_d_assocarrayliteralT): modified
+	to use pointers to keys, values.
+
+	--------------
+
+	Merge DMD 1.012:
+
+	* arraytypes.h, dmd/declaration.c, dmd/delegatize.c,
+	dmd/expression.c, dmd/expression.h, dmd/init.c, dmd/init.h,
+	dmd/inline.c, dmd/interpret.c, dmd/lexer.c, dmd/lexer.h,
+	dmd/mangle.c, dmd/mars.c, dmd/optimize.c, dmd/template.c,
+	dmd/template.h: Merge
+
+	* phobos/internal/object.d: Merge
+
+	* dmd/template.c (TemplateInstance::mangle): printf portability
+
+	* d-glue.cc (AssocArrayLiteralExp::toElem): non-working implementation
+
+2007-04-28  David Friedman  <dvdfrdmn@users.sf.net>
+
+	Merge DMD 1.011:
+
+	* dmd/access.c, dmd/aggregate.h, dmd/arraytypes.h, dmd/attrib.c,
+	dmd/attrib.h, dmd/bit.c, dmd/cast.c, dmd/class.c, dmd/complex_t.h,
+	dmd/cond.c, dmd/cond.h, dmd/constfold.c, dmd/declaration.c,
+	dmd/declaration.h, dmd/delegatize.c, dmd/doc.c, dmd/doc.h,
+	dmd/dsymbol.c, dmd/dsymbol.h, dmd/dump.c, dmd/entity.c,
+	dmd/enum.c, dmd/enum.h, dmd/expression.c, dmd/expression.h,
+	dmd/func.c, dmd/hdrgen.c, dmd/hdrgen.h, dmd/html.c, dmd/html.h,
+	dmd/identifier.c, dmd/identifier.h, dmd/idgen.c, dmd/impcnvgen.c,
+	dmd/import.c, dmd/import.h, dmd/inifile.c, dmd/init.c, dmd/init.h,
+	dmd/inline.c, dmd/interpret.c, dmd/lexer.c, dmd/lexer.h,
+	dmd/link.c, dmd/macro.c, dmd/macro.h, dmd/mangle.c, dmd/mars.c,
+	dmd/mars.h, dmd/module.c, dmd/module.h, dmd/mtype.c, dmd/mtype.h,
+	dmd/opover.c, dmd/optimize.c, dmd/parse.c, dmd/parse.h,
+	dmd/scope.c, dmd/scope.h, dmd/statement.c, dmd/statement.h,
+	dmd/staticassert.c, dmd/staticassert.h, dmd/struct.c,
+	dmd/template.c, dmd/template.h, dmd/tocsym.c, dmd/todt.c,
+	dmd/toir.c, dmd/toir.h, dmd/toobj.c, dmd/total.h, dmd/typinf.c,
+	dmd/unialpha.c, dmd/utf.c, dmd/utf.h, dmd/version.c, dmd/version.h:
+	Merge
+
+	* phobos/internal/gc/gc.d, phobos/internal/gc/gcx.d,
+	phobos/internal/object.d, phobos/std/c/locale.d,
+	phobos/std/stdio.d, phobos/std/windows/registry.d: Merge
+
+	* dmd/expression.c: Comment out some logging code.
+	* d-builtins2.cc: Update and fix handling of built-in structs.
+	* d-codegen.cc, d-glue.cc: Update
+
+	----------------
+
+	Merge DMD 1.010:
+
+	* dmd/aggregate.h, dmd/class.c, dmd/declaration.c, dmd/doc.c,
+	dmd/dsymbol.c, dmd/expression.c, dmd/expression.h, dmd/func.c,
+	dmd/interpret.c, dmd/mars.c, dmd/scope.c, dmd/statement.c,
+	dmd/template.c, dmd/template.h, dmd/todt.c: Merge.
+
+	* phobos/internal/dmain2.d, phobos/internal/gc/gc.d,
+	phobos/internal/gc/gcx.d, phobos/internal/gc/testgc.d,
+	phobos/internal/object.d, phobos/object.d,
+	phobos/std/c/linux/linux.d, phobos/std/c/stdio.d,
+	phobos/std/file.d, phobos/std/gc.d, phobos/std/moduleinit.d,
+	phobos/std/regexp.d, phobos/std/stdio.d, phobos/std/string.d,
+	phobos/std.ddoc, phobos/win32.mak: Merge
+
+	* dmd/mtype.c, phobos/internal/dgccmain2.d: Update.
+	* d-glue.cc (gcc_d_backend_init): Update.
+
+	* phobos/config/unix-mid, phobos/std/c/unix/unix.d: Moved dirent
+	and stdio definitions out of configunix to std.c.unix.unix because
+	of compilation problems.
+
+	* phobos/internal/gc/gcx.d (GC.realloc, GC.extend, GC.free): Clear
+	gcx.p_cache
+
+	* phobos/std/stdio.d, phobos/frag-ac.in, phobos/configure.in:
+	  Account for various configurations.
+
+	* phobos/phobos-ver-syms.in: Remove GNU_Have_fwide
+	* phobos/configure: Regenerate
+
+2007-04-22  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* d-gcc-includes.h, d-lang.cc: Add target-specific preprocessor
+	symbols to the list of D version symbols.
+
+	* d-glue.cc (NewExp::toElem): Use NewExp::newtype (Bugzilla 1038)
+
+2007-04-16  David Friedman  <dvdfrdmn@users.sf.net>
+
+	Merge DMD 1.009 (from 1.007):
+
+	* d-decls.c: Merge changes from dmd/tocsym.c
+
+	* dmd/constfold.c, dmd/declaration.c, dmd/declaration.h,
+	dmd/expression.c, dmd/expression.h, dmd/init.c, dmd/interpret.c,
+	dmd/mangle.c, dmd/mars.c, dmd/mars.h, dmd/mtype.c,
+	dmd/optimize.c, dmd/statement.c, dmd/staticassert.c,
+	dmd/tocsym.c, dmd/todt.c: Merge changes.
+
+	* phobos/std/path.d, phobos/std/string.d: Merge changes.
+
+	----
+
+	* d-builtins.c, d-builtins2.cc, d-lang.h: Reworked code to only
+	convert built-in functions when the gcc.builtins module is
+	imported.  RECORD_TYPE is now converted to a TypeStruct.  Fixed
+	problem that caused some functions to not be available.  Support
+	targets builtins.
+
+2007-03-11  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* d-decls.cc (ClassDeclaration::toSymbol): Do not set TREE_READONLY.
+	(Bugzilla 1037)
+
+2007-03-10  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* d-codegen.cc (call): Handle CommaExp form of a delegate call
+	(Bugzilla 1043)
+
+	* d-decls.cc (VarDeclaration::toSymbol): Partial fix for Bugzilla 1044
+
+	* dt.h, d-objfile.cc, dmd/typeinf.c: Only pad 32-bit words in RTTI if
+	needed. (Bugzilla 1045, 1046)
+	* dmd/toobj.c: update
+
+	* d-glue.cc, d-objfile.cc: Additional GCC 3.3.x cleanup
+
+	----
+
+	* ChangeLog, History, Make-lang.in, asmstmt.cc, d-builtins.c,
+	d-codegen.cc, d-convert.cc, d-decls.cc, d-gcc-includes.h,
+	d-gcc-real.cc, d-glue.cc, d-gt.c, d-irstate.cc, d-lang.cc,
+	d-lang.h, d-misc.c, d-objfile.cc, d-spec.c, phobos/configure.in,
+	setup-gcc.sh: Remove support for GCC 3.3.x
+
+	* phobos/configure: Regenerated
+
+	* gcc-3.3.5-framework-headers.patch,
+	gcc-3.3.5-framework-linker.patch, patch-gcc-3.3.x,
+	patch-gcc-darwin-eh-3.3.x, patch-toplev-3.3.x,
+	phobos/config/ldfuncs33, phobos/config/noldfuncs33,
+	d-bi-attrs-33.h: Removed.
+
+2007-03-05  David Friedman  <dvdfrdmn@users.sf.net>
+
+	Release GDC 0.23
+
+	* phobos/Makefile.am: Add all-local target to build libgphobos.a
+	* phobos/Makefile.in: Regenrated
+
+	PowerPC 64 fixes:
+
+	* d-glue.cc (TypeStruct:toCtype): Add words at the end of a struct.
+
+	* phobos/config/darwin8/frag-unix: More accurate struct definitions.
+	* phobos/internal/gc/gc_dyld.c: Support Mach-O 64.
+	* phobos/internal/gc/gcgcc.d: Correct stack for 64-bit Darwin.
+	* phobos/std/thread.d (getESP): Align result.
+
+2007-03-04  David Friedman  <dvdfrdmn@users.sf.net>
+
+	Rest of DMD 1.007 Merge:
+
+	* package/simple.sh: Install GDC.html
+
+	* Make-lang.in (D_DMD_OBJS): add interpret.dmd.o
+
+	* gdc-version: update
+
+	* GDC.html, d-lang.cc, dmd-script, lang-specs.h, lang.opt,
+	patch-gcc-4.0.x, patch-gcc-4.1.x, patch-apple-gcc-4.0.x,
+	patch-gcc-3.4.x, patch-gcc-3.3.x: Add -J option.
+
+	* dmd/constfold.d, dmd/declaration.h, dmd/func.c: update
+
+	* d-glue.c: update
+
+	Initial merge of DMD 1.007 (from DMD 1.005):
+
+	* dmd/arraytypes.h, dmd/attrib.c, dmd/cond.c, dmd/constfold.c,
+	dmd/declaration.c, dmd/declaration.h, dmd/expression.c,
+	dmd/expression.h, dmd/func.c, dmd/idgen.c, dmd/init.c,
+	dmd/lexer.c, dmd/lexer.h, dmd/mars.c, dmd/mars.h, dmd/module.c,
+	dmd/mtype.c, dmd/opover.c, dmd/optimize.c, dmd/parse.c,
+	dmd/parse.h, dmd/statement.c, dmd/statement.h, dmd/template.c,
+	dmd/typinf.c: Merge
+
+	* phobos/internal/aApply.d, phobos/internal/aApplyR.d,
+	phobos/internal/adi.d, phobos/internal/dmain2.d,
+	phobos/internal/gc/gc.d, phobos/internal/gc/gcx.d,
+	phobos/internal/gc/win32.d, phobos/internal/object.d,
+	phobos/std/base64.d, phobos/std/c/string.d, phobos/std/c/time.d,
+	phobos/std/c/windows/com.d, phobos/std/c/windows/windows.d,
+	phobos/std/dateparse.d, phobos/std/demangle.d, phobos/std/file.d,
+	phobos/std/format.d, phobos/std/regexp.d, phobos/std/stdio.d,
+	phobos/std/stream.d, phobos/std/string.d, phobos/std/thread.d,
+	phobos/std/utf.d: Merge
+
+	* dmd/interpret.c: New file
+
+2007-03-03  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* phobos/std/c/darwin/darwin.d: Remove. (Bugzilla 984)
+
+	* phobos/std/date.d: Cleanup
+
+	* d-lang.cc: Evaluate BYTES_BIG_ENDIAN at runtime.
+
+	* d-codegen.cc: Cleanup.
+
+	* d-glue.cc: Initialize foreach key with zero, not default init.
+
+	* patch-gcc-4.0.x, patch-gcc-4.1.x, patch-apple-gcc-4.0.x:
+	Prevent emission of prologue and epilogue code for naked functions.
+	(Bugzilla 1013)
+
+2007-03-02  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* d-lang.cc: Test BYTES_BIG_ENDIAN at runtime.
+
+	* d-glue.cc (ForeachStatement::toIR): Initialize key to zero, not
+	defaultInit.
+
+	* patch-build_gcc-4.0, phobos/acinclude.m4, phobos/configure.in,
+	phobos/Makefile.am: Remove references to libgphobos.spec
+
+	* phobos/Makefile.in, phobos/configure: Regenerate
+
+	* patch-gcc-3.4.x, patch-gcc-3.3.x, patch-gcc-4.0.x,
+	patch-gcc-4.1.x, patch-apple-gcc-4.0.x: Support enabling
+	-pthread option by default without 'unrecognized option'
+	error message.
+
+	* d-spec.c (lang_specific_driver): Enable -pthread option
+
+	* phobos/libgphobos.spec.in: Remove
+
+2007-02-28  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* phobos/std/loader.d: Fix error
+
+2007-02-27  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* setup-gcc.sh: Create directory of links instead of a single
+	link.  No longer need to copy support files.
+
+	* target-ver-syms.sh: Support targets with both 32-bit and
+	64-bit modes.  Output preprocessor definitions instead of
+	command line otions.
+
+	* Make-lang.in: Put target-ver-syms.sh output in d-confdefs.h.
+
+	* package/simple.sh: Handle multilib.
+
+	* phobos/configure.in: Use Automake, multilib.
+	* phobos/Makefile.am: New file.
+	* phobos/acinclude.m4: Fix quoting.
+
+	* phobos/Makefile.in, phobos/configure: regenerated
+
+	* patch-gcc-3.3.x, patch-gcc-3.4.x, patch-gcc-4.0.x,
+	  patch-gcc-4.1.x, lang-specs.h: Add %N spec code.
+
+	* patch-build_gcc-4.0: Grab 64-bit libgphobos.a
+
+	* dt.h, d-objfile.cc
+	(dt_size): Change return type to target_size_t.  Use target_size_t.
+	(dtnzeros, dtdword, dtxoff): Change count to target_size_t
+	(dtabytes, dtnbytes, dtawords, dtnwords, dtnbits): Change count to size_t
+	(dti32): added
+
+	* d-todt.cc: Cleanup.
+
+	* d-objfile.cc:
+	(dt2node): use Type::tsize_t for DT_word and DT_xoff
+
+	* d-glue.cc:
+	(PtrExp::toElem): Use target_size_t for offset
+	(gcc_d_backend_init): Set CLASSINFO_SIZE and Tindex.
+	(AssignExp::toElem): Use tsize_t for _d_arraycopy arg
+	(CaseStatement::toIR): (not really a 64-bit change) Use int32 for
+	case value to match libcall
+	(CatAssignExp::toElem): cleanup (not 64-bit)
+	(ForeachStatement::toIR): fix bug in key increment expression
+
+	* d-codegen.{cc,h}
+	(AggLayout::addField): use target_size_t for offset
+
+	* d-codegen.cc:
+	(...): LIBCALL_ARRAYCAST: Use size_t args (libcall already uses size_t)
+	LIBCALL_ARRAYCOPY: ditto
+	(convertTo): Use Type::tsize_t for _d_arraycat arguments
+
+	* d-decls.cc
+	(ClassDeclaration::toVtblSymbol): Use Type::tindex for array size.
+	(FuncDeclaration::toThunkSymbol): Use target_ptrdiff_t
+
+	* lang.opt: add -fmultilib-dir
+
+	* d-lang.cc: Use -fmultilib-dir
+
+	(d_init): Set global.params.isX86_64 if TARGET_64BIT.
+	Set CPU version symbol according to TARGET_64BIT.
+	Remove BitsPerPointer and BitsPerWord version symbols.
+
+	* d-builtins2.cc
+	(d_gcc_magic_builtins_module): Change "abi" integer types
+	to "C".  Add "pointer" integer types.
+	(gcc_type_to_d_type): Use Type::tindex for array types.  Use whole
+	back-end size.
+
+	* symbol.h
+	(Thunk): Use target_ptrdiff_t for offset.
+
+	* dmd/mars.h: Define target_size_t and target_ptrdiff_t to allow use of
+	32-bit size-tracking variables when generating 32-bit code.
+
+	* dmd/aggregate.h:
+	(CLASSINFO_SIZE) change to 'extern int' %%....
+	* dmd/cast.d: Use target_ptrdiff_t with isBaseOf.
+
+	* dmd/class.c:
+	(ClassDeclaration::semantic): use PTRSIZE
+	(InterfaceDeclaration::semantic): Use sc->offset = PTRSIZE * 2 instead of
+	8 -- not sure what this is for...
+
+	* dmd/dsymbol.[ch]
+	(Dsymbol::size): Change to target_size_t
+
+	* dmd/init.h: ArrayInitializer::dim <- chg to target_size_t
+
+	* dmd/aggregate.h: Use target_ptrdiff_t and target_size_t
+
+	* dmd/typinf.c (TypeInfoStructDeclaration::toDt): Use dti32 for flags.
+	* dmd/toobj.c (Module::genmoduleinfo, ClassDeclaration::toObjFile,
+	InterfaceDeclaration::toObjFile): ditto
+
+	* dmd/func.c: Use target_ptrdiff_t with isBaseOf.
+	(NewDeclaration::semantic): Allow Type::tuns64 if 64-bit.
+
+	* dmd/mtype.c
+	(Type::init): set CLASSINFO_SIZE
+	(Type::dotExp): use Type::tsize_t for .offsetof property
+	(TypeArray::dotExp): use Type::tsize_t for _adReverse args
+	(TypeAArray::dotExp): use PTRSIZE to align keysize
+	(TypeStruct::dotExp): use Type::tsize_t for offset
+	(TypeStruct::alignsize): use target_size_t
+
+	* dmd/mtype.h: Add Tindex global variable.
+	(Type): Change tindex to baseic[Tindex].
+	(Type::isBaseOf): use target_ptrdiff_t
+
+	* dmd/expression.[ch]:
+	(SymOffExp): offset changed to target_size_t
+	(NewExp::semantic): use size_t as argument
+	(ArrayLiteralExp::toMangleBuffer, SymOffExp::toCBuffer): fix printf
+
+	* dmd/declaration.c
+	(VarDeclaration::semantic): use sinteger_t for dim
+
+	* dmd/declaration.h:
+	(Declaration::size): Use target_size_t
+	(VarDeclaration): Use target_size_t for offset
+
+	* dmd/schope.h:
+	(Scope::offset) Use target_size_t.
+
+	* dmd/statement.c:
+	(ForeachStatement::semantic): Change return value of _a*Apply* to
+	Type::tint32.  Fix logic for allowed index variable types.
+	Use PTRSIZE to align keysize.
+
+	* dmd/struct.c
+	(AggregateDeclaration::addField): use target_size_t
+
+	* dmd/todt.c
+	(StructInitializer::toDt): Use target_size_t for offsets
+	(ClassDeclaration::toDt2): Use PTRSIZE
+
+	* phobos/object.d, phobos/internal/object.d:
+	(Interface): Use ptrdiff_t for offset.
+	(*.toHash): cast pointer to size_t
+
+	* phobos/internal/object.d: Use integer type definitions from
+	phobos/object.d.  Split %.*s args.
+
+	* phobos/internal/adi.d:
+	(_adReverse): Use size_t for szelem.
+	* phobos/configure.in: fix multilib dir
+	* phobos/configure: updated
+
+	* phobos/config/cb_unix.c: Removed.
+
+	* phobos/config/gen_config1.c: Add ssize_t.
+
+	* phobos/config/config-head: Use __builtin_Clong and __builtin_Culong.
+	* phobos/config/config-mid: Support X86_64 and other 64-bit CPUs.
+	* phobos/config/unix-mid: Some size_t and ssize_t arg/return type fixes.
+
+	* phobos/config/darwin8/frag-gen, phobos/config/darwin8/frag-unix:
+	Support 32- and 64-bit.
+	* phobos/config/mingw/frag-unix, phobos/config/skyos/frag-unix:
+	Add ssize_t.
+
+	* phobos/gcc/builtins.d: Update documentation
+
+	* phobos/gcc/unwind.d: Use different builtin integer types.
+
+	* phobos/internal/arraycat.d (_d_arraycopy): use size_t arg
+
+	* phobos/std/c/fenv.d: Add field for 64-bit Linux.
+
+	* phobos/std/c/linuxextern.d: Use C long for timezone.
+
+	* phobos/std/c/stdio.d,
+	  phobos/std/c/stdlib.d, phobos/std/c/math.d,
+	  phobos/std/c/time.d: use C long types
+
+	* phobos/std/stdint.d: Add C long types.
+	Use ptrdiff_t and size_t for *intptr_t types.
+
+	* phobos/std/format.d: Formatting structs on X86_64 looses
+
+	* phobos/internal/cast.d (_d_isbaseof2): change offset to size_t
+
+	* phobos/internal/fpmath.d: Support 64-bit CPUs.
+
+	* phobos/std/file.d: Type of stat.st_size may vary; use auto.
+	(Unix read): Make sure file's size is within range.
+
+	* phobos/crc32.d, phobos/gcstats.d,
+	phobos/internal/qsortg.d:
+	phobos/internal/gc/gc.d (_d_arraycatnT),
+	phobos/internal/gc/gcold.d (_d_arraycatn),
+	phobos/internal/gc/gcx.d,
+	phobos/internal/mars.h,
+	phobos/std/base64.d, phobos/std/bitarray.d, phobos/std/math.d,
+	phobos/std/math2.d, phobos/std/md5sum.d, phobos/std/outbuffer.d,
+	phobos/std/path.d, phobos/std/string.d, phobos/std/uri.d
+	phobos/std/typeinfo/ti_AC.d,
+	use size_t, ptrdiff_t/ssize_t
+
+	* phobos/std/loader.d: Add definitions for 64-bit Mach-O objects.
+
+	* phobos/std/openrj.d, phobos/std/loader.d, phobos/std/moduleinit.d,
+	phobos/std/socket.d, phobos/std/regexp.d, phobos/std/uri.
+	d, phobos/std/zip.d: split '%.*s' args
+
+	* phobos/std/typeinfo/ti_A*.d, phobos/std/typeinfo/ti_ptr.d:
+	fix compare methods
+
+	* phobos/internal/gc/gc_dyld.c: use uintptr_t
+
+	* phobos/std/c/stdio.d, phobos/internal/gc/gcgcc.d:
+	Don't use old version symbols.
+
+	* phobos/std/c/mach/mach.d (natural_t): always a uint
+
+	* phobos/etc/c/zlib.d: use Culog_t
+
+2007-02-13  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* setup-gcc.sh: Copy the removed files from the top-level
+	directory.
+
+2007-02-10  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* phobos/config.guess, phobos/config.sub, phobos/install-sh:
+	Remove files.
+
+	* phobos/std/format.d (putAArray): account for
+	alignment of the value
+
+	* phobos/Makefile.in: fix metastrings.o
+
+2007-02-09  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* phobos/std/format.d (doFormat): use aligntsize
+
+	Rest of DMD 1.005 merge:
+
+	* phobos/Makefile.in (MAIN_OBJS): add metastrings.o
+
+2007-02-08  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* d-lang.cc, lang.opt: support -v1 option
+
+	* lang.opt (d_init_options): set global.params.Dversion
+
+	* dmd-script: -v1 -> -fd-version=1
+
+	* phobos/std/format.d (doFormat): Fix for var args differences
+
+	Initial merge of DMD 1.005:
+
+	dmd/attrib.c, dmd/attrib.h, dmd/cast.c, dmd/cond.c,
+	dmd/constfold.c, dmd/dsymbol.c, dmd/dsymbol.h, dmd/expression.c,
+	dmd/expression.h, dmd/func.c, dmd/idgen.c, dmd/inline.c,
+	dmd/lexer.c, dmd/lexer.h, dmd/mars.c, dmd/module.c, dmd/mtype.c,
+	dmd/mtype.h, dmd/optimize.c, dmd/parse.c, dmd/parse.h,
+	dmd/scope.c, dmd/statement.c, dmd/statement.h, dmd/template.c,
+	dmd/template.h, dmd/toobj.c, dmd/typinf.c: Merge.
+
+	phobos/internal/aaA.d, phobos/internal/gc/gc.d,
+	phobos/internal/object.d, phobos/linux.mak, phobos/std/c/stdlib.d,
+	phobos/std/conv.d, phobos/std/ctype.d, phobos/std/format.d,
+	phobos/std/regexp.d, phobos/std/zlib.d, phobos/std.ddoc,
+	phobos/win32.mak: Merge.
+
+	phobos/std/metastrings.d: New file
+
+2007-02-05  David Friedman  <dvdfrdmn@users.sf.net>
+
+	Release GDC 0.22
+
+	* d-codegen.cc (twoFieldType): Fix back end -> front end type
+	mapping.
+
+	* Make-lang.in: Enable ELFOBJ to put some RTTI in the read-only
+	data section.
+
+	* GDC.html: Update
+
+2007-02-04  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* phobos/gcc/cbridge_time.c (_d_gnu_cbridge_tza),
+	phobos/std/date.d: Fix timezone adjust sign
+
+2007-02-03  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* phobos/config/unix-mid: Correctly initialize sockaddr*
+	(Bugzilla 818)
+
+	* dmd-script: Fix -H* options (Bugzilla 896).
+	Support -framework. Fix error message.
+
+	* d-lang.cc (d_write_global_declarations), patch-gcc-4.1.x:
+	Fixes for dwarf2out ICEs
+
+	* d-objfile.cc (check_static_sym): Fix setting TREE_CONSTANT.
+
+	Rest of DMD 1.004 merge:
+
+	* gcc-mars.cc, gdc-version: Update
+
+	* phobos/std/regexp.d: update
+
+	* phobos/internal/gc/gcold.d (_d_newarrayip):
+
+	* phobos/internal/gc/gc.d: Fix argument and result types.
+
+	* phobos/config/unix-head, phobos/config/unix-mid: Update
+
+	* phobos/Makefile.in: Update for files removed in DMD 1.004
+
+	* d-decls.cc (TypedefDeclaration::toInitializer): Copy
+	from dmd/tocsym.c.  Create the Sdt here.
+
+	* dmd/toobj.c (TypedefDeclaration::toObjFile): Update
+	for toInitializer change
+
+	* dmd/mtype.c (TypeArray::dotExp): Fix library call decls
+
+	* d-lang.cc: Update
+
+	* d-codegen.[ch], d-glue.cc: Update memory allocation library
+	calls.
+
+	* d-lang.cc (d_write_global_declarations): call
+	emit_debug_global_declarations only for GCC 4.0
+
+	* dmd/mtype.c (TypeArray::dotExp): update
+
+	* phobos/config/unix-head, phobos/config/unix-mid: update
+
+	* phobos/internal/gc/gcold.d: Use old GDC modifications.
+
+2007-02-02  David Friedman  <dvdfrdmn@users.sf.net>
+
+	Initial merge DMD 1.004:
+
+	* dmd/aggregate.h, dmd/attrib.c, dmd/attrib.h, dmd/declaration.c,
+	dmd/declaration.h, dmd/dsymbol.c, dmd/dsymbol.h, dmd/expression.c,
+	dmd/import.c, dmd/import.h, dmd/inline.c, dmd/mars.c, dmd/mars.h,
+	dmd/module.c, dmd/module.h, dmd/mtype.c, dmd/mtype.h,
+	dmd/struct.c, dmd/template.c, dmd/template.h, dmd/tocsym.c,
+	dmd/todt.c, dmd/toobj.c, dmd/typinf.c: Merge DMD 1.004
+
+	* phobos/internal/aaA.d, phobos/internal/adi.d,
+	phobos/internal/arraycast.d, phobos/internal/arraycat.d,
+	phobos/internal/gc/gc.d, phobos/internal/gc/gcx.d,
+	phobos/internal/gc/linux.mak, phobos/internal/gc/win32.mak,
+	phobos/internal/object.d, phobos/linux.mak, phobos/object.d,
+	phobos/std/c/linux/linux.d, phobos/std/compiler.d,
+	phobos/std/file.d, phobos/std/gc.d, phobos/std/outbuffer.d,
+	phobos/std/random.d, phobos/std/regexp.d,
+	phobos/std/typeinfo/ti_AC.d, phobos/std/typeinfo/ti_Acdouble.d,
+	phobos/std/typeinfo/ti_Acfloat.d, phobos/std/typeinfo/ti_Acreal.d,
+	phobos/std/typeinfo/ti_Adouble.d, phobos/std/typeinfo/ti_Afloat.d,
+	phobos/std/typeinfo/ti_Ag.d, phobos/std/typeinfo/ti_Aint.d,
+	phobos/std/typeinfo/ti_Along.d, phobos/std/typeinfo/ti_Areal.d,
+	phobos/std/typeinfo/ti_Ashort.d, phobos/std/typeinfo/ti_C.d,
+	phobos/std/typeinfo/ti_cdouble.d, phobos/std/typeinfo/ti_cfloat.d,
+	phobos/std/typeinfo/ti_char.d, phobos/std/typeinfo/ti_creal.d,
+	phobos/std/typeinfo/ti_dchar.d, phobos/std/typeinfo/ti_delegate.d,
+	phobos/std/typeinfo/ti_double.d, phobos/std/typeinfo/ti_float.d,
+	phobos/std/typeinfo/ti_ptr.d, phobos/std/typeinfo/ti_real.d,
+	phobos/std/typeinfo/ti_void.d, phobos/std/typeinfo/ti_wchar.d,
+	phobos/win32.mak: Merge DMD 1.004
+
+	* phobos/std/typeinfo/ti_Aa.d, phobos/std/typeinfo/ti_Adchar.d,
+	phobos/std/typeinfo/ti_Aubyte.d, phobos/std/typeinfo/ti_Auint.d,
+	phobos/std/typeinfo/ti_Aulong.d, phobos/std/typeinfo/ti_Aushort.d,
+	phobos/std/typeinfo/ti_Awchar.d: Removed in DMD 1.004
+
+	* phobos/internal/gc/gcold.d: New in DMD 1.004
+
+2007-02-01  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* d-lang.cc (d_write_global_declarations): Emit debug info.
+
+	* d-codegen.cc (twoFieldType): Fix debugging information.
+	* d-objfile.cc (initTypeDecl): Ditto.
+
+	* d-glue.cc (PtrExp::toElem): Don't wrap the result in
+	a NOP_EXPR.
+
+	* Make-lang.in: Add d-tree.def to dependencies
+
+2007-01-30  David Friedman  <dvdfrdmn@users.sf.net>
+
+	GCC 4.1.x changes:
+
+	* GDC.html, INSTALL, INSTALL.html, README: update
+
+	* dmd/idgen.c, dmd/impcnvgen.c, dmd/mtype.h: Change to allow
+	compilation as C.
+
+	* patch-gcc-4.1.x, patch-toplev-4.1.x: New files
+
+	* Make-lang.in: Use $(version) instead of $(gcc_version).
+	Add d-bi-attrs-41.h.  Use C for generator programs instead of C++.
+
+	* d-bi-attrs-41.h: New file.
+
+	* d-builtins.c: update
+
+	* d-builtins2.cc: Do not associate d_gcc_builtin_va_list_d_type with
+	va_list_type_node.  Do this for GCC 4.0 and 4.1.
+
+	* d-codegen.cc: Use CtorEltMaker.
+	(maybeExpandSpecialCall): Cast d_gcc_builtin_va_list_d_type to
+	va_list_type_node.
+	(hostToTargetString): Update.
+
+	* d-codegen.h: Add CtorEltMaker class for before/after 4.1.x
+	compatibility.
+
+	* d-convert.cc: Add special case for pointer/int comparison
+
+	* d-decls.cc: Do not use SET_DECL_ASSEMBLER_NAME for CONST_DECLs
+
+	* d-gcc-includes.h: Include vec.h
+
+	* d-glue.cc: Use CtorEltMaker.
+	(gcc_d_backend_init): Call default_init_unwind_resume_libfunc
+
+	* d-lang.cc: Add d_types_compatible_p hook for va_list conversion
+
+	* d-lang.h: Update
+
+	* d-objfile.cc: CtorEltMaker.
+
+	* phobos/std/conv.d: Do not assume signed integer wraparound.
+
+2007-01-28  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* d-asm-i386.h, d-codegen.cc, d-gcc-real.cc,
+	d-decls.cc, d-glue.cc, d-lanc.cc: various fixes
+
+	* d-codegen.cc, d-codegen.h, d-glue.cc, d-lang.h:
+	Remove bit array code
+
+2007-01-27  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* d-asm-i386.h: fix fistp, lmsw, lldt, mov[sz]x, setCC, smsw, and
+	sldt instructions (Bugzilla 836, 837, 838, 839, 841, 843, 844).
+	Also r[co][lr].
+
+	* d-glue.cc (StringExp::toElem): Correct termination of wchar
+	and dchar (Bugzilla 889)
+
+2007-01-11  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* INSTALL.html: fix corruption
+
+2007-01-03  David Friedman  <dvdfrdmn@users.sf.net>
+
+	Release GDC 0.21
+
+	* GDC.html: New file.
+
+	* README: Update, refer to GDC.html
+
+	Rest of DMD 1.00 merge:
+
+	* d-codegen.cc: Patch from Anders Bjšrklund for GCC 3.3
+
+	* d-glue.cc (FuncDeclaration::toObjFile): Fix shouldDefer/outputStage
+	logic.
+
+	* dmd/attrib.c (PragmaDeclaration::semantic): uint -> unsigned
+
+	* dmd/module.c (load): output to stdmsg
+
+	* dmd/mtype.c: revert '@' mangling changes
+
+	* gdc-version, gcc-mars.cc: update
+
+	* phobos/config/unix-mid: Support more functions
+
+	* phobos/acinclude.m4, phobos/config/gen_unix.c (c_pthread):
+	Support more types
+
+	* phobos/configure, phobos/config.h.in: update
+
+	* phobos/config/darwin8/frag-unix: update
+
+	Initial merge of DMD 1.00:
+
+	* dmd/cond.c, dmd/constfold.c, dmd/delegatize.c, dmd/dsymbol.c,
+	dmd/enum.c, dmd/expression.c, dmd/expression.h, dmd/init.c,
+	dmd/inline.c, dmd/mars.c, dmd/module.c, dmd/module.h, dmd/mtype.c,
+	dmd/parse.c, dmd/statement.c, dmd/struct.c, dmd/template.c,
+	dmd/todt.c: Merge 1.00
+
+	* internal/gc/gc.d, phobos/linux.mak,
+	phobos/std/c/linux/linux.d.orig-dmd, phobos/std/c/stdlib.d,
+	phobos/std/conv.d, phobos/win32.mak: Merge 1.00
+
+	* phobos/std/c/linux/pthread.d.orig-dmd: New file (originally
+	pthread.d DMD)
+
+	------------------------
+
+	* dmd/init.c (ArrayInitializer::semantic),
+	* dmd/root.c (OutBuffer::write4): 64-bit host cleanup
+
+	* d-asm-i386.h: cleanup, saftey
+
+2007-01-02  DF  <dvdfrdmn@users.sf.net>
+
+	* d-codegen.cc (convertTo): Use 64-bit for Tarray, Tsarray conversion.
+
+	* d-codegen.{h, cc} (darrayVal): use uinteger_t arg
+
+
+Copyright (C) 2007 Free Software Foundation, Inc.
+
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
diff --git a/gcc/d/ChangeLog-2008 b/gcc/d/ChangeLog-2008
new file mode 100644
index 00000000000..23dc712dbf3
--- /dev/null
+++ b/gcc/d/ChangeLog-2008
@@ -0,0 +1,331 @@
+2008-12-12  Arthur Loiret  <arthur.loiret@u-psud.fr>
+
+	Bugzilla 929:
+
+	* dmd/mtype.c: Provide isZeroInit() overload in TypeAArray that
+	returns TRUE.
+	* dmd/mtype.h: Add prototype for TypeAArray::isZeroInit().
+
+	* dmd2/mtype.c, dmd2/mtype.h: Ditto.
+
+2008-07-21  David Friedman  <David Friedman>
+
+	* dmd/root.c, dmd2/root.c: Fix earlier patching error.
+
+	* phobos/config/x3.c, phobos2/config/x3.c: Fix problem when
+	building under MSYS.
+
+	* config-lang.in: Remove lang_requires.
+
+2008-07-20  David Friedman  <David Friedman>
+
+	* dmd/expression.c, dmd2/expression.c: Make integer conversion
+	fix work for other hosts/targets.
+
+2008-07-20  Arthur Loiret  <arthur.loiret@u-psud.fr>
+
+	* dmd/expression.c: Fix integer conversion routines on x86_64.
+	Patch from downs <default_357-line@yahoo.de>, thanks!
+	* dmd2/expression.c: Likewise.
+
+	* config-lang.in: Add lang_requires="c c++".
+
+2008-07-19  David Friedman  <David Friedman>
+
+	* patches/patch-gcc-4.0.x, patches/patch-gcc-4.1.x: Fix infinite
+	loop bug in patch.
+	* patches/patch-apple-gcc-4.0.x: Ditto.
+
+	* d-lang.cc: Do not assume D_OS_VERSYM is defined.
+	Handle TARGET_xxx_CPP_BUILTINS macros for more targets.
+
+2008-07-17  David Friedman  <dvdfrdmn@users.sf.net>
+
+        * dmd-script: Append an exe suffix to executables when the
+        target is Windows.
+
+	* phobos/gcc/deh.d, phobos2/gcc/deh.d: Fix for sjlj exceptions.
+
+2008-06-16  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* d-decls.cc: Correct logic for output constanting vars for V1.
+
+2008-06-01  David Friedman  <dvdfrdmn@users.sf.net>
+
+	Merge DMD.1.30 and 2.014
+
+	* dmd-script: Implement -man, -lib and single-object features.
+
+	* phobos2/Makefile.am: add bigint
+
+	* phobos2/config/{ldfuncs,ldfuncs-darwin,ldfuncs-ppclinux,noldfuncs},
+	Merge nanl change from std/c/math.d
+
+	* phobos2/gcc/support.d: Merge std/c/math.d changes.
+
+	* d-objfile.cc (obj_append): Implement.
+	* phobos2/std/c/unix/unix.d: Merge linux.d and socket.d changes
+
+	* d-glue.cc, d-irstate.cc, d-lang.cc: Update
+
+	* dmd/..., dmd2/..., phbobos/..., phobos2/...: Merge
+
+2008-05-26  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* asmstmt.cc, d-decls.cc, d-glue.cc, d-misc.c, d-objfile.{cc, h}:
+	Fix for -combine compilation.  Remove fileContext global and clean
+	up generation of unique symbol names.
+
+	* phobos/internal/object.d: Correct merge error
+
+	----
+
+	* dmd-script, lang.opt, d-lang.cc, : support -ignore
+
+	Merge DMD 1.029 and 2.013
+
+	* phobos2/std/perf.d: use std.c.unix.unix
+
+2008-05-22  Arthur Loiret  <arthur.loiret@u-psud.fr>
+
+	* target-ver-syms.sh: Add missing CPUs and fix
+	d_cpu_versym/d_cpu_versym64 for each.
+
+	* d-lang.cc: Fix build on non biarched 64-bit archs (alpha, ia64, ...)
+	and fix 64-bit cpu detection.
+
+	* Move patch-* to patches/
+	* setup-gcc.sh: Update.
+
+2008-05-10  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* lang-specs.h: Support a "cc1d" spec. (Bugzilla 2068)
+
+	Merge DMD 1.028 and 2.012
+
+	* d-codegen.{h,cc}: Add postblitting array libcalls.
+
+	* phobos2/internal/arrayassign.d
+	(_d_arraysetassign, _d_arraysetctor): Use size_t.
+
+	* d-glue.cc (AssignExp::toElem): Postblit-aware code
+
+	* phobos2/Makefile.am: Add arrayssign.d. Remove math2.d.
+
+	* dmd/..., dmd2/..., phbobos/..., phobos2/...: Merge
+
+2008-05-03  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* d-dmd-gcc.h, d-glue.cc, dmd*/toobj.c: Cleanup: Remove unused
+	d_gcc_aggregate_dtors.
+
+2008-05-02  David Friedman  <dvdfrdmn@users.sf.net>
+
+	Merge DMD 1.027 and 2.011
+
+	* termios.d: Point to std.c.unix.unix.  Leave original
+	termios.d as termios.d.orig-dmd
+
+	* asmstsmt.cc: Implement blockExit
+
+	* phobos2/config/unix.x3: Add termios stuff
+
+	* phobos2/std/c/unix/unix.d: Merge new funcs from std.c.linux.d
+
+	* d-objfile.cc: Implement stub obj_startaddress
+
+	* d-glue.cc (ForStatement::toIR): condition may be NULL
+	(DeleteExp::toIR): Use libcalls for interfaces
+
+	* dmd*/clone.c, dmd*/e2ir.c: New files.
+
+	* Make-lang.in: Add new clone.c
+
+	* d-codegen.{h, cc}, d-glue.cc: Use _d_callinterfacefinalizer.
+	Also use _d_delinterface instead of casting.
+
+	* dmd/..., dmd2/..., phbobos/..., phobos2/...: Merge
+
+2008-04-27  David Friedman  <dvdfrdmn@users.sf.net>
+
+	Merge DMD 1.026 and 2.010
+
+	* dmd/..., dmd2/..., phbobos/..., phobos2/...: Merge
+
+	---
+
+	* d-lang.cc (d_write_global_declarations): Make earlier change
+	regarding cgraph_optimize only apply to 4.0.x.
+
+	---
+
+	* d-decls.cc (VarDeclartion::toSymbol): Change for
+	V2 STCmanifest.  Make more constant vars have
+	static storage (instead of making CONST_DECLs) in
+	both V1 and V2.
+
+	* dmd2/constfold.c (Cmp): Compare wchar	and dchar
+	strings portably.
+
+	* asmstmt.cc (ExtAsmStatement::semantic): Heuristic
+	for evaluating operands:  If an input operand, evaluate.
+
+	* d-asm-i386.h: Make previous change apply to V1.
+
+	* d-glue.cc (TypeEnum::toCtype): Update.
+
+	Phobos changes (applies to V2 Phobos as well):
+
+	* phobos/Makefile.am, phobos/configure.in:
+	Deal with strerror_r portability.
+
+	* phobos/Makefile.in, phobos/configure, phobos/config.h.in:
+	Updated.
+
+	* phobos/gcc/cbridge_strerror.c: New file.
+
+	* phobos/std/c/string.d: Replace non-portable strerror_r with
+	_d_gnu_cbridge_strerror.
+
+	* phobos/std/file.d, phobos/std/loader.d, phobos/std/process.d,
+	phobos/std/socket.d, phobos/std/stdio.d: Use
+	_d_gnu_cbridge_strerror.
+
+	Merge DMD 2.009:
+
+	* dmd2/..., phobos2/...: Merge.
+
+	Merge DMD 1.025:
+
+	* dmd/..., phobos/...: Merge.
+
+2008-04-25  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* asmstmt.cc, d-asm-i386.h: Handle some other cases
+	for constant floating point operands.
+
+2008-04-19  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* dmd/toobj.c, dmd2/toobj.c (EnumDeclaration::toObjFile):
+	Output initializer correctly.
+
+	* d-decls.cc (EnumDeclaration::toInitializer): Correctly
+	set up initializer symbol. (Bugzilla 1746)
+
+2008-04-17  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* dmd/toobj.c (InterfaceDeclaration::toObjFile): Fix error.
+	(Bugzilla 1844)
+
+2008-04-16  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* d-codegen.{h, cc}: Clean up nested function / nested class /
+	closure code.
+
+	* phobos/std/c/stdlib.d, phobos2/...: Remove comment that hides
+	atof. (Bugzilla 1888)
+
+2008-03-11  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* d-glue.cc: cleanup
+
+	* dmd/expression.c (DotVarExp::semantic): Apply fix from dmd2/
+
+	* dmd2/expression.c (DotVarExp::semantic): Move fix to
+	better location.
+
+2008-03-09  David Friedman  <dvdfrdmn@users.sf.net>
+
+	* dmd2/func.c (FuncDeclaration::needsClosure): Closures fix:
+	Change test from isVirtual to isThis.
+
+	* dmd2/expression.c (DotVarExp::semantic): Note change from DMD.
+
+	----
+
+	* patch-build_gcc-5465: Correctly build driver-driver
+
+	* phobos*/Makefile.am (MAIN_OBJS): Add std/cover.o
+
+	* phobos2/std/file.d: use 'mkdir -p' in unittest
+
+	* d-builtins2.cc: Fixes for pointer-to-function types (for V2)
+
+	* d-codegen.cc: Add _d_allocmemory libcall.
+	(emitLocalVar): Rework.
+	(var): New function to handle static-frame/closure variables
+	(convertTo): Use typesSame instead of typesCompatible
+	(assignValue): New function to handle Exp(v=value) vs. Exp(value)
+	(getFrameForFunction, getFrameForNestedClass): New interface
+	to get frames for nested functions.
+	(functionNeedsChain): Return false for nested functions that
+	take closures.
+
+	* d-decls.cc: Changes for const/invariant/STCinit
+
+	* d-glue.cc: Use new interface for nested functions.  Use
+	IRState::var instead of v->toSymbol()->Stree.  Create
+	closures.
+
+	* d-lang.cc: Implement CONVERT_PARM_FOR_INLINING hook
+
+	* d-objfile.cc: Add case for closure-using function when
+	setting the link-once attribute.
+
+	* package/simple.sh: install .../include/d2
+
+	* patch-build_gcc-4.0, patch-build_gcc-5465: Support D 2.0
+	includes and libraries.
+
+	* phobos2/std/bitmanip.d: Apply previous bitarray.d changes.
+
+	* phobos*/std/typeinfo/ti_ptr.d (getHash): Cast to hash_t.
+
+	* d-decls.cc (VarDeclaration::toSymbol): For D 2.0, use
+	isInvariant() and STCinit as criteria for making CONST_DECLs and
+	setting TREE_READONLY.
+
+	* phobos2/std/c/linux/linux.d: Do not import std.c.dirent.
+
+	* phobos2/std/c/dirent.d: Deprecated std.c.dirent.
+
+	* phobos2/std/c/unix/unix.d: Move dirent/DIR routines here.
+
+	* phobos*/std/c/darwin/ldblcompat.d: declare constants as 'string'
+
+	Merge DMD 2.008:
+
+	* dmd2/..., phobos2/...: Merge.
+
+	Merge DMD 1.024:
+
+	* phobos*/config/unix.x3: ensure MSG_NOSIGNAL is defined
+
+	* dmd/..., phobos/...: Merge.
+
+	------
+
+	* patch-apple-gcc-4.0.x, patch-apple-gcc-5465: Include patch
+	for SRA pass like the other 4.x patches.
+
+	* d-codegen.cc (convertTo): Ensure pointers are cast to an
+	unsigned type.
+
+	* d-objfile.cc (dt2tree_list_of_elems): Always generate a
+	CONSTRUCTOR for struct data.
+	(ObjectFile::ObjectFile): Use NULL_TREE for file context instead
+	of TRANSLATION_UNIT_DECL.
+
+	* d-lang.cc (d_write_global_declarations): Call
+	debug_hooks->global_decl before cgraph_optimize so that nested
+	class functions do not get passed to dwarf2out before the
+	outer class functions.
+
+	* Rename patch-build_gcc-4.0 to patch-build_gcc-4.0.x
+
+
+Copyright (C) 2008 Free Software Foundation, Inc.
+
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
diff --git a/gcc/d/ChangeLog-2009 b/gcc/d/ChangeLog-2009
new file mode 100644
index 00000000000..90a204d0497
--- /dev/null
+++ b/gcc/d/ChangeLog-2009
@@ -0,0 +1,185 @@
+2009-12-28  michaelp  <baseball.mjp@gmail.com>
+
+	Merge with DMD 1.043
+
+	* phobos/configure.in: Changed part of phobos configure.
+
+	* samples/README, samples/samples.sh: Uploading the start of the some
+	small tests to help in the testing of GDC/D components.
+
+	* Make-lang.in,	d-lang.cc, dmd/machobj.c, phobos/config/unix.x3,
+	phobos/std/file.d, phobos/std/moduleinit.d, phobos/std/socket.d: Fixed
+	problem when building on Mac OS X.
+
+2009-12-05  michaelp  <baseball.mjp@gmail.com>
+
+	Merge with DMD 1.042
+
+	* Make-lang.in: Added async.dmd.o
+
+	* d-asm-i386.h, d-codegen.h: Merge changes from	dmd/constfold.c.
+
+	* d-codegen.h, phobos2/aclocal.m4, phobos2/configure.in: Fixed
+	problems with D2.
+
+2009-11-22  michaelp  <baseball.mjp@gmail.com>
+
+	Merge with DMD 1.041
+
+	* Make-lang.in: Update for files added in DMD 1.041.
+
+	* d-backendfunctions.c: Added stubs for functions in the backend that
+	cannot be included in the front end source.
+
+	* dmd-script: Added Bitbucket page to display for gdmd wrapper script.
+
+2009-11-07  Vincenzo Ampolo  <vincenzo.ampolo@gmail.com>
+
+	Changes to GCC-4.4.x branch:
+
+	* tools/makewebstatistics.d: Added d tool to generate webstats about
+	dstress in D2.
+
+2009-10-25  michaelp  <baseball.mjp@gmail.com>
+
+	Merge with DMD 1.040
+
+	* dmd/..., phobos/...: Now working for D1 (Not on GCC 4.3.4?)
+
+	* asmstmt.cc: Merge from dmd/statement.c
+
+	* phobos/acinclude.m4, phobos/configure.in, phobos/phobos-ver-syms.in:
+	Posix is now defined.
+
+2009-10-24  Vincenzo Ampolo  <vincenzo.ampolo@gmail.com>
+
+	* dmd/attrib.c, dmd/cast.c, dmd/class.c, dmd/constfold.c,
+	dmd/declaration.c, dmd/dsymbol.c, dmd/expression.c, dmd/toobj.c: Fixes
+	some errors in the DMD v1 frontend. Trying to fix DMD 1.039, but still
+	no fix. The problem may be in phobos then.
+
+	Changes to GCC-4.4.x branch:
+
+	* d-lang.cc, d-lang.h setup-gcc.sh, patches/patch-gcc-4.4.x,
+	patches/patch-toplev-4.4.x: Applied Eldar patches for gcc 4.4.0
+
+2009-10-07  Vincenzo Ampolo  <vincenzo.ampolo@gmail.com>
+
+	* dmd2/attrib.c, dmd2/class.c, dmd2/declaration.c, dmd2/doc.c,
+	dmd2/dsymbol.h, dmd2/func.c, dmd2/parse.c, dmd2/statement.c,
+	dmd2/template.c, dmd2/toir.c: 2.015 WORKING ;)
+
+	* dmd2/parse.c: Fixed problem with static if.
+
+	* dmd2/template.c: Fixed problem with tuples.
+
+	* Makefile-lang.in: Update for files added in DMD 2.015.
+
+2009-10-01  Vincenzo Ampolo  <vincenzo.ampolo@gmail.com>
+
+	Changes to 2.032 branch:
+
+	* dmd2/..., phobos2/...: Force merge with 2.032 - NOT WORKING AT ALL.
+	- Adding new files.
+
+2009-10-04  michaelp  <baseball.mjp@gmail.com>
+
+	Merge with DMD 1.039
+
+	* d-decls.cc: Merge changes from dmd/mtype.h.
+
+	* phobos/internal/aaA.d, phobos/std/stdio.d: Small Phobos fix.
+
+2009-09-30  Vincenzo Ampolo  <vincenzo.ampolo@gmail.com>
+
+	* phobos2/internal/aaA.d, phobos2/linux.mak, phobos2/std/algorithm.d,
+	phobos2/std/functional.d, phobos2/std/math.d, phobos2/std/thread.d:
+	DMD 2.015 Phobos changes.
+
+	* Make-lang.in: Fixed a problem introduced by Michael modifying a
+	common file between D1 and D2.
+
+
+2009-09-29  michaelp  <baseball.mjp@gmail.com>
+
+	Merge with DMD 1.036
+
+2009-09-28  Vincenzo Ampolo  <vincenzo.ampolo@gmail.com>
+
+	Merge with DMD 2.015
+
+	* dmd2/mtype.h, dmd2/parse.c: Fixed parser in D2.
+
+	* dmd2/template.c, dmd2/toobj.c: Other fixes.
+
+2009-09-28  michaelp  <baseball.mjp@gmail.com>
+
+	Merge with DMD 1.035
+
+	* d-objfile.cc: Merge changes from dmd/attrib.c.
+
+	* phobos/Makefile.in, phobos/internal/arraydouble.d,
+	phobos/internal/arrayfloat.d: Included arraydouble, arrayfloat, and
+	arrayreal in libphobos Makefile.
+
+	* asmstmt.cc, dmd/statement.c, dmd/statement.h, phobos/std/math.d: Fixed
+	Phobos std.math bug.
+
+2009-09-25  michaelp  <baseball.mjp@gmail.com>
+
+	Merge with DMD 1.033
+
+2009-09-17  Vincenzo Ampolo  <vincenzo.ampolo@gmail.com>
+
+	* dmd2.032/...: Initial import of version 2.032.
+
+	* setup-gcc.sh, dmd/.svn/...: Removed .svn directory.
+
+2009-09-13  michaelp  <baseball.mjp@gmail.com>
+
+	* phobos/std/boxer.d phobos/std/dateparse.d: Fixed phobos build and
+	possible implicit conversion errors in boxer.d.
+
+	* d-objfile.cc: Removed assert(0) line 926.
+
+2009-09-13  Vincenzo Ampolo  <vincenzo.ampolo@gmail.com>
+
+	* History gdc-version: Changed version.
+
+	* phobos2/config/x3, setup-gcc.sh: Added support for DMD 2.
+
+	* phobos2/std/c/string.d, phobos2/std/contracts.d: Fixed a std.string
+	bug following these guidelines:
+	http://www.digitalmars.com/d/archives/D/gnu/strerror_r_3403.html
+
+	* phobos2/std/contracts.d, phobos2/std/date.d, phobos2/std/dateparse.d,
+	phobos2/std/file.d, phobos2/std/md5.d, phobos2/std/path.d,
+	phobos2/std/random.d, phobos2/std/stdio.d: Fix DMD 2 for GCC-4.3.4
+
+2009-09-11  Vincenzo Ampolo  <vincenzo.ampolo@gmail.com>
+
+	Switching to Mercurial branch system.
+
+	* d/...: Setting up default branch with GCC-4.3.x support.
+
+	* branches/gcc-4.1/...: Starting gcc-4.1.x stable branch.
+
+	* setup-gcc.sh, target-ver-syms.sh: Fixed permission problems in
+	bash scripts.
+
+2009-09-10  Vincenzo Ampolo  <vincenzo.ampolo@gmail.com>
+
+	* trunk/...: Import of gdc 0.24 stable into bitbucket.
+
+2009-01-31  Arthur Loiret  <arthur.loiret@u-psud.fr>
+
+	* d-glue.cc, d-objfile.cc, d-codegen.cc, d-lang.h, d-builtins2.cc,
+	d-convert.cc, d-codegen.h: Replace calls to build macro by appropriate
+	buildN function (build is removed in GCC > 4.1).
+
+
+Copyright (C) 2009 Free Software Foundation, Inc.
+
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
diff --git a/gcc/d/ChangeLog-2010 b/gcc/d/ChangeLog-2010
new file mode 100644
index 00000000000..40c8fa45cd3
--- /dev/null
+++ b/gcc/d/ChangeLog-2010
@@ -0,0 +1,1484 @@
+2010-12-28  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-lang.cc, d/patches/patch-apple-gcc-5465,
+	d/patches/patch-apple-gcc-5664, d/patches/patch-gcc-4.0.x,
+	d/patches/patch-gcc-4.1.x, d/patches/patch-gcc-4.2.x,
+	d/patches/patch-gcc-4.3.x, d/patches/patch-gcc-4.4.x,
+	d/patches/patch-gcc-4.5.x: New function added to langhooks:
+	d_dump_tree
+	[8a2198026630]
+
+	* d/d-lang.cc, d/patches/patch-apple-gcc-5465,
+	d/patches/patch-apple-gcc-5664, d/patches/patch-gcc-4.0.x,
+	d/patches/patch-gcc-4.1.x, d/patches/patch-gcc-4.2.x,
+	d/patches/patch-gcc-4.3.x, d/patches/patch-gcc-4.4.x,
+	d/patches/patch-gcc-4.5.x, d/phobos2/Makefile.am,
+	d/phobos2/Makefile.in: New function added to langhooks:
+	d_gimplify_expr
+	[0d43883dcc75]
+
+	* d/d-builtins2.cc, d/druntime/core/stdc/complex.d,
+	d/druntime/rt/complex.c, d/phobos2/Makefile.am, d/phobos2/Makefile.in:
+	D2 - Use GCC builtins in core.stdc.complex
+	[d13bd5912295]
+
+	* d/d-codegen.cc, d/d-glue.cc: Issue #109 - segfault in memcpy()
+	[80c61a61f254]
+
+2010-12-23  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/Make-lang.in, d/asmstmt.cc, d/d-bi-attrs-45.h, d/d-c-stubs.c,
+	d/d-cppmngl.cc, d/d-gcc-includes.h, d/d-glue.cc, d/d-lang-45.h,
+	d/d-lang.cc, d/dmd2/*, d/druntime/*, d/phobos2/*: Updated to 2.051.
+	[9d12fbe44d3]
+
+	* d/phobos2/Makefile.am, d/phobos2/Makefile.in: D2 - Move generated
+	headers out of the way so as they don't interfere with build process.
+	[c52428bb97b]
+
+	* /druntime/rt/aaA.d, d/druntime/rt/adi.d, d/druntime/rt/lifetime.d,
+	d/druntime/rt/memory.d, d/druntime/rt/qsort.d,
+	d/druntime/rt/switch_.d, d/druntime/rt/util/string.d: Merge
+	differences between GDC and DMD Druntime. Should fix Issue #129
+	[1d6e8e716ae3]
+
+	* d/d-glue.cc, d/d-lang.cc, d/druntime/rt/dmain2.d,
+	d/phobos2/Makefile.am, d/phobos2/Makefile.in,
+	d/phobos2/gcc/bitmanip.d: Fix codegen in ArrayLiteralExp; Split cmain
+	from dmain2 in druntime; Update gcc.bitmanip for 2.051.
+	[b1393d6cc45a]
+
+	* d/d-codegen.cc, d/d-codegen.h, d/d-glue.cc, d/d-lang.cc,
+	d/d-objfile.cc, d/dt.cc: Use build_constructor to make constructor
+	nodes.
+	[bd721e198eff]
+
+2010-12-17  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-codegen.h, d/d-glue.cc, d/dmd/expression.c, d/dmd2/expression.c:
+	Fix handling of _argptr after commit 398.
+	[95992bb703de]
+
+	* d/d-lang.cc, d/patches/patch-gcc-4.4.x: Issue #104 revisited -
+	easier to instead fix in GCC.
+	[dedbc5dc14a9]
+
+	* d/d-lang.cc: Issue #104 - ICE on inlining nested struct member
+	functions
+	[eb09c05188ea]
+
+	* d/d-decls.cc: Issue #85 - template functions not inlined.
+	[c9db2183900a]
+
+2010-12-12  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-builtins2.cc, d/d-lang.cc, d/dmd2/toobj.c: D2 - tighten up
+	purity set on builtins.
+	[677ff59c566]
+
+	* d/GDC.html, d/dmd/attrib.c, d/dmd/idgen.c, d/dmd2/attrib.c,
+	d/dmd2/idgen.c, d/phobos/gcc/unwind_arm.d, d/phobos2/gcc/unwind_arm.d:
+	GNU_attribute and GNU_set_attribute deprecated for promoting attribute
+	and set_attribute.
+	[99b197365502]
+
+	* d/d-glue.cc, d/d-objfile.cc, d/dmd2/expression.c, d/dmd2/todt.c:
+	cleanup todt; testsuite fixes.
+	[3ee0b55b9fcc]
+
+2010-12-10  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-builtins2.cc, d/d-dmd-gcc.h, d/dmd2/builtin.c,
+	d/dmd2/declaration.h, d/dmd2/expression.c, d/dmd2/interpret.c: Power
+	operators ^^ now working in CTFE.
+	[d804e40bb245]
+
+	* d/d-codegen.cc, d/d-codegen.h, d/d-glue.cc: Issue #121 - ICE in
+	gimple_rhs_has_side_effects.
+	[63a29e175dba]
+
+	* d/d-codegen.cc, d/d-codegen.h, d/d-gcc-real.h, d/d-irstate.h,
+	d/d-lang.h, d/d-objfile.h, d/dt.h: Glue Header code cleanups.
+	[42d36e6321f5]
+
+	* d/phobos2/std/math.d: Issue #113 - std.math: cos/sin forward
+	declaration issue.
+	[089fa0826192]
+
+	* d/d-asm-i386.h, d/phobos2/std/math.d: Add special case for fdiv/fsub
+	opcodes.
+	[69b717b206e1]
+
+	* d/asmstmt.cc, d/d-asm-i386.h, d/d-codegen.cc: Glue code cleanups.
+	[03e46b45acfc]
+
+	* d/d-asm-i386.h, d/dmd2/expression.c, d/phobos2/std/math.d:
+	off-by-one Inline asm fix.
+	[9f3bb8c3e1e4]
+
+	* d/d-builtins2.cc, d/d-codegen.cc, d/dmd2/builtin.c,
+	d/dmd2/declaration.h, d/dmd2/interpret.c, d/phobos2/Makefile.in,
+	d/phobos2/configure: D2 - GCC builtins now CTFE'd.
+	[46b8a2bb22f5]
+
+2010-12-04  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-lang.cc, d/druntime/gc/gcgccextern.d, d/phobos2/Makefile.am,
+	d/phobos2/Makefile.in, d/phobos2/std/math.d, d/setup-gcc.sh,
+	d/target-ver-syms.sh: Updated FreeBSD and Solaris version identifiers.
+	[a52396ea0fa4]
+
+2010-12-03  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-asm-i386.h, d/d-spec.c, d/dmd2/root.c, d/dmd2/speller.c,
+	d/druntime/core/sys/posix/setjmp.d, d/phobos2/configure,
+	d/phobos2/configure.in, d/phobos2/std/math.d: Applied patches from
+	Issue #100, some work on Phobos/Druntime ARM port.
+	[8dbea571bd08]
+
+	* d/d-asm-i386.h, d/d-builtins.c, d/d-lang.cc: Issue #118 - Segfault
+	on string compare.
+	[e2092db74028]
+
+2010-11-26  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-decls.cc: Issue #110 - Pure Nothrow Functions Not Called.
+	[46680c366e68]
+
+	* d/dmd/entity.c, d/dmd2/entity.c: Fixes to html entities.
+	[954a116bc175]
+
+	* d/d-codegen.cc, d/d-codegen.h, d/d-glue.cc, d/d-irstate.h: D2 -
+	support 'case var:' in switch statements.
+	[af08a1a054c8]
+
+	* d/d-glue.cc, d/d-objfile.cc, d/dmd/expression.c,
+	d/dmd2/expression.c: Check lwr <= upr in pointer array slices, fixed
+	AA bug using const types.
+	[0a0c8ff325da]
+
+	* d/druntime/core/sys/osx/mach/kern_return.d,
+	d/druntime/core/sys/osx/mach/port.d,
+	d/druntime/core/sys/osx/mach/semaphore.d,
+	d/druntime/core/sys/osx/mach/thread_act.d: Add version(OSX) at top of
+	source files.
+	[106a741599c6]
+
+	* d/d-glue.cc: Fix ICE compiling empty with{} or volatile{}
+	statements.
+	[e83350ff851b]
+
+	* d/druntime/rt/aaA.d, d/phobos2/std/format.d, d/phobos2/std/string.d:
+	Fix bug in aaA.d, remove workaround in std.format.
+	[6549ec58cf1c]
+
+	* d/d-codegen.cc, d/d-codegen.h, d/d-glue.cc,
+	d/druntime/rt/lifetime.d: Issue #108 - crash when compiling
+	declaration of a big array.
+	[38209ac30752]
+
+	* d/d-builtins2.cc, d/d-glue.cc, d/dmd2/expression.c,
+	d/dmd2/expression.h, d/dmd2/optimize.c, d/druntime/core/atomic.d,
+	d/dt.cc, d/dt.h: Refs #108 - Prevent crash when compiling declaration
+	of a big array.
+	[bece6cdf81f8]
+
+2010-11-21  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-codegen.cc, d/d-codegen.h, d/d-convert.cc, d/d-cppmngl.cc,
+	d/d-gcc-real.cc, d/d-glue.cc, d/druntime/core/stdc/stdarg.d,
+	d/druntime/rt/lifetime.d, d/dt.cc, d/symbol.cc: Add _d_arrayliteralT
+	as libcall.
+	[1d3d564d0bfc]
+
+	* d/d-glue.cc, d/dmd2/expression.c, d/druntime/core/stdc/stdarg.d,
+	d/phobos2/std/algorithm.d: Issue #107 - compilation failed on
+	associated array.clear()
+	[75733609b163]
+
+	* d/d-decls.cc, d/d-lang.cc, d/gdc.1, d/lang.opt,
+	d/phobos2/Makefile.am, d/phobos2/Makefile.in: Issue #106 - compilation
+	failed on files importing std.xml.
+	[3205e04db834]
+
+	* d/d-objfile.cc, d/druntime/object.di, d/phobos2/Makefile.am,
+	d/phobos2/Makefile.in: Makefile now properly creates D interface files
+	for installing.
+
+2010-11-19  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-builtins2.cc, d/d-codegen.cc, d/d-decls.cc, d/d-glue.cc,
+	d/d-lang.cc, d/dmd2/*, d/druntime/*, d/phobos2/*: Updated D2 frontend
+	to 2.050.
+	[93726e7f3043]
+
+	* d/d-glue.cc, d/dmd2/*, d/phobos2/*: Issue #95 - 'Hello World' for
+	64bit not working.
+	[f58b9a4c4827]
+
+	* d/Make-lang.in, d/d-codegen.cc, d/d-decls.cc, d/d-irstate.cc,
+	d/druntime/gc/gcgccextern.d, d/dt.h, d/phobos2/Makefile.am: No more
+	segfaults from calling the moduleTlsDtor of a spawned thread.
+	[7afee485d3ec]
+
+	* d/druntime/core/atomic.d, d/druntime/rt/dmain2.d,
+	d/phobos2/Makefile.am, d/phobos2/Makefile.in: Fix makefile to generate
+	& install .di headers for druntime.
+	[8d8f3f8e346f]
+
+	* d/d-codegen.cc, d/d-glue.cc, d/druntime/rt/memory.d: Passes the
+	compilable/fail_compilation testsuite. Fix off-by-one static assert in
+	rt.memory.
+	[a05310b5bd39]
+
+	* d/d-codegen.cc, d/druntime/core/atomic.d, d/druntime/rt/monitor.c:
+	Don't make a libcall for _d_arraycast when converting void[] to
+	array[]. Fix a hang in the generic atomicOps.
+	[d9555265c627]
+
+	* d/Make-lang.in, d/d-apple-gcc.c, d/d-codegen.cc, d/d-glue.cc: Remove
+	redundant tree checking. Fold in apple-gcc patches.
+	[a62de16def16]
+
+	* d/patches/patch-apple-gcc-5664, d/patches/patch-build_gcc-5664: New
+	patches for apple-gcc.
+	[80db7b3f1bbc]
+
+	* d/dmd/entity.c, d/dmd2/entity.c: Merge Walter's and Thomas' named
+	entity lists.
+	[8949157fe7b0]
+
+	* d/d-codegen.cc, d/d-codegen.h, d/d-glue.cc: Issue #98 - cannot
+	perform floating-point modulo division on creal.
+	[53c34b538c56]
+
+	* d/d-codegen.cc, d/d-codegen.h, d/d-glue.cc: Issue #102 - Fixed error
+	using overloaded <>= operator.
+	[61db8ca7622c]
+
+	* d/d-glue.c: Issue #89 - Error initialising struct with static array.
+	[24f69762e9c3]
+
+	* d/d-codegen.cc, d/d-codegen.h, d/d-glue.cc: Issue #103 - destructor
+	not called on array of structs.  Postblit on struct now called when
+	returned from a function.
+	[cb7faae1f7b9]
+
+	* d/druntime/object_.d: Merge workaround from Phobos1 library.
+	[336c20f065e4]
+
+	* d/phobos/std/math.d, d/phobos2/std/math.d: Add aliases for missing
+	rndtol and rndtonl functions.
+	[86eb7cecbe6a]
+
+	* d/d-codegen.cc, d/d-glue.cc: Properly handle return (void)value.  In
+	slice expression [lwr .. upr], ensure lwr gets evaluated first.  Tree
+	checking fixes in NewExp and floatMod.
+	[967482328f44]
+
+2010-11-13  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-c-stubs.c, d/d-codegen.cc, d/d-glue.cc, d/d-objfile.cc,
+	d/dmd2/*, d/druntime/*, d/phobos2/*: Updated D2 frontend to 2.049.
+	[6c13728646ec]
+
+	* d/druntime/core/sys/posix/sys/select.d: Issue #90 - select.d fails
+	to compile on 64 bits Linux.
+	[9cd6979d9a7d]
+
+	* d/druntime/core/sys/posix/sys/select.d, d/druntime/rt/lifetime.d,
+	d/phobos2/gcc/bitmanip.d, d/phobos2/std/bitmanip.d,
+	d/phobos2/std/regexp.d: Issue #91, #92, #93 - various issues building
+	on 64bit Linux.
+	[c3ef6baccc9d]
+
+2010-11-12  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-asm-i386.h, d/d-builtins2.cc, d/d-codegen.cc, d/d-convert.cc,
+	d/d-cppmngl.cc, d/d-glue.cc, d/d-lang.cc, d/d-spec.c, d/dmd2/*,
+	d/druntime/*, d/phobos2/*: Updated D2 frontend to 2.048.
+	[0d91f8245403]
+
+	* d/druntime/core/sys/posix/sys/select.d: Fix some 64bit compat issues
+	with druntime module.
+	[05bb4c2b1f7d]
+
+2010-11-08  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-builtins2.cc, d/d-codegen.cc, d/d-glue.cc, d/d-lang.cc,
+	d/dmd-script, d/dmd2/*, d/druntime/*, d/phobos2/*: Updated D2 frontend
+	to 2.047.
+	[4bd4615c8a7e]
+
+2010-11-07  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/Make-lang.in, d/d-codegen.cc, d/d-codegen.h, d/d-glue.cc,
+	d/dmd-script, d/dmd-script.1, d/gdc.1, d/dmd2/*, d/druntime/*,
+	d/phobos2/*: Updated D2 frontend to 2.046. Removed tabs, trailing
+	spaces.
+	[5be9e0023b23]
+
+2010-11-05  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-glue.cc, d/d-irstate.cc, d/d-lang.cc, d/d-objfile.cc,
+	d/d-objfile.h, d/dmd2/*, d/druntime/*, d/phobos2/*: Updated D2
+	frontend to 2.040.
+	[5beb7019c5e6]
+
+
+2010-11-03  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/phobos/Makefile.am, d/phobos/Makefile.in, d/phobos/etc/c/zlib.d,
+	d/phobos/std/zlib.d, d/phobos2/Makefile.am, d/phobos2/Makefile.in,
+	d/phobos2/etc/c/zlib.d, d/phobos2/std/zlib.d, d/zlib/*: Upgrade zlib
+	support to zlib 1.2.5.
+	[ea7e83019088]
+
+	* d/d-gcc-real.cc: Issue #79 - Wrong decimal value in error message.
+	[71d8713b0604]
+
+	* d/phobos2/std/json.d, d/setup-gcc.sh: Added --update option for
+	setup-gcc.sh to rebuild directory of libphobos links.
+
+	* d/dmd/typinf.c, d/dmd2/typinf.c: Issue #83 - wrong TypeInfo_Struct
+	name outputted.
+	[f9ddff9d5ed9]
+
+	* d/d-lang.cc: Bugzilla 1911 - Link error when creating array of
+	typedefs with default initializer.
+	[8667626321e7]
+
+2010-11-01  michaelp  <baseball.mjp@gmail.com>
+
+	* d/d-codegen.cc: Issue #76 - odd error message when casting between
+	non-convertable types.
+	[0c78536565d6]
+
+2010-11-01  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/asmstmt.cc, d/d-builtins2.cc, d/d-codegen.cc, d/d-codegen.h,
+	d/d-cppmngl.cc, d/d-decls.cc, d/d-glue.cc, d/d-lang.cc, d/dmd-script,
+	d/dmd2/*, d/druntime/*, d/phobos2/*: Updated D2 Frontend to 2.037.
+	[e37f9fae0867]
+
+	* d/druntime/compiler/gdc/object_.d, d/druntime/compiler/gdc/rt/aaA.d,
+	d/druntime/import/object.di: Issue #82 - undefined references in
+	object.d
+	[0aff60753810]
+
+2010-10-31  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-codegen.cc, d/d-decls.cc, d/d-glue.cc, d/dmd2/*, d/druntime/*,
+	d/phobos2/*: Updated D2 frontend to 2.036.
+	[6bf237fb6ba6]
+
+	* d/d-decls.cc, d/d-glue.cc: Issue #80 - Bad codegen for structs
+	containing invariants.
+	[2fe867d16c45]
+
+	* d/d-codegen.cc, d/d-glue.cc: Issue #81 - Bad codegen and ICEs using
+	enums.
+	[3d028b2d1d30]
+
+	* d/d-lang.cc: Issue #76 - Hide 'In file included from <builtin>'
+	message in errors.
+	[d590dd56696b]
+
+	* d/phobos2/std/string.d, d/phobos2/std/zlib.d: Fix return result of
+	cmp().
+	[582cd1b0bff4]
+
+	* d/d-builtins2.cc, d/druntime/import/core/stdc/math.d: All GCC
+	builtins now marked pure and optionally nothrow. core.stdc.math
+	functions made builtin.
+	[dc2b50a4c0f6]
+
+2010-10-27  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/Make-lang.in, d/d-glue.cc, d/d-lang.cc, d/dmd2/*, d/druntime/*,
+	d/phobos2/*: Update D2 frontend to 2.035.
+	[ef0d5e8ec06d]
+
+	* d/d-glue.cc: Adjust Classinfo size for D2.
+	[b8673983b46b]
+
+	* d/patches/*, d/set-gcc.sh: Updated patches and setup-gcc.sh for
+	Apple GCC.
+	[b25313940945]
+
+	* d/d-asm-i386.h, d/phobos/std/cpuid.d, d/phobos2/std/cpuid.d: Tell
+	backend cpuid clobbers EBX; remove workaround in std.cpuid.
+	[3cbf9b8108a2]
+
+2010-10-24  michaelp  <baseball.mjp@gmail.com>
+
+	* d/d-glue.cc, d/druntime/*, d/phobos2/*: Issue #77 - porting D2
+	Phobos to x86_64.
+	[cf5f02e03fda]
+
+2010-10-23  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/phobos2/*: Issue #74 - New D2 Phobos source rebased from DMD.
+	[98120f156997]
+
+	* d/phobos/Makefile.am, d/phobos/Makefile.in, d/phobos/config.h.in
+	d/phobos/configure, d/phobos2/Makefile.am, d/phobos2/Makefile.in:
+	Fix building with --enable-multilib
+	[67365c9f7b52]
+
+2010-10-21  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-asm-i386.h, d/d-decls.cc, d/d-glue.cc, d/d-lang.cc,
+	d/dmd-script, d/dmd2/*, d/druntime/*, d/phobos2/*: Updated D2 frontend
+	to 2.032.
+	[861e16b38529]
+
+	* d/d-builtins2.cc, d/druntime/import/core/stdc/stdarg.d: D2 - Add
+	core.stdc.stdarg as an stdarg module. Patched core.stdc.stdarg to work
+	with GDC compiler.
+	[8b0a0deb8e7d]
+
+	* d/d-codegen.cc: Issue #72 - 'this' in nested structs cannot access
+	frame of outer function.
+	[3422c59c130a]
+
+	* d/phobos/std/intrinsic.d: D1 - Fix bt function on 64bit archs.
+	[7445723aaedd]
+
+	* d/d-codegen.cc, d/d-glue.cc: Issue #73 - ICE declaring string enums.
+	[0865e6286775]
+
+	* d/druntime/compiler/gdc/aaA.d: D2 - Fixed segfault getting AA
+	keys/values.
+	[d049574ccd3f]
+
+	* d/dmd/mars.h, d/dmd/mtype.c, d/phobos/acinclude.m4,
+	d/phobos/configure, d/phobos/configure.in, d/phobos2/acinclude.m4,
+	d/phobos2/configure, d/phobos2/configure.in, d/target-ver-syms.sh:
+	Some updated to target OS detection.
+	[7fecb2ef6432]
+
+2010-10-12  opticron  <nyphbl8d@gmail.com>
+
+	* d/phobos/Makefile.am, d/phobos/Makefile.in, d/phobos2/Makefile.am
+	d/phobos2/Makefile.in: D1/D2: Fix type sizes in gcc/config/* when
+	building with multilib.
+	[b9f7dd4e80a2]
+
+2010-10-11  michaelp  <baseball.mjp@gmail.com>
+
+	* d/patches/patch-gcc-4.4.x, d/patches/patch-toplev-4.4.x: Updated
+	4.4.x patches for 4.4.5
+	[dd2f05ac4246]
+
+2010-10-08  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-glue.cc, d/dmd2/*, d/druntime/*: Updated D2 frontend to 2.029.
+	[082c04bad0c3]
+
+2010-10-07  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/Make-lang.in, d/d-asm-i386.h, d/d-codegen.h, d/d-decls.cc
+	d/d-gcc-real.cc, d/d-gcc-real.h, d/d-glue.cc, d/dmd2/*, d/druntime/*,
+	d/phobos2/*: Update D2 frontend to 2.028.
+	[141118223a79]
+
+	* d/dmd/cast.c d/dmd/constfold.c d/dmd/identifier.c d/dmd/lexer.c
+	d/dmd/mars.h d/dmd/mtype.c d/dmd/opover.c d/dmd/optimize.c
+	d/dmd/template.h d/dmd/todt.c d/dmd/toobj.c: Cleaned up D1 folder
+	after D2 updates.
+	[5c293d142e2d]
+
+	* d/asmstmt.cc, d/d-asm-i386.h: Issue #70 - Inline Asm errors junk
+	`(%ebp)+4' after expression.
+	[21764cc50c3f]
+
+2010-10-06  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/Make-lang.in, dmd2/*, phobos2/*: Updated D2 frontend to 2.026.
+	[7a1dfe79af05]
+
+	* d/d-glue.cc: Issue #69 - ICE on typedef'd array
+	concatenation.
+	[fe66fbb9e08e]
+
+	* d/d-codegen.cc, d/d-codegen.h, d/d-glue.cc: D2 - Fixed 'this.this'
+	being null in a nested class.
+	[d1dfd83df144]
+
+	* d/d-decls.cc: Let backend know about functions marked as 'nothrow'
+	and 'immutable'.
+	[77df72e87dd0]
+
+	* d/d-codegen.cc, d/d-codegen.h, d/d-decls.cc, d/d-glue.cc: D2 -
+	Implemented nested structs.
+	[8c901ab67b00]
+
+	* d/d-codegen.cc d/d-codegen.h d/d-glue.cc: Move block of code
+	initialising structs from emitLocalVar to AssignExp.
+	[32165d66c011]
+
+	* d/Make-lang.in, d/d-lang.cc, d/dmd2/array.c, d/dmd2/async.c
+	d/dmd2/async.h, d/dmd2/root.c: D2 - Added AsyncRead sources.
+	[3407bc0a9896]
+
+2010-10-03  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/phobos/std/regexp.d: Fix D1 phobos for 64bit systems.
+	[2cc2741e0031]
+
+	* d/d-decls.cc, d/d-lang.h: D2 - Let backend know about functions
+	marked as 'pure'.
+	[e9eb758ba073]
+
+	* d/druntime/compiler/gdc/lifetime.d: Issue #69 - arraycatnT not
+	working on 64bit.
+	[1fb27285a969]
+
+2010-09-30  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/asmstmt.cc, d/d-codegen.cc, d/d-glue.cc, dmd2/*, druntime/*
+	phobos2/*: Updated D2 frontend to 2.025.
+	[4b8327c25e06]
+
+2010-09-29  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-glue.cc, d/dmd2/*, d/druntime/*, d/phobos2/*: Updated D2
+	frontend to 2.022
+	[747409fe2b40]
+
+	* d/d-codegen.cc, d/d-glue.cc, d/phobos2/Makefile.in: Fix building with
+	--enable-checking.
+	[364d892342c5]
+
+	* d/d-codegen.cc, d/druntime/gc/basic/gcx.d: Issue #68 - Cannot cast to
+	structs of same type size.
+	[8fd7216c74a7]
+
+	* d/d-lang.cc, d/dmd-script, d/lang.opt: Added -safe switch.
+	[a06f5919bd1c]
+
+	* d/d-spec.c: Update D2 driver.
+	[9e1b27a03458]
+
+2010-09-28  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* zlib/*: Moved zlib to it's own maintained directory.
+	* d/phobos/etc/c/zlib, d/phobos2/etc/c/zlib: Removed.
+	[46deecb698ea]
+
+	* dmd/*, phobos/*: Updated D1 frontend to 1.064.
+	[77f4acd15b72]
+
+	* dmd2/*, druntime/*, phobos2/*: Updated D2 frontend to 2.021.
+	[ed6460a378bc]
+
+	* d/druntime/compiler/gdc/adi.d, d/druntime/compiler/gdc/alloca.d,
+	d/druntime/compiler/gdc/cover.d, d/druntime/compiler/gdc/memset.d,
+	d/druntime/compiler/gdc/qsort.d, d/druntime/compiler/gdc/qsort2.d,
+	d/phobos2/Makefile.am, d/phobos2/Makefile.in: D2 runtime segfault fixes.
+	[7c9615da20cb]
+
+	* d/d-builtins2.cc d/d-codegen.cc d/d-decls.cc d/d-glue.cc
+	d/dmd2/mars.h d/druntime/compiler/gdc/util/console.d
+	d/phobos2/std/bigint.d d/phobos2/std/bitmanip.d d/phobos2/std/boxer.d
+	d/phobos2/std/date.d d/phobos2/std/dateparse.d d/phobos2/std/md5.d: D2
+	'this' parameter to struct member functions is now a reference type.
+	[91fd4a667dc9]
+
+2010-09-25  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-glue.cc: D2 - rework return by ref.
+	[ecd406de9575]
+
+	* d-codegen.cc, d-glue.cc: Move check for ref function to better place.
+	[9dc1edb1c332]
+
+	* d-glue.cc: Issue #66 - Array setting causes OutOfMemoryException.
+	[65f4cc943169]
+
+2010-09-20  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-builtins.c, d-codegen.cc, d-glue.cc:
+	D2 updates - Return by reference now implemented (instead of ignored).
+	[6e2ba321e290]
+
+	* d-codegen.cc, d-convert.cc, d-decls.cc, d-glue.cc:
+	Gain back some compiler speed in release builds.
+	[c8bdb254e8fc]
+
+2010-09-18  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* phobos2/config.h.in, phobos2/configure:
+	Regenerate D2 configure scripts.
+	[eed0b915018b]
+
+	* druntime/compiler/gdc/dmain2.d:
+	Fix _d_hidden_func to work with GDC compiler
+	[8c2f5a4e8805]
+
+	* d-codegen.cc, d-convert.cc, d-glue.cc, d-lang.h:
+	Issue #64 - enable-checking in configure fails on 4.4.x
+	[7bfec5c437bb]
+
+	* d-lang.h: Issue #28 - enable-checking in configure fails
+	[3de9afb31bb7]
+
+	* druntime/compiler/gdc/trace.d, phobos2/Makefile.am,
+	phobos2/Makefile.in, phobos2/config.log:
+	Remove trace.d from D2
+	[253e781b9254]
+
+2010-09-15  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-codegen.cc d-glue.cc: Fix obscure memory bug in D2.
+	[af9fbe154ba6]
+
+	* d-codegen.cc, d-codegen.h, d-glue.cc, d-irstate.cc, d-irstate.h,
+	dmd/statement.c, dmd2/statement.c:
+	Issue #56 - goto into a try block doesn't produce an error.
+	[960b54da053d]
+
+	* dmd2/inifile.c, druntime/compiler/gdc/cmath2.d,
+	druntime/compiler/gdc/gccmemory.d, druntime/compiler/gdc/memory.d,
+	phobos2/Makefile.am, phobos2/Makefile.in:
+	Split off rt.memory, remove useless sources.
+	[08fac74f4074]
+
+	* druntime/common/core/thread.d, druntime/compiler/gdc/util/cpuid.d:
+	Merge getESP code from D2 phobos to druntime.
+	[5e6ee66625e4]
+
+	* druntime/compiler/gdc/llmath.d: Remove llmath.d
+	[6b7397510e33]
+
+2010-09-09  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-codegen.cc:
+	Revert part of commit 210, and fix integer representations on gdc-4.4.
+	[844b25646834]
+
+	* d-bi-attrs-34.h, d-bi-attrs-341.h, d-builtins.c, d-c-stubs.c,
+	Make-lang.in: Merge d-bi-attrs-341 with d-bi-attrs-34.h.
+	[c2f92387a049]
+
+
+2010-09-07  michaelp  <baseball.mjp@gmail.com>
+
+	* gcc-mars.cc:
+	Removed gcc-mars.cc from top level d/ folder.
+	[e4b1e3753bf5]
+
+	* Make-lang.in:
+	Updated Make-lang.in for removal of gcc-mars.cc.
+	[db7d6aae8ceb]
+
+	* GDC.html, History, INSTALL, INSTALL.html, README, dmd-script,
+	dmd-script.1, gdc.1:
+	Documentation updates.
+	[e651ed00a16e]
+
+2010-09-03  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-codegen.cc, d-glue.cc, d-objfile.cc:
+	Issue #59 and #60: ICE when goto undefined label and ICE in foreach over
+	member member array in static func
+	[955dc7d43780]
+
+	* d-codegen.cc, d-glue.cc, d-irstate.cc, d-lang.h, dmd/func.c,
+	dmd/statement.c, dmd/statement.h:
+	Issue #54: 1.063 changes in phobos versioning + dmd backend.
+	[4c10fa4a539a]
+
+2010-09-01  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* dmd/cast.c, dmd/impcnvgen.c, dmd2/impcnvgen.c:
+	Bugzilla 1822 - String slicing in 64-bit gdc causes spurious
+	warnings
+	[5efc9014eef8]
+
+	* patches/patch-gcc-4.0.x, patches/patch-gcc-4.1.x, d/patches
+	/patch-gcc-4.2.x, patches/patch-gcc-4.3.x, patches/patch-
+	gcc-4.4.x:
+	Issue #50 - thanks venix1: SjLj expections fail when thrown from catch
+	block
+	[d655a072bbb8]
+
+	* d-builtins2.cc, d-lang.cc, d-spec.c:
+	Removed va_list hack, small change to D2 lang driver.
+	[7a67e4973ace]
+
+2010-08-30  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-codegen.cc:
+	Issue #14: STATIC_CHAIN_EXPR not caught in estimate_num_insns_1()
+	[63c14701ccde]
+
+2010-08-29  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-c-stubs.c, d-glue.cc, d-lang.cc:
+	Add stubs for C_TARGET_OBJS on non-x86 archs.
+	[b530fcd9baab]
+
+	* d-glue.cc:
+	Bugzilla 1669 - this.outer in nested classes gives a bogus pointer
+	[ebce488abf89]
+
+	* d-lang.cc, phobos2/Makefile.am, phobos2/acinclude.m4:
+	Add D_Version2 version predicate.
+	[9808b8987cce]
+
+2010-08-28  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-c-stubs.c, d-decls.cc, d-lang.cc,
+	druntime/compiler/gdc/aaA.d, druntime/compiler/gdc/util/cpuid.d,
+	druntime/gc/basic/gc_c.h, druntime/gc/basic/gc_dyld.c,
+	druntime/gc/basic/gc_freebsd.c, druntime/gc/basic/gcgccextern.d,
+	phobos/internal/gc/gcgccextern.d, phobos/std/loader.d,
+	phobos2/Makefile.am, phobos2/acinclude.m4,
+	phobos2/std/cpuid.d:
+	D2 updates.
+	[ebe4ca2bd83a]
+
+2010-08-27  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/Make-lang.in, d-spec.c, phobos2/Makefile.am:
+	Add druntime to the GDC driver.
+	[3dbc1c4cd214]
+
+	* druntime/Makefile, druntime/compiler/gdc/dgccmain2.d,
+	druntime/compiler/gdc/lifetime.d, phobos2/gcc/deh.d,
+	phobos2/gcc/unwind_generic.d, phobos2/gcc/unwind_pe.d,
+	phobos2/std/stream.d:
+	Remove Makefile and fix module dependencies in Druntime
+	[6fea2af61a0c]
+
+	* phobos2/Makefile.am, phobos2/acinclude.m4, phobos2/aclocal.m4,
+	phobos2/configure.in, d/setup-gcc.sh:
+	Reorganise D2 Makefile for Druntime
+	[f888b572d19a]
+
+	* d/Make-lang.in:
+	Use BACKENDLIBS rather than GMPLIBS for gdc-4.4
+	[bda0f5d37728]
+
+	* d-glue.cc:
+	Fix ICE in D2 ForeachRange statements
+	[7d35bcb69e7e]
+
+2010-08-26  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* patches/patch-gcc-4.4.x:
+	Regenerate gcc-4.4.x patch
+	[4dfe5494460a]
+
+2010-08-25  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-codegen.h:
+	Fix codegen for addressOf array types, resolves broken va_lists on
+	gdc-4.4.
+	[9463381e1daa]
+
+	* druntime/compiler/gdc/fpmath.d, druntime/compiler/gdc/gcc/*,
+	druntime/druntimelicense.txt, druntime/druntimereadme.txt,
+	druntime/hello.d, druntime/license.txt, druntime/readme.txt:
+	Re-add fpmath.d - previously from removed internal directory.
+	[bf3e292d1a4c]
+
+	* d-builtins2.cc:
+	Slight alteration to va_list type generation on gdc-4.4
+	[e005caeafced]
+
+	* d-codegen.cc, d-glue.cc, d-irstate.cc, d-lang.h:
+	Use own language flag for labels marked 'used'.
+	[d7963235235c]
+
+	* d-lang.cc:
+	Rework of previous commit for Issue #58.
+	[025031c2e274]
+
+2010-08-24  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-lang.cc:
+	Issue #58 - Fixed stack overflow in gdc-4.4
+	[c02f5ac787a8]
+
+2010-08-23  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-codegen.cc:
+	Bugzilla 1813 - ICE on static function parametrized with alias.
+	[2e06ca97b873]
+
+2010-08-22  michaelp  <baseball.mjp@gmail.com>
+
+	* patches/patch-gcc-3.4.x, patches/patch-gcc-4.0.x, d/patches
+	/patch-gcc-4.1.x, patches/patch-gcc-4.2.x, patches/patch-
+	gcc-4.3.x, patches/patch-toplev-3.4.x, patches/patch-
+	toplev-4.0.x, patches/patch-toplev-4.1.x, patches/patch-
+	toplev-4.2.x, patches/patch-toplev-4.3.x:
+	Updated patches for D2/druntime
+	[dc882e7537c0]
+
+2010-08-22  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/Make-lang.in, d-bi-attrs-44.h, d-builtins.c, d-builtins2.cc,
+	d-codegen.cc, d-decls.cc, d-gcc-includes.h, d-lang.cc,
+	d-objfile.cc, patches/patch-gcc-4.4.x, patches/patch-
+	toplev-4.4.x, d/setup-gcc.sh:
+	Building on GCC-4.4 now supported.
+	[0616ebb4255b]
+
+	* d-lang.cc:
+	Issue #51: 1.062 outstanding issues
+	[9663a271233b]
+
+2010-08-20  michaelp  <baseball.mjp@gmail.com>
+
+	* phobos2/*:
+	Updated phobos2 to 2.020 (not working)
+	[08d9a5b24ff4]
+
+2010-08-20  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-glue.cc:
+	Fix ICE on shorthand if statements.
+	[ef2959fa8184]
+
+2010-08-20  michaelp  <baseball.mjp@gmail.com>
+
+	* d-glue.cc:
+	Fixed problem with continue statements in D2
+	[511f3176ec0d]
+
+2010-08-20  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-lang.cc, druntime/compiler/gdc/arraybyte.d,
+	druntime/compiler/gdc/arraydouble.d,
+	druntime/compiler/gdc/arrayfloat.d,
+	druntime/compiler/gdc/arrayint.d,
+	druntime/compiler/gdc/arrayshort.d, phobos/internal/arraybyte.d,
+	phobos/internal/arraydouble.d, phobos/internal/arrayfloat.d,
+	phobos/internal/arrayint.d, phobos/internal/arrayshort.d,
+	phobos2/internal/arraybyte.d, phobos2/internal/arraydouble.d,
+	phobos2/internal/arrayfloat.d, phobos2/internal/arrayint.d,
+	phobos2/internal/arrayshort.d:
+	Issue #30: D_InlineAsm updates
+	[ce1833f9106a]
+
+2010-08-19  michaelp  <baseball.mjp@gmail.com>
+
+	* d-lang.cc:
+	Fixed JSON option for D2
+	[2118f4d1de83]
+
+	* d/setup-gcc.sh:
+	Updated setup-gcc.sh for libdruntime building
+	[6e7640bc2b3c]
+
+	* patches/patch-toplev-4.1.x, patches/patch-toplev-4.2.x,
+	patches/patch-toplev-4.3.x:
+	Updated toplevel 4.1, 4.2, and 4.3 patches for libdruntime
+	[1df5716f2b88]
+
+	* patches/patch-toplev-3.4.x, patches/patch-toplev-4.0.x:
+	Updated 3.4 + 4.0 toplevel patches to include libdruntime
+	[a74ceca3c239]
+
+	* dmd/func.c:
+	Issue #57: C-style variadic functions broken
+	[ae817bd07dbf]
+
+2010-08-19  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* phobos/*:
+	Updated Phobos to 1.063 - expanded tabs.
+	[bbe96bfd09dd]
+
+2010-08-17  michaelp  <baseball.mjp@gmail.com>
+
+	* d-glue.cc:
+	One of Issue #56. Cannot goto into finally block
+	[22792e6a6253]
+
+2010-08-17  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-codegen.cc, d-glue.cc, d-irstate.cc, d-irstate.h:
+	Bugzilla 1041 - incorrect code gen for scope(exit) inside switch
+	[d472abadf847]
+
+2010-08-16  michaelp  <baseball.mjp@gmail.com>
+
+	* d-glue.cc, dmd/func.c, dmd/statement.c, dmd/statement.h:
+	Temporarily reverted 1.063 change
+	[d89d1a46125d]
+
+2010-08-16  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/asmstmt.cc, d-apple-gcc.c, d-asm-i386.h, d-builtins.c,
+	d-builtins2.cc, d-c-stubs.c, d-codegen.cc, d-codegen.h,
+	d-convert.cc, d-cppmngl.cc, d-decls.cc, d-gcc-includes.h,
+	d-gcc-real.h, d-glue.cc, d-irstate.cc, d-lang.cc,
+	d-lang.h, d-objfile.cc, d-spec.c, d/dt.cc, d/dt.h,
+	d/gdc_alloca.h, d/symbol.cc:
+	Added GPL onto files missing it, attributed modifications.
+	[4d41771eba7c]
+
+2010-08-15  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-codegen.cc:
+	Some more type conversion updates in glue.
+	[4567e417c0b3]
+
+2010-08-14  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-apple-gcc.c, d-codegen.cc, d-convert.cc, d-glue.cc,
+	d-lang.cc:
+	Remove default_conversion, tighten up signed/unsigned conversions.
+	[c1ae96f4e1a6]
+
+	* d-builtins2.cc, d-codegen.cc, d-glue.cc, d-lang.cc,
+	d-lang.h:
+	Removed references to TREE_UNSIGNED.
+	[4a59c1bbc04c]
+
+	* d-gcc-includes.h:
+	Fixed previous glue commit.
+	[9cac96f771a1]
+
+2010-08-14  michaelp  <baseball.mjp@gmail.com>
+
+	* phobos/std/thread.d:
+	Updated thread_attach bug in Windows
+	[de30c34ef79d]
+
+2010-08-14  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/asmstmt.cc, d-builtins2.cc, d-codegen.cc, d-gcc-includes.h,
+	d-glue.cc, d-lang.cc, d-objfile.cc:
+	Glue touch-ups, now uses D_USE_MAPPED_LOCATION
+	[6122f6d23a71]
+
+2010-08-13  michaelp  <baseball.mjp@gmail.com>
+
+	* d-cppmngl.cc:
+	Uploaded missing fix from 1.063 merge
+	[fc7de0a268ab]
+
+	* dmd/template.c:
+	Fixed implicit conversion of template parameters
+	[888e3cc8a31d]
+
+	* d-glue.cc, dmd/async.c, dmd/declaration.c,
+	dmd/declaration.h, dmd/dsymbol.c, dmd/dsymbol.h, dmd/enum.c,
+	dmd/enum.h, dmd/expression.c, dmd/func.c, dmd/init.c,
+	dmd/interpret.c, dmd/mars.c, dmd/mars.h, dmd/module.c,
+	dmd/module.h, dmd/mtype.c, dmd/parse.c, dmd/parse.h,
+	dmd/root.c, dmd/statement.c, dmd/statement.h, dmd/todt.c,
+	phobos/internal/deh2.d, phobos/internal/object.d,
+	phobos/std/math.d:
+	Updated to 1.063
+	[f1e726cbcc98]
+
+2010-08-11  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/Make-lang.in, d-bi-attrs-34.h, d-bi-attrs-341.h, d-bi-
+	attrs-40.h, d-bi-attrs-41.h, d-bi-attrs-42.h, d-bi-attrs-43.h,
+	d-builtins.c:
+	Cleanup d-bi-attrs. Make includes slightly smarter.
+	[349f85192e52]
+
+	* d-codegen.cc:
+	Remove useless trial/error comments in function.
+	[89b4363653f8]
+
+2010-08-10  michaelp  <baseball.mjp@gmail.com>
+
+	* d-codegen.cc:
+	Issue 33 - Sefault with nested array allocation
+	[be805cb4fb58]
+
+2010-08-09  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/Make-lang.in, patches/patch-gcc-4.2.x, patches/patch-
+	toplev-4.2.x, d/setup-gcc.sh:
+	Building on GCC-4.2 now supported.
+	[c1b55292cd94]
+
+	* d-codegen.cc, d-glue.cc, d-irstate.cc:
+	Apply adaptation of feep's autovec patch (one big thanks!)
+	[fbce9c0580d3]
+
+	* d/asmstmt.cc, d-asm-i386.h:
+	Replace tabs for space in ASM outbuffer.
+	[659f6f38f6f4]
+
+2010-08-09  michaelp  <baseball.mjp@gmail.com>
+
+	* d/dmd-script:
+	Whitespace fix to previous commit.
+	[0fee937d84d4]
+
+	* d-lang.cc, d/dmd-script, d/lang.opt:
+	Added JSON support - Issue 52 + gdmd usage change
+	[35f04cb2339c]
+
+	* d/dmd-script:
+	Added -defaultlib= and -debuglib= into gdmd usage
+	[e34a68f9c427]
+
+	* d/dmd-script:
+	Updated -defaultlib and -debuglib switches for gdmd - Issue 46
+	[181e89b3d8d6]
+
+2010-08-08  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-builtins.c, d-c-stubs.c, d-codegen.cc, d-glue.cc,
+	d-lang.h:
+	Build with GCC-3.4 working again.
+	[58e9b23e110c]
+
+	* d/Make-lang.in, dmd2/array.c, dmd2/mars.c, dmd2/root.c,
+	dmd2/total.h:
+	Updates of previous commit
+	[41657ecdc3fe]
+
+	* d/Make-lang.in, d-decls.cc, dmd/expression.c, dmd2/arrayop.c,
+	dmd2/bit.c, dmd2/complex_t.h, dmd2/e2ir.c, dmd2/lib.h,
+	dmd2/libelf.c, dmd2/link.c, dmd2/man.c, dmd2/port.h,
+	dmd2/template.c, dmd2/tocsym.c, dmd2/toir.c, dmd2/toir.h,
+	dmd2/toobj.c, d/symbol.cc, d/symbol.h:
+	Issue 29 - Remove unused D2 files
+	[fdef7864146b]
+
+	* d-decls.cc:
+	Bugzilla 1296 - ICE when object.d is missing things
+	[e9bfccc01834]
+
+2010-08-06  michaelp  <baseball.mjp@gmail.com>
+
+	* d/dmd-script:
+	More updates to gdmd
+	[d77ee89f6174]
+
+2010-08-05  michaelp  <baseball.mjp@gmail.com>
+
+	* d/dmd-script:
+	Small changes to gdmd; some fixes for Issue 46
+	[9269acda0b86]
+
+2010-08-05  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-decls.cc, d-glue.cc:
+	Fix logic on array ops. Fixup comments for previous commits.
+	[5792cfbf3ae7]
+
+	* d-glue.cc:
+	Issue 43: >>> and >>>= generate wrong code
+	[56caae262c41]
+
+2010-08-02  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-lang.cc:
+	Regression in D1 when building with --enable-checking
+	[6f2adfcabae6]
+
+	* d-spec.c:
+	Check missing argument for -defaultlib
+	[8d59f275476b]
+
+	* d-decls.cc:
+	Issue 47: GDC improperly handles extern(System) and extern(Windows) on
+	Windows
+	[e5b50cb17c57]
+
+2010-07-31  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-codegen.cc, dmd/todt.c:
+	Issue 51: 1.062 outstanding issues
+	[f41ce1e8e5b2]
+
+	* dmd/aav.c, dmd/aav.h, dmd/arrayop.c, dmd/attrib.c,
+	dmd/cast.c, dmd/constfold.c, dmd/dsymbol.c,
+	dmd/expression.c, dmd/imphint.c, dmd/interpret.c,
+	dmd/lexer.c, dmd/mtype.c, dmd/parse.c, dmd/speller.h,
+	dmd/statement.c, dmd/toobj.c, dmd/unittests.c, dmd/utf.c:
+	Line endings, cleanups, and a missing ')'
+	[84378e5ef655]
+
+	* d-codegen.cc, d-glue.cc:
+	Glue updates for previous merge.
+	[a48e13277e67]
+
+2010-07-31  michaelp  <baseball.mjp@gmail.com>
+
+	* d-glue.cc, dmd/*, phobos/std/date.d:
+	Updated to 1.062
+	[9f7927e5f551]
+
+2010-07-30  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-spec.c:
+	Added -defaultlib and -debuglib to allow building with another
+	library other than libphobos.
+	[f7a52f778a09]
+
+	* druntime/*:
+	Initial import of druntime into project.
+	[2f052aaedd25]
+
+	* d-glue.cc:
+	Fix generation of D array concatenation calls.
+	[d70321dcd604]
+
+	* phobos2/acinclude.m4, phobos2/configure, phobos2/configure.in,
+	phobos2/internal/arrayassign.d, phobos2/phobos-ver-syms.in:
+	D2 now defines Posix.
+	[575ed6d347e0]
+
+	* dmd/parse.c, dmd/speller.c:
+	Include header needed for MinGW to build.
+	[5260cab6c448]
+
+2010-07-29  michaelp  <baseball.mjp@gmail.com>
+
+	* phobos2/std/c/stdio.d:
+	Fixed accidentally reapplied Windows patch
+	[d4356fb371ee]
+
+	* d/Make-lang.in, dmd/aav.c, dmd/aav.h, dmd/class.c,
+	dmd/declaration.c, dmd/dsymbol.c, dmd/dsymbol.h,
+	dmd/expression.c, dmd/func.c, dmd/imphint.c, dmd/mars.c,
+	dmd/mars.h, dmd/optimize.c, dmd/scope.c, dmd/speller.c,
+	dmd/struct.c, dmd/template.c, phobos2/std/c/stdio.d:
+	Updated to 1.061
+	[9038432ea1ff]
+
+	* phobos/std/c/stdio.d, phobos2/std/c/stdio.d:
+	Remove stdio.d patches from Issue 21 patch
+	[a53c51fad1bd]
+
+	* d-decls.cc, phobos/std/c/stdio.d, phobos2/std/c/stdio.d:
+	Issue 21 - _iob undefined reference under Windows
+	[ea913c7eec42]
+
+	* d-glue.cc:
+	Fixed array ops bugs from 1.059
+	[92c39c74433f]
+
+	* d/Make-lang.in, dmd/cast.c, dmd/class.c, dmd/declaration.c,
+	dmd/declaration.h, dmd/dsymbol.c, dmd/expression.c,
+	dmd/expression.h, dmd/idgen.c, dmd/init.c, dmd/inline.c,
+	dmd/interpret.c, dmd/json.c, dmd/mars.c, dmd/mtype.c,
+	dmd/parse.c, dmd/speller.c, dmd/speller.h, dmd/statement.h,
+	dmd/unittests.c:
+	Updated to 1.060
+	[1c1cc97db718]
+
+2010-07-28  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/dmd-script, d/lang-specs.h:
+	Issue 48: gdc/gdmd should be able to compile .di files
+	[976a611f59f3]
+
+	* d-lang.cc, dmd/*, phobos/*:
+	Updated to 1.058
+	[9ac6a02138c2]
+
+	* d/Make-lang.in, dmd/machobj.c:
+	Remove machobj.c from D1
+	[67d109f8fe79]
+
+	* d-lang.cc, d/dmd-script, d/symbol.cc:
+	Issue 42: -Wall should not error out compiler
+	[7593822be7c0]
+
+2010-07-27  michaelp  <baseball.mjp@gmail.com>
+
+	* d/Make-lang.in, d-lang.cc, d/dmd-script, dmd/dsymbol.c,
+	dmd/dsymbol.h, dmd/expression.c, dmd/func.c, dmd/init.c,
+	dmd/inline.c, dmd/interpret.c, dmd/machobj.c, dmd/mars.c,
+	dmd/mars.h, dmd/module.c, dmd/module.h, dmd/mtype.c,
+	dmd/root.c, dmd/root.h, dmd/scope.c, dmd/scope.h,
+	dmd/speller.c, dmd/speller.h, dmd/statement.c,
+	dmd/template.c, d/lang.opt, phobos/internal/aaA.d:
+	Updated to 1.057
+	[b4fb93e94c29]
+
+2010-07-27  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/Make-lang.in, dmd/array.c, dmd/bit.c, dmd/complex_t.h,
+	dmd/constfold.c, dmd/e2ir.c, dmd/elfobj.c, dmd/expression.c,
+	dmd/irstate.c, dmd/irstate.h, dmd/lib.h, dmd/libelf.c,
+	dmd/libmach.c, dmd/link.c, dmd/man.c, dmd/mars.c,
+	dmd/mem.c, dmd/mem.h, dmd/mtype.c, dmd/port.c, dmd/port.h,
+	dmd/root.c, dmd/tocsym.c, dmd/toir.c, dmd/toir.h:
+	Issue 29 - Remove unused D1 files
+	[d74291c4230b]
+
+	* dmd/template.c, dmd2/template.c:
+	Issue 36: duplicate symbols created for negatively initialized template
+	arugments
+	[1bd9793d8fc6]
+
+	* d-builtins.c:
+	Partial fix for Issue 28
+	[7fb5519947d4]
+
+	* d-lang.cc:
+	Issue 44: strange code in d-asm-1386.h
+	[73c379cc9714]
+
+2010-07-26  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-codegen.cc, d-glue.cc:
+	D2 postblit on struct literals finished!
+	[9ee37bd66bca]
+
+2010-07-25  michaelp  <baseball.mjp@gmail.com>
+
+	* d-lang.cc, d/dmd-script, dmd/*,
+	phobos/internal/arrayfloat.d:
+	Updated to 1.056
+	[4ff162deda23]
+
+2010-07-24  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-glue.cc:
+	D2 postblit updates.
+	[d53a8be7c0ed]
+
+2010-07-23  michaelp  <baseball.mjp@gmail.com>
+
+	* dmd/class.c, dmd/enum.c, dmd/enum.h, dmd/mars.c,
+	dmd/struct.c:
+	Updated to 1.055
+	[9c62fb9d0abf]
+
+	* dmd/expression.c:
+	Fixed spot with wrong patch in it
+	[172855a888e9]
+
+	* dmd/*, phobos/internal/gc/gcx.d:
+	Updated to 1.054
+	[64df5a74b2c4]
+
+2010-07-21  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-lang.cc:
+	Fixed warnings in d-lang.cc (thanks Trass3r)
+	[7a3c1ae0b625]
+
+	* d-asm-i386.h:
+	Fix cast warnings in d-asm-i386.h
+	[fa9b66399a13]
+
+	* dmd/lexer.c, dmd2/lexer.c:
+	Fix buffer overflow in certain error messages
+	[b91574453f5e]
+
+	* d-asm-i386.h:
+	Correctly check align value in asm.
+	[d5a0f3619810]
+
+2010-07-20  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-glue.cc, dmd/root.c, dmd/statement.c, dmd/template.c,
+	dmd/template.h, phobos/std/c/stddef.d:
+	Quick updates to D1 and postblit code.
+	[214fbfbf5f3f]
+
+	* d-builtins2.cc, d-codegen.cc, d-codegen.h, d-glue.cc,
+	dmd/expression.c, dmd/func.c, dmd/machobj.c, dmd/mtype.c,
+	dmd/parse.c, dmd/statement.c, dmd/statement.h, dmd/toobj.c,
+	phobos/internal/gc/gc.d:
+	Some whitespace corrections.
+	[c9c54a275526]
+
+2010-07-20  michaelp  <baseball.mjp@gmail.com>
+
+	* d-builtins2.cc, d-codegen.cc, d-codegen.h, d-glue.cc,
+	dmd/*, phobos/*:
+	Updated to 1.053
+	[f02a96cfc1de]
+
+2010-07-20  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-glue.cc:
+	Quick revision updates
+	[c79811b4f1fc]
+
+2010-07-19  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-glue.cc, dmd2/attrib.c, dmd2/cast.c, dmd2/cond.c,
+	dmd2/constfold.c, dmd2/declaration.c, dmd2/declaration.h,
+	dmd2/e2ir.c, dmd2/expression.c, dmd2/func.c,
+	dmd2/impcnvgen.c, dmd2/lexer.c, dmd2/lexer.h, dmd2/link.c,
+	dmd2/mars.c, dmd2/mtype.c, dmd2/mtype.h, dmd2/parse.c,
+	dmd2/parse.h, dmd2/statement.c, dmd2/toir.c:
+	Updated to 2.020 - Frontend Only
+	[676f0aa79458]
+
+2010-07-17  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* phobos2/Makefile.in:
+	libgphobos2 Makefile fixes.
+	[c4acdacfddd2]
+
+2010-07-16  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	Merge with DMD 2.019
+
+	* d-decls.cc: Merge changes from dmd2/tocsym.c
+
+	* phobos/Makefile.am, phobos/Makefile.in, phobos2/Makefile.am,
+	phobos2/Makefile.in: Fix build for check-target-libphobos tests.
+
+	* d-decls.cc, d-objfile: Fixed ICE in gdc-4.3 [39825b8156a3]
+
+2010-07-14  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	Merge with DMD 2.018
+
+	* d-lang.cc: Added support for AsyncRead in D1.
+
+	* dmd/constfold.c, dmd2/constfold.c: Fixed lost precision when casting
+	from large floats to integral types.
+
+	* dmd/todt.c, dmd2/todt.c: Fixed initialiased pointer array values
+	being reset to null during compilation.
+
+	* Make-lang.in, d-backendfunctions.c, dmd/template.c: Removed
+	backendfunctions.c from Makefile.
+
+2010-07-11  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-asm-i386.h: AMD Opcodes Supported.
+
+	* Make-lang.in, dmd/mtype.c, dmd/struct.c, target-ver-syms.sh:
+	struct ABI fixes.
+
+	* phobos/std/math.d, phobos2/std/math.d: Fix wrong return value in
+	expi() function.
+
+2010-07-07  michaelp  <baseball.mjp@gmail.com>
+
+	* dmd/arrayop.c: Fix problem with float array operations.
+	- Added linear search for the array op library functions.
+
+2010-07-05  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* dmd2/..., phobos2/...: Resolved issues for DMD 2.017.
+
+	* phobos2/configure, phobos2/configure.in: Re-add GNU_Need_execvpe for
+	D2 libphobos.
+
+	* dmd/mtype.h, phobos2/internal/object.d, phobos2/std/cpuid.d:
+	Quick updates to previous revisions.
+
+2010-07-05  michaelp  <baseball.mjp@gmail.com>
+
+	Merge DMD 2.017
+
+2010-07-04  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	Merge DMD 1.052
+
+	* d-glue.cc: Fix ICE when using type tuple as function argument.
+
+	* phobos/..., phobos2/...: libphobos cleanup and updates.
+
+	* d-codegen.cc, d-decls.cc: Fix problem when building with
+	--enable-checking.
+
+2010-06-28  michaelp  <baseball.mjp@gmail.com>
+
+	* setup-gcc.sh: D1 is default in setup-gcc.sh now.
+
+2010-06-27  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	Merge with DMD 1.050
+
+	* Make-lang.in: Update for files added in DMD 1.050.
+
+	* phobos/etc/c/zlib.d, phobos/std/zlib.d, phobos2/etc/c/zlib.d:
+	Updated Zlib to 1.2.3.
+
+2010-06-22  michaelp  <baseball.mjp@gmail.com>
+
+	* phobos/configure, phobos/configure.in, phobos/std/process.d,
+	phobos2/configure, phobos2/configure.in, phobos2/std/process.d:
+	Fix problem when building with a version of GNU C that has execvpe()
+	implemented (staring with glibc-2.11).
+
+	* phobos/configure, phobos/configure.in, phobos/std/c/freebsd/freebsd.d:
+	Fix problem when linking on FreeBSD targets.
+
+2010-06-19  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	Merge with DMD 1.049
+
+	* d-lang.cc: Merge changes from dmd/mars.c.
+
+	* d-codegen.cc, d-decls.cc: Fix ICEs in const array assignments.
+
+	* d-lang.cc, dmd-script, lang.opt: Added -fdeps option to gdc and
+	-deps to gdmd.
+
+	* dmd/mem.c, dmd/mem.h, dmd/port.c, dmd/rmem.h, dt.cc, dt.h,
+	phobos/internal/qsortg.d: Remove executable bit on source files.
+
+2010-06-12  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	Merge with DMD 1.047
+
+	* d-codegen.cc: Look for reference initializations in foreach
+	statement assignments.
+
+	* dmd/..., dmd2/..., phobos/..., phobos2/...: Converted CR, CRLF line
+	endings to LF (thanks to venix1).
+
+2010-06-04  Vincenzo Ampolo  <vincenzo.ampolo@gmail.com>
+
+	* d-asm-i386.h: Apply patch to compile tango (thanks to venix1).
+
+2010-04-05  michaelp  <baseball.mjp@gmail.com>
+
+	Merge with DMD 1.046
+
+	* d-decls.cc: Fix problem with struct declarations in GCC-4.3.x.
+
+	* dmd-script: Added -pipe option to gdmd
+
+	* d-lang.cc, phobos/...: Fix FreeBSD and Windows version issues.
+
+	* dmd/root.c: Fix Windows template instantiating error.
+
+	* dmd/func.c: Fix segfault on wrong arg type.
+
+2010-02-17  Vincenzo Ampolo  <vincenzo.ampolo@gmail.com>
+
+	* d-glue.cc: Make d1 classinfo like d2 ones.
+
+	* dmd/expression.c, phobos/std/process.d: Apply feep (downs) patch.
+
+2010-02-07  michaelp  <baseball.mjp@gmail.com>
+
+	Merge with 1.045
+
+	* phobos/linux.mak, phobos/win32.mak: Removed Phobos .mak files for
+	D 1.045 update.
+
+	* samples/hello.d, samples/samples.sh: Added 1 file to samples
+	directory.
+
+2010-01-15  opticron  <nyphbl8d@gmail.com>
+
+	* phobos/std/string.d: Fix a set of bugs in std.string.split which
+	made delemiters of length > 1 segfault.
+
+
+Copyright (C) 2010 Free Software Foundation, Inc.
+
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
diff --git a/gcc/d/ChangeLog-2011 b/gcc/d/ChangeLog-2011
new file mode 100644
index 00000000000..a5c155821d1
--- /dev/null
+++ b/gcc/d/ChangeLog-2011
@@ -0,0 +1,1248 @@
+2011-12-31  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-codegen.cc, d/d-glue.cc, d/d-irstate.cc: Revert some prior code
+	additions.
+	[a61a03e817c3]
+
+	* d/d-decls.cc, d/d-glue.cc: Issue #301 - ref return funcs returning
+	wrong reference
+	[2350d3a27ac8]
+
+2011-12-30  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-irstate.cc, d/d-lang.cc: Implicitly convert all statements to
+	void, warn if statement has no side effects.
+	[d73ff02f1131]
+
+	* d/d-decls.cc, d/d-glue.cc: mark RESULT_DECL as artificial.
+	[a2de4187caa4]
+
+	* d/d-codegen.cc, d/d-glue.cc: Remove check for isref out of ::call
+	and into CallExp::toElem
+	[1b827c7df15c]
+
+	* d/d-codegen.cc, d/d-codegen.h, d/d-glue.cc: Use INIT_EXPR instead of
+	MODIFY_EXPR where applicable, added vinit.
+	[27c401e61169]
+
+	* d/d-codegen.cc, d/d-codegen.h: Move functions written in d-codegen
+	header to source file.
+	[605c79094f14]
+
+	* d/d-codegen.cc: Issue #302 - lazy arg causing ICE in
+	gimple_expand_cfg, at cfgexpand.c:4063
+	[786acc44a0ff]
+
+2011-12-28  Daniel Green  <venix1@gmail.com>
+
+	* d/phobos2/Makefile.am, d/phobos2/Makefile.in: Add
+	std/internal/windows/advapi32.o to WINDOWS_OBJS.
+	[e7639c523add]
+
+2011-12-28  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-gcc-includes.h, d/d-glue.cc: Emit pretty debug tree information
+	on -fdump-tree-original
+	[7631e902659e]
+
+	* d/d-asm-i386.h, d/d-codegen.h, d/d-glue.cc, d/d-lang.cc,
+	d/d-objfile.cc: Remove some dead code.
+	[e8ae51578e54]
+
+	* d/d-codegen.cc, d/d-decls.cc, d/d-glue.cc, d/d-lang-45.h,
+	d/d-lang.cc, d/d-lang.h, d/d-objfile.cc: Issue #258 - cannot access
+	frame with contract inheritance
+	[0b470bc59251]
+
+	* d/d-lang.cc, d/gdc.1, d/lang.opt: Add switches to control in(),
+	out() and invariant() code generation.
+	[e9904da308eb]
+
+	* d/asmstmt.cc, d/d-builtins2.cc, d/d-decls.cc, d/d-glue.cc,
+	d/patches/patch-gcc-4.2.x, d/patches/patch-gcc-4.3.x,
+	d/patches/patch-gcc-4.4.x, d/patches/patch-gcc-4.5.x,
+	d/patches/patch-gcc-4.6.x: Remove gdc patch to cgraph.c - fix codegen.
+	[fc5e3bddbf94]
+
+	* d/d-decls.cc: Issue #298 - Array Range Functions Don't Get Inlined
+	[f9217ce815ea]
+
+2011-12-25  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-glue.cc, d/dmd2/expression.c, d/dmd2/expression.h,
+	d/dmd2/optimize.c, d/phobos/configure, d/phobos2/configure: Fixup
+	arrayliteral assignments.
+	[d71656e55ad8]
+
+	* d/phobos/configure, d/phobos2/configure: Rebuild configure for D1
+	[bedf43669633]
+
+	* d/d-glue.cc: Issue #297 - GDC Acquires Locks Twice in Synchronized
+	Member Methods.
+	[7470a20b2900]
+
+	* d/d-objfile.cc, d/d-objfile.h: First attack at fixing issue #246
+	[bd1f89846e93]
+
+2011-12-23  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-codegen.cc: Issue #287 - Casting between array types is broken.
+	[63647d6f2b87]
+
+	* d/phobos2/Makefile.in, d/phobos2/configure: Rebuild Makefile.in,
+	configure for D2.
+	[b3200b086277]
+
+	* d/d-lang.cc: Issue #296 - -fproperty implies -frelease
+	[4dfa4c11ccd7]
+
+	* d/d-codegen.cc, d/d-codegen.h, d/d-lang.cc: Remove unused
+	warnSignCompare.
+	[60ea5d6b4173]
+
+	* d/d-codegen.cc: Issue #289 - ICE: in extract_range_from_binary_expr,
+	at tree-vrp.c:229
+	[9076a0f27fd9]
+
+	* d/dmd-script, d/dmd-script.1, d/gdc.1: Update manpages for new
+	GDC/GDMD options.
+	[9caec4bea289]
+
+	* d/d-objfile.cc: Issue #279 - ICE: in gimple_expand_cfg
+	[6778c7a1f79e]
+
+	* d/d-builtins2.cc: Add CTFE support for builtins atan2, rndtol,
+	expm1, exp2.
+	[afe30f1b9435]
+
+2011-12-18  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-codegen.cc: D2 - Handle nulltype to D array conversions.
+	[d7fe9fa5bb6c]
+
+	* d/d-glue.cc, d/d-lang.cc: Match GCC logic for emitting D_LP64
+	version identifier.
+	[7475431fe1bd]
+
+	* d/d-codegen.cc, d/d-decls.cc, d/d-glue.cc: Better implementation of
+	bt, btc, bts, btr functions, allowing constant folding.
+	[caf2c8d4f036]
+
+	* d/d-builtins2.cc: Implement CTFE for bswap, bsr, bsf.
+	[730c51fcdd3e]
+
+	* d/druntime/core/thread.d: Issue #290 - errno conflict in std.file
+	[ecd60be7f89c]
+
+	* d/d-lang.cc: Define D_LP64 if is64bit.
+	[633ea9c9e5bf]
+
+	* d/dmd-script: Issue #282 - gdmd multithreaded -lib implementation.
+	[f1bd82f9bb5b]
+
+	* d/dmd-script: Issue #283 - gdmd: libraries not put into -od dir.
+	[75a7b584473a]
+
+	* d/d-objfile.cc, d/dmd/attrib.c, d/dmd2/attrib.c, d/lang.opt: Issue
+	#286 - -fignore-unknown-pragmas doesn't seem to work
+	[f342fde254e2]
+
+2011-12-16  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-builtins2.cc, d/d-codegen.cc, d/d-decls.cc, d/d-glue.cc,
+	d/d-irstate.cc, d/d-irstate.h, d/d-lang.cc, d/dmd2/*, d/druntime/*,
+	d/phobos2/*: Updated D2 Frontend to 2.057
+	[36c28efc6c88]
+
+2011-12-11  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/dmd/*: Updated D1 Frontend to 1.072
+	[e83cac3b4109]
+
+	* d/dmd/expression.c, d/dmd2/expression.c: Issue #279 - ICE: in
+	gimple_expand_cfg
+	[c501487a685a]
+
+2011-12-08  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/Make-lang.in, d/asmstmt.cc, d/d-asm-i386.h, d/d-builtins2.cc,
+	d/d-codegen.cc, d/d-cppmngl.cc, d/d-decls.cc, d/d-dmd-gcc.h,
+	d/d-glue.cc, d/d-irstate.cc, d/d-lang-45.h, d/d-lang-type-45.h,
+	d/d-lang-type.h, d/d-lang.cc, d/d-lang.h, d/d-objfile.cc,
+	d/dmd-script, d/dmd2/*, d/druntime/*, d/phobos2/*: Updated D2 Fronted
+	to 2.056
+	[fbe890ef4c1f]
+
+	* d/d-codegen.cc, d/d-glue.cc: Relax conversion checking. Move getImpl
+	to CastExp.
+	[b0407ff2e57c]
+
+	* d/dmd/optimize.c, d/dmd2/optimize.c: Remove old frontend ifdef'd
+	code.
+	[8e0291212f46]
+
+2011-12-02  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-lang.cc, d/lang-specs.h, d/lang.opt: remove preprocessor options
+	from spec and use own switches.
+	[5f71b69d1494]
+
+	* d/d-objfile.cc: Issue #275 - ICE with wrong interface implementation
+	[e32c8fbe7343]
+
+	* d/d-lang.cc, d/dmd/mars.h, d/dmd2/mars.h, d/lang-specs.h,
+	d/lang.opt: Issue #236 - -M, -MM, -MF options to generate dependencies
+	like gcc
+	[3763796b9cbf]
+
+	* d/d-lang.cc, d/lang.opt: ASCII collate lang switches.
+	[951ff44f1035]
+
+2011-12-02  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-objfile.cc: Issue #268 - ICE with -flto and -g
+	[3da453291dc3]
+
+2011-11-24  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/Make-lang.in: Issue #266 - make install-strip fails to install
+	gdmd.
+	[d1005cb77a06]
+
+	* d/d-glue.cc, d/d-lang.cc, d/dt.cc: Remove checks for
+	type_structural_equality for now.
+	[5265f1318114]
+
+	* d/d-glue.cc: Issue #261 - ICE: tree check: expected record_type or
+	union_type, have array_type in delegateVal
+	[61ab289788a3]
+
+	* d/d-glue.cc: Issue #264 - ICE: can't convert between bool and enum :
+	bool
+	[fcb2523b8ccd]
+
+	* d/d-codegen.cc, d/d-glue.cc: Issue #263 - forward reference error
+	with algorithm.find
+	[75b7e1bca4d7]
+
+2011-11-19  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/asmstmt.cc, d/d-asm-i386.h, d/d-builtins2.cc, d/d-decls.cc,
+	d/d-glue.cc, d/d-irstate.cc, d/d-lang-45.h, d/d-lang.cc, d/d-lang.h,
+	d/d-objfile.cc: Add d_free, rename dkeep to d_keep.
+	[a0e0fcfd913c]
+
+2011-11-18  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-builtins2.cc, d/d-codegen.cc, d/d-lang-45.h, d/d-lang.cc,
+	d/d-lang.h: Issue #262 - ICE: weird segfault when -o option is used
+	[51d11a9bddf2]
+
+	* d/d-lang.cc: Issue #255 - ICE: invalid conversion in gimple call
+	[36ae9c015e86]
+
+	* d/d-decls.cc: Issue #259 - ICE: constant not recomputed when
+	ADDR_EXPR changed
+	[72c16f7ab674]
+
+	* d/d-builtins2.cc, d/d-dmd-gcc.h, d/dmd/attrib.c,
+	d/dmd/declaration.c, d/dmd/declaration.h, d/dmd/mtype.c,
+	d/dmd/struct.c, d/dmd2/attrib.c, d/dmd2/declaration.c,
+	d/dmd2/declaration.h, d/dmd2/mtype.c, d/dmd2/struct.c: Issue #215 -
+	Alignment of struct members wrong on ARM
+	[2df7ca5fa4b6]
+
+	* d/d-codegen.cc, d/d-codegen.h, d/d-decls.cc, d/d-glue.cc,
+	d/d-lang.cc: Issue #242 - Another lambda segfault
+	[467d7fa518fc]
+
+2011-10-31  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-lang.cc: Arm -> ARM and darwin -> Darwin in d-lang.cc.
+	[51e67c38af0c]
+
+2011-10-30  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/target-ver-syms.sh: Make some system and CPU version identifiers
+	consistent in casing.
+	[5d11c2ded7b7]
+
+	* d/d-codegen.cc, d/d-decls.cc, d/d-glue.cc: Use isMember2 when
+	checking member functions.
+	[d89c3b7d495a]
+
+	* d/d-codegen.cc, d/d-decls.cc, d/d-lang-45.h, d/d-lang.h,
+	d/d-objfile.cc: Issue #78 D1/D2 - in/out contract inheritance
+	[736ae4b92f2]
+
+2011-10-26  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/asmstmt.cc, d/d-asm-i386.h, d/d-glue.cc, d/d-irstate.cc: Issue
+	#252 - Error: suffix or operands invalid for `jc'
+	[0d65aed46422]
+
+	* d/lang-specs.h, d/patches/patch-apple-gcc-5465,
+	d/patches/patch-apple-gcc-5664, d/patches/patch-gcc-4.2.x,
+	d/patches/patch-gcc-4.3.x, d/patches/patch-gcc-4.4.x,
+	d/patches/patch-gcc-4.5.x, d/patches/patch-gcc-4.6.x: Issue #251 -
+	Remove all references to fmultilib-dir usage in gdc spec and patches.
+	[c72727fc3f13]
+
+2011-10-23  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/druntime/core/stdc/stdio.d, d/druntime/core/stdc/stdlib.d,
+	d/druntime/rt/critical_.d, d/druntime/rt/dmain2.d,
+	d/druntime/rt/monitor_.d, d/phobos/config/libc.x3,
+	d/phobos2/config/libc.x3, d/target-ver-syms.sh: Start on implementing
+	platform agnostic druntime for GDC D2.
+	[c46d1009bd78]
+
+	* d/d-lang.cc, d/target-ver-syms.sh: Add VENDOR_VERSYM to D version
+	identifiers if defined.
+	[f7abc9009d0d]
+
+	* d/d-lang.cc, d/d-objfile.cc: Issue #224 - Link time optimization
+	[bf9d0ac53e9d]
+
+	* d/d-decls.cc, d/d-glue.cc, d/d-irstate.cc, d/d-irstate.h,
+	d/d-lang.cc, d/d-objfile.cc, d/d-objfile.h, d/lang.opt: Merge changes
+	from gcc-4.7 branch.
+	[5992dd0f2f7e]
+
+	* d/d-codegen.cc: Use gcc atomics for bt, btc, btr, bts intrinsics.
+	[2cc2e8c5a778]
+
+	* d/d-glue.cc: build_assign_math_op: Stabilize LHS expression.
+	[031b711ce09]
+
+2011-10-21  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/asmstmt.cc, d/d-asm-i386.h, d/d-codegen.cc, d/d-glue.cc,
+	d/d-irstate.cc, d/d-lang-45.h, d/d-lang.h, d/dmd/mtype.c,
+	d/dmd2/mtype.c: Issue #247 - undefined reference to `.LDASM1'
+	[19de20aec625]
+
+	* d/asmstmt.cc, d/d-asm-i386.h: Fallback to 32bit instruct suffix when
+	64bit not available, add special case for fild.
+	[8789c97f84ac]
+
+	* d/asmstmt.cc, d/d-asm-i386.h: Issue #248 - Inline assembler
+	generates wrong argument size for FILD instruction.
+	[8bd2a4ca84c0]
+
+2011-09-27  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/dmd-script: Issue #241 - dmd.conf DFLAGS doesn't work with
+	DMD-style args.
+	[4bf307759462]
+
+	* d/d-codegen.cc, d/d-glue.cc: Issue #239 - Filter + Closure =
+	Segfault.
+	[23b24ffe94f2]
+
+	* d/dmd-script: Properly handle -X and -map switches in gdmd.
+	[f7c13cf55264]
+
+	* d/asmstmt.cc, d/d-asm-i386.h, d/d-irstate.cc, d/d-irstate.h: Fixup
+	some build warnings.
+	[891f65500765]
+
+	* d/dmd-script: Issue #234 - add DFLAGS to the build command in gdmd.
+	[3acdb17df213]
+
+2011-09-25  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/dmd-script: Issue #234 - dmd.conf equivalent
+	[db9070d078a8]
+
+	* d/druntime/core/thread.d, d/phobos2/std/path.d: Re-add fixes that
+	got removed in last D library merge.
+	[a998cdff6e0f]
+
+	* d/dmd/todt.c, d/dmd2/todt.c, d/dt.cc: size_t'ify toDt.
+	[c1306d366f94]
+
+	* d/d-glue.cc: CallExp - only call convert on basic return types.
+	[bc7ad8e2569]
+
+	* d/d-gcc-real.cc: real_t::convert - check base type
+	[71eb59683499]
+
+	* d/dmd/attrib.c, d/dmd2/attrib.c: Optimise attribute pragma
+	arguments.
+	[dca4ddf21110]
+
+2011-09-23  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-glue.cc: Issue #235 - ICE in feep's tools library
+	[17da3d28ba17]
+
+2011-09-15  Daniel Green  <venix1@gmail.com>
+
+	* d/d-glue.cc: Make PowAssignExp::toElem only compile with D2.
+	[fa6a47ddbd9c]
+
+	* d/dt.h: Issue #231.  Use size_t for dt_size declaration in dt.h.
+	[f9fee0fd57a2]
+
+2011-09-14  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-builtins2.cc, d/d-gcc-real.cc, d/d-gcc-real.h, d/d-glue.cc,
+	d/dmd2/constfold.c, d/dmd2/declaration.h, d/dmd2/expression.c,
+	d/dmd2/expression.h, d/dmd2/interpret.c, d/dmd2/optimize.c: Implement
+	constant folding of ^^ expressions.
+	[06f5e7c038fa]
+
+	* d/asmstmt.cc, d/d-asm-i386.h, d/d-builtins2.cc, d/d-codegen.cc,
+	d/d-cppmngl.cc, d/d-decls.cc, d/d-glue.cc, d/d-incpath.cc,
+	d/d-lang.cc, d/d-objfile.cc, d/dt.cc: Change unsigned for size_t in
+	for loops.
+	[814fc99ff732]
+
+	* d/d-lang.cc, d/dmd/mars.c, d/dmd2/mars.c: Re-enforce -Werror flag in
+	gdc.
+	[eced11f7d5b5]
+
+	* d/d-glue.cc: Issue #232 - sqrt(3) == 2.15118e-4930
+	[8994cef9271f]
+
+2011-09-12  Daniel Green  <venix1@gmail.com>
+
+	* d/d-lang.cc: Convert Array to Strings required by DMD 1.070/2.055
+	[fc0033715683]
+
+2011-09-12  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/druntime/rt/dmain2.d, d/druntime/rt/lifetime.d: Issue #214 -
+	Segfault Allocating from Shared Static C'tor
+	[41218d9f5f59]
+
+	* d/asmstmt.cc, d/d-asm-i386.h, d/d-builtins2.cc, d/d-codegen.cc,
+	d/d-codegen.h, d/d-cppmngl.cc, d/d-decls.cc, d/d-dmd-gcc.h,
+	d/d-glue.cc, d/d-incpath.cc, d/d-irstate.cc, d/d-irstate.h,
+	d/d-lang.cc, d/d-objfile.cc, d/d-objfile.h, d/dmd2/*, d/druntime/*,
+	d/phobos2/*: Updated D2 Frontend to 2.055.
+	[0ada920f6394]
+
+	* d/dmd/*, d/phobos/*: Updated D1 Frontend to 1.070.
+	[fad5f4cad72b]
+
+2011-09-10  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-spec.c: Issue #230 - Error building Cross Compiler under MinGW
+	[b0a9ef534877]
+
+	* d/d-lang.cc, d/druntime/core/thread.d: Issue #226 - GC from spawned
+	threads segfaults on 64-bit
+	[3ea496446c7e]
+
+2011-09-03  Daniel Green  <venix1@gmail.com>
+
+	* d/asmstmt.cc: Use of V1 is more correct.
+	[748ce286f58f]
+
+	* d/dmd/root.c d/dmd2/root.c: Enables MinGW32 to use ANSI STDIO.
+	[e69b142048f0]
+
+	* d/asmstmt.cc: Allow inline assembly to set return values.  Matches
+	DMD functionality.
+	[857c5645429c]
+
+2011-08-29  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-codegen.cc, d/d-decls.cc, d/d-glue.cc, d/d-lang.cc,
+	d/d-objfile.cc, d/symbol.cc: Emit pretty identifier to the debugger.
+	[ac87eb9db360]
+
+2011-08-23  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-codegen.cc, d/d-glue.cc, d/d-objfile.cc: Don't warn about unused
+	compiler generated vars.
+	[0a71a122ca29]
+
+	* d/d-codegen.cc, d/d-codegen.h, d/d-glue.cc, d/d-irstate.cc,
+	d/d-irstate.h, d/d-lang-45.h, d/d-lang.cc, d/d-lang.h: New functions
+	build_d_decl_lang_specific, d_mark_exp_read. Added support for
+	-Wunused-variable, WIP -Wunused-but-set-variable.
+	[d23bab68266c]
+
+2011-08-19  Daniel Green  <venix1@gmail.com>
+
+	* d/druntime/core/sys/windows/stacktrace.d: Issue #227.  build error
+	libphobos/core/sys/windows/stacktrace.d.
+	[b1c34b7e7764]
+
+2011-08-15  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-decls.cc: Issue #225 - Array ops should be COMDAT.
+	[dda1c10c8c7b]
+
+2011-08-12  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-glue.cc, d/d-irstate.cc: Re-add codegen which caused issue #205
+	in correct place.
+	[e26b2b67bffa]
+
+	* d/d-codegen.cc, d/d-gcc-includes.h: Issue #191 - SEGV(gimple.c:2624)
+	getting array ref of incomplete type.
+	[d0edf91c3fcf]
+
+2011-08-07  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-codegen.cc, d/d-glue.cc: Issue #205 - ICE using phobos sort.
+	[b3a5c764de90]
+
+	* d/d-asm-i386.h, d/d-tree.def: Define tree code IASM_EXPR.
+	[c7e7dc1c089b]
+
+	* d/d-asm-i386.h: Handle zero and one operand forms of fcomi, fcomip.
+	Fixed db, ds, di, dl to output constants and strings properly.
+	[e394c90a88fa]
+
+	* d/d-decls.cc, d/d-glue.cc, d/d-lang-type-45.h, d/d-lang-type.h,
+	d/d-lang.cc, d/d-lang.h: Create TYPE_LANG_SPECIFIC type for arrays,
+	functions, delegates.
+	[1c25bfb71c05]
+
+	* d/d-glue.cc, d/dt.cc: Use TYPE_STRUCTURAL_EQUALITY for conversions
+	of records, should fix Issue #217.
+	[04b8a399ddeb]
+
+	* d/asmstmt.cc, d/d-asm-i386.h: Fix error using offsetoff for
+	SymOffExp's in IASM.
+	[933d2ca08770]
+
+	* d/d-asm-i386.h: Added SSE4.1, SSE4.2 instructions
+	[6a643f59ac86]
+
+	* d/d-codegen.cc, d/d-codegen.h, d/d-glue.cc, d/d-lang-45.h,
+	d/d-lang.cc, d/d-lang.h, d/d-objfile.cc, d/dt.cc: More 4.6.x gimple
+	checking issues.
+	[148a5a16d432]
+
+2011-07-30  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-codegen.cc, d/d-glue.cc, d/d-lang-45.h, d/d-lang.h,
+	d/d-objfile.cc, d/dt.cc: Fix gimplication checking issues in 4.6.x
+	[d3cc96b0546f]
+
+	* d/d-codegen.cc: Issue #220 - Segfault on nested mixin functions.
+	[c3720dd1e4f6]
+
+	* d/patches/patch-gcc-4.6.x: Issue #218 - segmentation fault when
+	compiling Hello World.
+	[07bb061b2e4b]
+
+2011-07-28  Daniel Green  <venix1@gmail.com>
+
+	* d/d-glue.cc: Backout untested solution to issue #217.
+	[fd532d8a5181]
+
+	* d/d-glue.cc, d/setup-gcc.sh: Fixes issue #219
+	[949ab1610a42]
+
+	* d/setup-gcc.sh: Updated -hg to reflect working directory revision
+	and handle compiling outside a mercurial repository.
+	[b3b60fdac583]
+
+2011-07-24  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/GDC.html, d/README, d/gdc-version: GDC version 0.30
+	[a4f3d0470b7a]
+
+	* d/Make-lang.in, d/d-codegen.cc, d/d-codegen.h, d/d-glue.cc,
+	d/d-lang.cc, d/patches/patch-gcc-4.2.x, d/patches/patch-gcc-4.3.x,
+	d/patches/patch-gcc-4.4.x, d/patches/patch-gcc-4.5.x,
+	d/patches/patch-gcc-4.6.x, d/symbol.cc d/symbol.h: Re-implemented D
+	custom static chains into frontend - removed all belated backend
+	patches.
+	[488e8c0f482f]
+
+	* d/Make-lang.in, d/asmstmt.cc, d/d-asm-i386.h, d/d-codegen.cc,
+	d/d-codegen.h, d/d-decls.cc, d/d-glue.cc, d/d-lang.cc, d/d-objfile.cc,
+	d/d-objfile.h, d/dmd2/*, d/druntime/*, d/phobos2/*: Updated D2
+	Frontend to 2.054
+	[ca958eccbde0]
+
+	* d/Make-lang.in, d/asmstmt.cc, d/d-builtins.c, d/d-builtins2.cc,
+	d/d-codegen.cc, d/d-codegen.h, d/d-convert.cc, d/d-decls.cc,
+	d/d-glue.cc, d/d-irstate.cc, d/dmd/*, d/phobos/*: Updated D1 Frontend
+	to 1.069
+	[c77c7af3dda0]
+
+2011-07-11  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-codegen.cc, d/d-glue.cc, d/d-lang.h: Debug fixes: Give AAs a
+	TYPE_NAME. Make closure vars visible to the debugger.
+	[7cb42bd4eb94]
+
+2011-07-09  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-asm-i386.h: Issue #213 - ASM: Invalid absolute jmp/call address
+	[e01697578501]
+
+	* d/d-asm-i386.h, d/d-glue.cc, d/d-lang.cc: Asm 32/64bit generation
+	fixes.
+	[0a2261bde3e1]
+
+	* d/d-codegen.h, d/d-decls.cc, d/d-lang.h, d/patches/patch-gcc-4.4.x,
+	d/patches/patch-gcc-4.5.x, d/patches/patch-gcc-4.6.x: Use
+	TREE_NO_TRAMPOLINE macro - remove redundant patches.
+	[b79169244c60]
+
+2011-07-04  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/Make-lang.in: Fixes executable relocation issues with MinGW.
+	[c272d49246c9]
+
+	* d/d-decls.cc: Always mark struct/class members for inlining.
+	[61c81c98d80c]
+
+2011-06-30  Daniel Green  <venix1@gmail.com>
+
+	* d/d-asm-i386.h: Fixes issue #213.
+	[71737ec293cb]
+
+2011-06-20  Daniel Green  <venix1@gmail.com>
+
+	* d/phobos/internal/gc/win32.d, d/phobos/std/stream.d: Win64 support
+	for Phobos/D1.
+	[b2b0dae5dec2]
+
+	* d/Make-lang.in, d/dmd/root.c: Enables ANSI implemention of MinGW
+	stdio.
+	[fd0f112bfca8]
+
+	* d/dmd-script: Added the ability to specify the name of output map
+	file.  Undocumented DMD feature.
+	[d36a8b0e175]
+
+2011-06-19  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-codegen.cc, d/d-glue.cc, d/d-objfile.cc, d/dmd2/arrayop.c,
+	d/druntime/core/stdc/math.d, d/phobos2/gcc/deh.d: Issue #212 - ICE
+	With Map, dotProduct
+	[f333a7e70d3d]
+
+2011-06-08  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-asm-i386.h, d/d-builtins2.cc, d/d-codegen.cc, d/d-codegen.h,
+	d/d-decls.cc, d/d-glue.cc, d/dmd2/*, d/druntime/*, d/phobos2/*:
+	Updated D2 Frontend to 2.053
+	[89eccdc0155e]
+
+	* d/d-decls.cc, d/d-lang-45.h, d/d-lang.h, d/d-objfile.cc: gcc-4.6.x -
+	Fix imported static const optimizer bug (D2 now passes testsuite).
+	[9ccc077422a8]
+
+2011-06-05  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/Make-lang.in, d/d-codegen.cc, d/dmd-script: gcc-4.6.x - -combine
+	removed, re-add d-gcc.o object, fix compilation on ARM.
+	[dd43ade64753]
+
+	* d/d-decls.cc, d/d-objfile.cc, d/patches/patch-gcc-4.6.x: gcc-4.6.x -
+	Fix undefined references to thunks.
+	[6b13c1f980f4]
+
+	* d/d-bi-attrs-40.h, d/d-bi-attrs-41.h: Remove d-bi-attrs.h for 4.0
+	and 4.1
+	[86169933de9c]
+
+2011-06-02  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/Make-lang.in, d/d-bi-attrs-45.h, d/d-lang.cc, d/d-spec.c,
+	d/lang.opt, d/patches/patch-gcc-4.6.x, d/setup-gcc.sh: Fix missing
+	gcc-4.6 driver options, add to setup scripts.
+	[937e3e68e003]
+
+2011-05-31  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/Make-lang.in, d/config-lang.in, d/d-builtins.c, d/d-builtins2.cc,
+	d/d-codegen.h, d/d-gcc-real.cc, d/d-glue.cc, d/d-incpath.cc,
+	d/d-lang-45.h, d/d-lang.cc, d/d-spec.c, d/lang.opt,
+	d/patches/patch-gcc-4.6.x, d/patches/patch-toplev-4.6.x: Add gcc-4.6.x
+	support
+	[94fdbcd3ae33]
+
+	* d/Make-lang.in, d/d-bi-attrs-45.h, d/d-builtins.c, d/d-codegen.cc,
+	d/d-codegen.h, d/d-gcc-includes.h, d/d-lang.cc, d/d-lang.h,
+	d/d-objfile.cc, d/druntime/core/stdc/stdarg.d,
+	d/druntime/core/vararg.d, d/patches/patch-gcc-4.0.x,
+	d/patches/patch-gcc-4.1.x, d/patches/patch-toplev-4.0.x,
+	d/patches/patch-toplev-4.1.x, d/phobos/std/c/stdarg.d,
+	d/phobos/std/stdarg.d, d/symbol.h: Drop support for gcc-4.0.x;
+	gcc-4.1.x
+	[75f0bbfbdd5e]
+
+	* d/d-asm-i386.h: Rename cmpxch8b to cmpxchg8b
+	[21128c37d917]
+
+2011-04-29  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-glue.cc: Issue #203 - ArrayLiteralExp::toElem incorrectly sets
+	TREE_STATIC
+	[584a5f3a7dce]
+
+	* d/druntime/core/stdc/wchar_.d: Use alias to make vswprintf and
+	swprintf match ANSI signature.
+	[344229e36805]
+
+	* d/d-glue.cc: Issue #200 - Optimization breaks condition variables
+	[b805b62dcdc8]
+
+	* d/d-builtins2.cc, d/d-codegen.cc, d/d-glue.cc, d/dt.cc: Be less
+	trusting with GCC builtins.
+	[194016d49ca]
+
+2011-04-23  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-asm-i386.h: Make SSE3 iasm opcodes available for 32bit.
+	[7861f5acdf6b]
+
+	* d/dmd/todt.c, d/dmd2/todt.c: speed up emission of large static array
+	initialisers.
+	[9a840a37e508]
+
+	* d-decls.cc, d/d-glue.cc, d/phobos/configure, d/phobos/configure.in,
+	d/phobos2/Makefile.am, d/phobos2/configure: D1 regression with static
+	array equality testing.
+	[af07c3a2f08c]
+
+2011-04-18  Daniel Green  <venix1@gmail.com>
+
+	* d/phobos2/Makefile.in: Added std/c/wcharh.d to list of compiled
+	Windows objects.  Required by MinGW's stdio patch
+	[3cf208768d86]
+
+2011-04-17  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/Make-lang.in, d/d-decls.cc, d/druntime/core/thread.d,
+	d/phobos/configure, d/phobos/configure.in, d/phobos2/Makefile.am,
+	d/phobos2/Makefile.in, d/phobos2/configure, d/phobos2/configure.in:
+	Edit configure scripts so cross compilers install imports in gcc
+	version specific runtime directory
+	[8fe76a59ba1e]
+
+	* d/d-builtins2.cc: Issue #192 - ARM Compilation Fails When Including
+	gcc.intrinsics
+	[bf186179001b]
+
+	* d/druntime/core/stdc/stdio.d: Change ctor in cstdio to 'shared
+	static' - should fix Mingw IO in std.stdio
+	[efb1b1ed90d8]
+
+	* d/d-objfile.cc, d/druntime/core/stdc/stdio.d, d/phobos2/Makefile.am,
+	d/phobos2/Makefile.in, d/phobos2/std/stdio.d: Merge Daniel's MinGW
+	work, put special case static ctor in core.stdio
+	[71f10f204790]
+
+2011-04-15  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/dmd/func.c, d/dmd2/func.c: Remove __va_argsave definition from
+	64bit GDC
+	[997a9ec407fe]
+
+	* testsuite/*: Upload D2 testsuite for GDC.
+	[6e40c9c42f6e]
+
+	* d/d-asm-i386.h, d/d-irstate.cc, d/d-objfile.cc,
+	d/druntime/core/thread.d: 64bit IASM fix, move tls definitions to
+	d-objfile, add _tls_index stub for MinGW.
+	[ff35bec78100]
+
+	* d/d-objfile.cc: Issue #187 - Multiple definition of TypeInfo with
+	MinGW.
+	[d52ae1bf8343]
+
+	* d/d-lang.cc, d/dmd-script, d/druntime/rt/monitor_.d: Uncomment
+	implementations in rt.monitor_ (for MinGW), code cleanups.
+	[1cf36f68d061]
+
+	* d/d-codegen.cc: Issue #189 - sqrt(integer) causes ICE in
+	maybeExpandSpecialCall
+	[d46da356ca46]
+
+	* d/d-incpath.cc: Issue #188 - -J option ignored.
+	[875395c71f37]
+
+	* d/Make-lang.in, d/d-asm-i386.h, d/d-builtins2.cc, d/d-codegen.cc,
+	d/d-glue.cc, d/d-irstate.cc, d/dt.cc: 64bit testsuite fixes - passes
+	all tests 32bit linux passes.
+	[62c8038af25a]
+
+	* d/Make-lang.in, d/d-builtins.c, d/d-decls.cc, d/d-lang-45.h,
+	d/d-lang.cc, d/d-lang.h, d/d-misc.c, d/d-objfile.cc,
+	d/phobos/configure, d/phobos/configure.in, d/phobos2/configure,
+	d/phobos2/configure.in: Remove d-misc.c, fixed code that depended on
+	it.
+	[066ecfe85f1]
+
+	* d/d-builtins2.cc, d/d-codegen.cc, d/d-codegen.h: Issue #185 -
+	Intrinsics cause ICE on MinGW
+	[c17a1cdfb868]
+
+2011-04-11  Daniel Green  <venix1@gmail.com>
+
+	* d/Make-lang.in, d/d-incpath.cc, d/d-lang-45.h, d/d-lang.cc,
+	d/d-lang.h: Added d-incpath.c for handling import paths.
+	[5a55df337408]
+
+	* d/setup-gcc.sh: Added option '-hg' for replacing 'gdc-version' with
+	repository revision.
+	[32ed0cf6d419]
+
+2011-04-09  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-codegen.cc, d/d-codegen.h: Implement math intrinsics into the
+	compiler.
+	[431f375abaf1]
+
+	* d/d-asm-i386.h, d/druntime/core/atomic.d: More 64bit IASM fixes,
+	favour ASM implementations in core.atomic.
+	[8f5627ca0ba5]
+
+	* d/phobos2/gcc/bitmanip.d: Really remove gcc.bitmanip.
+	[c61617158bd8]
+
+	* d/druntime/core/atomic.d, d/phobos/configure, d/phobos/configure.in,
+	d/phobos2/Makefile.am, d/phobos2/Makefile.in, d/phobos2/configure,
+	d/phobos2/configure.in, d/phobos2/gcc/atomics.d: First stab at
+	gcc.atomics; Remove unused gcc.bitmanip; Add -inline as DFLAG for
+	Phobos
+	[1a74f184e2d8]
+
+2011-04-08  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-asm-i386.h, d/d-codegen.cc, d/d-glue.cc, d/d-lang.cc,
+	d/d-spec.c: Issue #164 - ICE:fold-const.c:2792.
+	[c42297cf76c3]
+
+	* d/d-asm-i386.h, d/druntime/core/thread.d: 64bit IASM fixes.
+	[406daaa254ad]
+
+	* d/d-builtins2.cc, d/d-glue.cc: Issue #164 - (ICE:fold-const.c:2792)
+	using std.range.zip
+	[437b1cc2f607]
+
+	* d/d-lang.cc, d/phobos/Makefile.am, d/phobos/Makefile.in,
+	d/phobos2/Makefile.am, d/phobos2/Makefile.in: Phobos: Issue #179 -
+	explicitly include zlib directory when building.
+	[37ba91ed454c]
+
+	* d/d-convert.cc: Issue 143: non-determistic FPE in runtime code.
+	[4ea171da4900]
+
+	* d/d-codegen.cc: Issue #178 - ICE in hwi2toli.
+	[9133d6873087]
+
+	* d/Make-lang.in, d/d-codegen.cc: Tidy up Make-lang.in, remove old
+	bits.
+	[1d8b36b4bfb7]
+
+	* d/d-codegen.cc, d/d-glue.cc, d/d-irstate.cc, d/d-objfile.cc: Remove
+	old-old workarounds for GCC < 4.0.x
+	[b2ffdbb41245]
+
+	* d/d-gcc-real.cc, d/d-gcc-real.h, d/dmd/cast.c, d/dmd2/cast.c,
+	d/dmd2/expression.c: D2: Fix precision bug in PowExp.
+	[ab7782c68bb5]
+
+	* d/d-codegen.cc, d/d-gcc-real.cc: Don't error when casting from
+	static array -> struct of same type size.
+	[90b0b0208d3f]
+
+2011-03-30  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/Make-lang.in, d/d-gcc-real.cc, d/d-gcc-real.h: Fix strict-aliasing
+	warning.
+	[79ed94287f94]
+
+2011-03-30  Daniel Green  <venix1@gmail.com>
+
+	* d/asmstmt.cc: An unitialized array was forcing GDC to mark all
+	registers as clobbered.
+	[007de89f7694]
+
+2011-03-27  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-lang.cc: Move cgraph finalize into d_write_global_decls.
+	[b7da3f7426ac]
+
+	* d/asmstmt.cc, d/d-asm-i386.h, d/d-codegen.h, d/d-dmd-gcc.h,
+	d/d-gcc-real.h, d/d-irstate.cc, d/d-irstate.h, d/d-objfile.cc,
+	d/d-objfile.h, d/druntime/core/thread.d, d/patches/patch-gcc-4.5.x,
+	d/symbol.h: _tlsstart/_tlsend compiler generated symbols.
+	[d2dfed983fff]
+
+	* d/Make-lang.in, d/d-builtins.c, d/d-builtins2.cc, d/d-codegen.cc,
+	d/d-glue.cc, d/d-lang-45.h, d/d-lang.cc, d/d-lang.h: New
+	d_global_trees array for gcc trees of commonly used D types/decls.
+	[d553b62db8e6]
+
+2011-03-24  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-codegen.cc, d/d-decls.cc, d/d-glue.cc, d/d-objfile.cc,
+	d/d-objfile.h, d/patches/patch-gcc-4.1.x, d/patches/patch-gcc-4.2.x,
+	d/patches/patch-gcc-4.3.x, d/patches/patch-gcc-4.4.x,
+	d/patches/patch-gcc-4.5.x: More WIP DMD calling convention - evaluate
+	arguments left to right, pass in reverse order
+	[6949b05e21e4]
+
+	* d/asmstmt.cc, d/d-asm-i386.h, d/d-codegen.cc, d/d-codegen.h,
+	d/d-irstate.cc, d/d-lang-45.h, d/d-lang.cc, d/d-lang.h, d/lang.opt:
+	More WIP - 64bit IASM.
+	[a85a80c8732a]
+
+	* d/patches/patch-gcc-4.1.x, d/patches/patch-gcc-4.2.x,
+	d/patches/patch-gcc-4.3.x, d/patches/patch-gcc-4.4.x,
+	d/patches/patch-gcc-4.5.x, d/patches/patch-toplev-4.1.x,
+	d/patches/patch-toplev-4.2.x, d/patches/patch-toplev-4.3.x,
+	d/patches/patch-toplev-4.4.x, d/patches/patch-toplev-4.5.x: Switch
+	patches to unified diff.
+	[1738b301128b]
+
+	* d/d-builtins2.cc, d/d-decls.cc, d/d-glue.cc, d/d-objfile.cc,
+	d/d-tree.def, d/patches/patch-gcc-4.1.x, d/patches/patch-gcc-4.2.x,
+	d/patches/patch-gcc-4.3.x, d/patches/patch-gcc-4.4.x,
+	d/patches/patch-gcc-4.5.x: More WIP DMD calling convention - Add
+	'optlink' function attribute.
+	[521dce459f71]
+
+2011-03-19  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-codegen.cc, d/d-codegen.h, d/d-glue.cc: WIP: Merge
+	make_bool_binop, make_math_op, make_assign_math_op into toElemBin.
+	[886b0a5af18a]
+
+	* d/asmstmt.cc, d/d-asm-i386.h, d/d-bi-attrs-44.h, d/d-bi-attrs-45.h,
+	d/d-builtins2.cc, d/d-codegen.cc, d/d-codegen.h, d/d-convert.cc,
+	d/d-cppmngl.cc, d/d-decls.cc, d/d-glue.cc, d/d-irstate.h,
+	d/d-lang-45.h, d/d-objfile.cc, d/d-spec.c: Use gcc_unreachable instead
+	of abort, cleanup line endings.
+	[3d6a01bd6e93]
+
+2011-03-18  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-lang.cc, d/d-objfile.cc, d/d-objfile.h, d/symbol.cc, d/symbol.h:
+	Issue #167 - Assembler error: Already defined.
+	[36a609d5155b]
+
+	* d/d-glue.cc: IndexExp: call aaGetp if AA is modifiable.
+	[d69227218b07]
+
+	* d/d-codegen.cc, d/d-objfile.cc: Issue #165: Link failure with
+	templates.
+	[2221d9fb1dd9]
+
+	* d/Make-lang.in, d/d-builtins2.cc, d/d-codegen.cc: Add experimental
+	void* _argptr implementation switch in Makefile.
+	[9a8cbe47da29]
+
+	* d/Make-lang.in, d/d-builtins2.cc, d/d-codegen.cc, d/d-convert.cc,
+	d/d-gcc-real.cc, d/d-glue.cc, d/d-spec.c: Replace calls to
+	fold(build()) with fold_build()
+	[8eab661a9626]
+
+	* d/d-convert.cc: Harden d_truthvalue_conversion, catches scalars
+	passed for conversion by buggy frontend.
+	[ff5142f57beb]
+
+	* d/Make-lang.in, d/d-decls.cc, d/d-glue.cc, d/d-lang.cc: Add
+	experimental DMD calling convention switch in Makefile
+	[c5153f67119a]
+
+	* d/d-bi-attrs-44.h: Update d-bi-attrs-44.h for current 4.4.5 release.
+	[e44747eee585]
+
+	* d/d-glue.cc: Mark used parameters to prevent false warnings from
+	-Wunused-parameter.
+	[f0a6db429617]
+
+2011-03-12  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-glue.cc: Fix codegen bug in CatAssignExp.
+	[15f72843d336]
+
+	* d/d-builtins2.cc, d/d-codegen.cc, d/d-codegen.h, d/d-glue.cc,
+	d/d-lang.cc, d/d-objfile.cc: IRState::addTypeModifiers - Add D2 type
+	modifiers (const/shared) onto GCC types (const/volatile).
+	[ef3c725214ec]
+
+2011-03-06  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-lang.cc, d/d-spec.c, d/gdc.1, d/lang-specs.h,
+	d/patches/patch-apple-gcc-5664, d/patches/patch-gcc-4.2.x,
+	d/patches/patch-gcc-4.3.x, d/patches/patch-gcc-4.4.x,
+	d/patches/patch-gcc-4.5.x: Remove lang_specific_spec_functions code.
+	[da7dc4ae6277]
+
+	* d/dmd-script: Issue #161 - noboundscheck doesn't work with GDMD.
+	[9ad16376258f]
+
+2011-02-28  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-decls.cc, d/d-glue.cc, d/d-objfile.cc, d/d-objfile.h,
+	d/dmd/template.c, d/dmd2/template.c, d/symbol.h: Moved GCC code to
+	prevent templates being emitted more than once to the backend.
+	[585920b19963]
+
+	* d/Make-lang.in, d/d-decls.cc, d/d-glue.cc, d/d-lang.h,
+	d/d-objfile.cc: Cleaned up ObjFile::makeDeclOneOnly implementation.
+	[cbad6b2b6b42]
+
+2011-02-25  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-apple-gcc.c, d/d-builtins2.cc, d/d-c-stubs.c, d/d-codegen.cc,
+	d/d-gcc-includes.h, d/d-glue.cc, d/d-lang.cc, d/d-objfile.cc: Remove
+	dependencies on CPP objects.
+	[33967b4ff6e9]
+
+	* d/d-gcc-includes.h, d/patches/patch-apple-gcc-5465,
+	d/patches/patch-apple-gcc-5664, d/patches/patch-gcc-4.0.x,
+	d/patches/patch-gcc-4.1.x, d/patches/patch-gcc-4.2.x,
+	d/patches/patch-gcc-4.3.x, d/patches/patch-gcc-4.4.x,
+	d/patches/patch-gcc-4.5.x: Remove old redundant code.
+	[7b72e8118c29]
+
+	* d/d-spec.c: Handle -pthread option in d-spec.c
+	[b6062a158fdd]
+
+	* d/d-glue.cc, d/phobos2/std/stdio.d, d/target-ver-syms.sh: Issue #151
+	- MinGW-w64: recent GDC does not build w/ recent GCC
+	[978bb5bc82cf]
+
+	* d/druntime/core/sys/posix/sys/un.d, d/phobos2/Makefile.am,
+	d/phobos2/Makefile.in: Remove posix.sys.un from druntime.
+	[bb92ab765845]
+
+2011-02-20  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/Make-lang.in, d/d-builtins2.cc, d/d-lang.cc, d/d-spec.c, d/dmd2/*,
+	d/druntime/*, d/phobos2/*: Updated D2 Frontend to 2.052.
+	[c4980ba67971]
+
+	* d/dmd/*, d/phobos/*: Updated D1 Frontend to 1.067.
+	[343f35cc00c8]
+
+	* d/d-objfile.cc: Put compiler-generated arrayops on comdat.
+	[4d14649603c2]
+
+	* d/d-gcc-includes.h, d/d-glue.cc: use totym to apply D type modifiers
+	on GCC types.
+	[d3b9d3188b68]
+
+	* d/d-decls.cc: Issue #155 - ICE when using byte
+	[7846c6471861]
+
+	* d/d-bi-attrs-43.h, d/d-bi-attrs-44.h, d/d-bi-attrs-45.h: Remove
+	'artificial' attribute from GDC.
+	[4b8f90d1f6aa]
+
+	* d/d-codegen.cc, d/d-glue.cc, d/d-irstate.cc, d/d-lang.cc: Conversion
+	fixes for types with GCC attributes applied.
+	[5e733844f91f]
+
+	* d/d-codegen.cc, d/d-codegen.h, d/d-decls.cc, d/d-glue.cc,
+	d/d-objfile.cc, d/druntime/object.di, d/druntime/object_.d,
+	d/druntime/rt/aaA.d, d/phobos/Makefile.am, d/phobos/Makefile.in,
+	d/phobos/gcc/support.d, d/phobos/internal/aaA.d,
+	d/phobos/internal/gc/gc.d, d/phobos2/gcc/support.d: ABI update: New
+	signatures for _d_assocarrayliteralTp, _d_arrayliteralTp and
+	_d_arrayappendcTp
+	[b66226b53e71]
+
+	* d/d-glue.cc: Update make_assign_math_op implementation
+	[8390d07b450e]
+
+	* d/d-builtins.c, d/d-builtins2.cc, d/d-codegen.cc,
+	d/d-gcc-includes.h, d/d-glue.cc, d/d-lang-45.h, d/d-lang.cc,
+	d/d-lang.h, d/d-objfile.cc: Fix cast-qual and unused parameter
+	warnings in glue.
+	[377c4f5505be]
+
+	* d/Make-lang.in, d/d-c-stubs.c, d/d-lang.cc: Drop support for CPP
+	Builtins.
+	[6dc9468f6789]
+
+2011-02-10  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-builtins.c, d/d-builtins2.cc, d/d-lang-45.h, d/d-lang.cc,
+	d/d-lang.h: New function added to langhooks: d_register_builtin_type.
+	[9674e391725f]
+
+	* d/d-bi-attrs-40.h, d/d-bi-attrs-41.h, d/d-bi-attrs-42.h,
+	d/d-bi-attrs-43.h, d/d-bi-attrs-44.h, d/d-bi-attrs-45.h: Only accept
+	string argument in mode attribute handler.
+	[99764267b71b]
+
+	* d/asmstmt.cc, d/d-builtins2.cc, d/d-codegen.cc, d/d-cppmngl.cc,
+	d/d-decls.cc, d/d-dmd-gcc.h, d/d-glue.cc, d/d-irstate.cc,
+	d/d-objfile.cc, d/d-todt.cc: Remove all references to total.h in glue.
+	[30c8afda4902]
+
+	* d/asmstmt.cc, d/d-apple-gcc.c, d/d-asm-i386.h, d/d-builtins2.cc,
+	d/d-codegen.cc, d/d-cppmngl.cc, d/d-decls.cc, d/d-gcc-real.cc,
+	d/d-glue.cc, d/d-irstate.cc, d/d-lang.cc, d/d-objfile.cc, d/dt.cc:
+	Remove all references to assert.h in glue.
+	[1d176d15d1e8]
+
+2011-02-02  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-bi-attrs-40.h, d/d-bi-attrs-41.h, d/d-bi-attrs-42.h,
+	d/d-bi-attrs-43.h, d/d-bi-attrs-44.h, d/d-bi-attrs-45.h,
+	d/dmd/attrib.c, d/dmd2/attrib.c: Fix mode attribute handler to accept
+	string argument.
+	[4ab9f7b5de07]
+
+2011-01-29  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/druntime/core/stdc/config.d: D2 - import gcc.builtins in
+	core.stdc.config
+	[1e41fd67396c]
+
+	* d/d-codegen.cc, d/d-glue.cc, d/druntime/core/stdc/config.d,
+	d/druntime/core/stdc/stdint.d, d/druntime/core/thread.d,
+	d/druntime/gc/gc.d, d/druntime/gc/gcbits.d, d/druntime/gc/gcx.d,
+	d/druntime/gcstub/gc.d, d/druntime/rt/lifetime.d,
+	d/phobos2/std/intrinsic.d: 64bit TLS/GC fixes. Closes #109, #115.
+	[0c10de583cd3]
+
+2011-01-28  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/Make-lang.in, d/d-codegen.cc, d/dmd/*, d/phobos/*: Updated D1
+	Frontend to 1.066
+	[06b390b6f86b]
+
+	* d/d-codegen.cc, d/d-glue.cc, d/druntime/rt/mars.h,
+	d/phobos/std/c/stdarg.d: Remove redundant checks for Tbit in D1, add
+	__va_argsave_t alias in phobos.
+	[5a4481f10bce]
+
+	* d/Make-lang.in: use new variable (ALL_CXXFLAGS)
+	[a3ec7496100e]
+
+	* d/d-c-stubs.c, d/d-codegen.cc, d/d-codegen.h, d/dmd/root.h,
+	d/dmd2/root.h: Implement frontend std.intrinsics into GDC.
+	[330bd9e6077b]
+
+2011-01-18  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/asmstmt.cc, d/d-codegen.cc, d/dmd/statement.h, d/dmd2/statement.h:
+	Implemented ExtAsmstatement::toCBuffer.
+	[4163067c9831]
+
+	* d/dmd/arrayop.c, d/dmd/root.c, d/dmd2/arrayop.c, d/dmd2/root.c: Add
+	binary implementation, use it in arrayops.
+	[78358cd41c04]
+
+	* d/dmd2/func.c, d/phobos/std/math.d, d/phobos2/std/intrinsic.d,
+	d/phobos2/std/math.d, d/phobos2/std/string.d: Fix log2 implementation
+	for systems requiring supplement.
+	[961f4dd29944]
+
+2011-01-16  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-glue.cc: Pass static chain by reference for functions nested in
+	classes.
+	[e37f417ab86f]
+
+	* d/d-lang-45.h, d/dmd/todt.c, d/dmd2/todt.c: rework todt for GCC.
+	[a15a367a189a]
+
+	* d/druntime/core/sys/posix/config.d,
+	d/druntime/core/sys/posix/sys/stat.d,
+	d/druntime/core/sys/posix/sys/types.d, d/druntime/gc/gcx.d: rework
+	sys.stat struct implementation.
+	[dc8e70a01ccf]
+
+2011-01-13  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-glue.cc, d/d-lang.cc, d/d-lang.h: Improve type names of
+	shared/const/immutable types in debugging.
+	[95990b0754e6]
+
+	* d/d-codegen.cc: Issue #147 - static arrays passed as parameter
+	should be value type.
+	[59c59a459398]
+
+	* d/patches/patch-gcc-4.4.x, d/patches/patch-gcc-4.5.x: Second fix for
+	Issue #104.
+	[1e4da57f4be4]
+
+2011-01-09  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/dmd/mtype.c, d/dmd2/mtype.c: Issue #134 - Fix 64bit double align.
+	[ab3473b8ee56]
+
+	* d/dmd-script, d/patches/patch-gcc-4.4.x, d/patches/patch-gcc-4.5.x:
+	Remove -fomit-frame-pointer from gdmd, fixes Issue #141
+	[191fd75f1716]
+
+2011-01-06  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-codegen.h, d/d-glue.cc, d/d-objfile.cc, d/lang-specs.h: Compiler
+	segfault when not Object class not defined.
+	[44b6978e5f6c]
+
+	* d/d-builtins2.ca,c d/d-codegen.h, d/d-decls.cc, d/d-glue.cc,
+	d/d-lang.cc, d/dmd/dchar.h, d/dmd/mars.c, d/dmd2/dchar.h: Fix some
+	warnings in d-lang, ICE when object.d is empty.
+	[48827ef72351]
+
+	* d/d-asm-i386.h, d/d-codegen.h: Refs Issue #135 - turn ICE into a
+	temp error.
+	[8f4b7ddb676e]
+
+	* d/d-glue.cc: Call rest_of_type_compilation in toDebug for
+	Record/Union/Enums.
+	[ca79068bcb60]
+
+	* d/druntime/object.di, d/druntime/object_.d: Issue #133 - Segfault On
+	AA Foreach
+	[aba6c8857d64]
+
+	*  d/druntime/core/thread.d, d/druntime/gc/gcx.d: Refs #115 - addRoot
+	for each call for malloc in the GC.
+	[3721c1dc5aad]
+
+	* d/phobos2/Makefile.am, d/phobos2/Makefile.in: D2 - emit templates
+	only for building phobos.
+	[c2b8a3f7c35b]
+
+	* d/d-decls.cc, d/d-objfile.cc: Issue #132 - unresolved symbol with
+	typedef initializers.
+	[69ebdbbcd8c2]
+
+	* d/druntime/core/sys/posix/config.d,
+	d/druntime/core/sys/posix/signal.d,
+	d/druntime/core/sys/posix/sys/stat.d, d/phobos2/std/file.d: Fix struct
+	stat_t implementation for linux.
+	[29c51189bf66]
+
+2011-01-02  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d/d-spec.c: Fix warning messages in d-spec.c.
+	[da4c33277396]
+
+	* d/d-codegen.cc,  d/d-glue.cc: Issue #105 - assertion failure
+	comparing structs for equality.
+	[9a212ed12cec]
+
+	* d/d-codegen.cc: Fix some diagnostic messages.
+	[1447423e541a]
+
+	* d/d-convert.cc: Update d_convert_basic for gcc-4.5
+	[28166c71baad]
+
+	* d/d-builtins.c, d/d-builtins2.cc, d/d-codegen.cc, d/d-decls.cc,
+	d/d-glue.cc, d/d-lang-45.h, d/d-lang.cc, d/d-lang.h, d/d-objfile.cc:
+	Declare d_build_decl as extern "C". Add function d_build_decl_loc.
+	[29253025adb2]
+
+
+Copyright (C) 2011 Free Software Foundation, Inc.
+
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
diff --git a/gcc/d/ChangeLog-2012 b/gcc/d/ChangeLog-2012
new file mode 100644
index 00000000000..741747b06e5
--- /dev/null
+++ b/gcc/d/ChangeLog-2012
@@ -0,0 +1,857 @@
+2013-02-15  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* Make-lang.in (GDC_EXTENDED_ASM_SYNTAX): Remove macro.
+
+2013-02-14  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-lang.h (D_DECL_IS_CONTRACT): Remove macro.
+	* d-decls.cc (FuncDeclaration::toSymbol): Likewise.
+
+2013-02-13  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-lang.cc (d_gcc_is_target_win32): Remove.
+	(d_add_builtin_version): New function to handle define_builtin
+	callback from backend.
+	* d-codegen.cc (IRState::maybeExpandSpecialCall): Remove intrinsic bt.
+
+	* d-builtins.c: Merge with d-builtins2.cc.
+	* d-builtins2.cc: Remove.
+
+2013-02-07  Johannes Pfau  <johannespfau@gmail.com>
+
+	* d-lang.cc (d_init): Use gcc's config system for predefined OS versions.
+	* setup-gcc.sh: Likewise.
+	* target-ver-syms.sh: Likewise.
+
+2013-02-05  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-builtins2.cc (gcc_type_to_d_type): Remove STRUCTTHISREF condition.
+	* d-decls.cc (FuncDeclaration::toSymbol): Likewise.
+	* d-elem.cc (ThisExp::toElem): Likewise.
+	* d-ctype.cc (TypeSArray::toCtype): Remove SARRAYVALUE condition.
+	* d-codegen.cc (IRState::isDeclarationReferenceType): Likewise.
+	(IRState::isArgumentReferenceType): Likewise.
+
+2013-02-01  Johannes Pfau  <johannespfau@gmail.com>
+
+	* d-lang.cc (d_init): Use gcc's config system for predefined CPU versions.
+	(d_init): Fix definition of D_LP64 version.
+	* setup-gcc.sh: Likewise.
+	* target-ver-syms.sh: Likewise.
+
+2012-12-16  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-decls.cc (FuncDeclaration::toSymbol): Don't optimise PUREconst
+	calls.
+
+2012-10-27  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-codegen.cc (IRState::buildAssignOp): Handle case where LHS type is
+	not compatible with expression type.
+
+2012-10-26  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-decls.cc (ClassDeclaration::toSymbol): Use empty RECORD_TYPE to
+	build internal symbol.
+	(Module::toSymbol): Likewise.
+	* d-objfile.cc (outdata): Set type size from constructor if not
+	COMPLETE_TYPE_P.  Assert that DECL_INITIAL is never bigger than
+	TYPE_SIZE.
+
+2012-10-25  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-codegen.cc (IRState::getFrameInfo): Use vthis to determine whether
+	function is nested.
+
+2012-10-21  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-builtins2.cc (gcc_type_to_d_type): Remove special case for
+	double/long double types.
+	(d_gcc_magic_builtins_module): Cleanup generation of builtin types.
+	Add __builtin_unwind_int and __builtin_unwind_uint.
+
+2012-10-16  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-objfile.cc (ObjectFile::outputThunk): Mark thunk as DECL_WEAK
+	rather than using weakref attribute.
+
+2012-10-14  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-bi-attrs.h: Remove file.
+	* d-builtins.c (d_attribute_table): Define table of machine independant
+	attributes for gcc builtins.
+	(d_format_attribute_table): Define table of format attributes for gcc
+	builtins.
+	(handle_noreturn_attribute, handle_leaf_attribute,
+	handle_const_attribute, handle_malloc_attribute,
+	handle_returns_twice_attribute, handle_pure_attribute,
+	handle_novops_attribute, get_nonnull_operand,
+	handle_nonnull_attribute, handle_nothrow_attribute,
+	handle_sentinel_attribute, handle_type_generic_attribute,
+	handle_fnspec_attribute, handle_transaction_pure_attribute,
+	ignore_attribute): Moved common attribute handlers from d-bi-attrs.h.
+	* d-lang.cc (LANG_HOOKS_ATTRIBUTE_TABLE): Use instead of
+	LANG_HOOKS_COMMON_ATTRIBUTE_TABLE.
+	(d_attribute_table): Renamed from d_common_attribute_table.
+	(d_format_attribute_table): Renamed from
+	d_common_format_attribute_table.
+	(d_init_ts): Renamed from d_common_init_ts.
+
+	* d-builtins2.cc (d_bi_init): Determine D frontend type for size_t.
+	* d-objfile.cc (ObjectFile::hasModule): Remove old compatibility
+	macros.
+
+2012-10-08  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-glue.cc (VectorExp::toElem): Handle non-constant array literals as
+	vector expressions.
+
+2012-10-04  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-glue.cc (VectorExp::toElem): Handle both array literal as well as
+	single element constructors for vector expressions.
+
+2012-09-27  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-convert.cc (convert): Remove assert.
+
+2012-09-22  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-codegen.cc (IRState::maybeCompound): Use IRState::compound.
+	(IRState::maybeVoidCompound): Use IRState::voidCompound.
+	(IRState::call): Check TREE_SIDE_EFFECTS to determine order of
+	evaluation in function calls.  Evaluate callee before arguments if has
+	side effects.
+	* d-decls.cc (FuncDeclaration::toSymbol): Don't set any pure/nothrow
+	attributes if asserts are generated in code.
+	* d-incpath (add_fileimp_path): Fix ICE using -J option.
+	* d-objfile.cc (Obj::moduleinfo): Clean-up.
+
+2012-09-18  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-lang.cc (d_initialize_diagnostics): New function, disable unneeded
+	diagnostic options.
+	(d_handle_option): Remove OPT_fdebug_c.
+	* d-spec.c (lang_specific_driver): Remove OPT_fod_, OPT_fop.
+	* lang.opt: Remove -fdebug-c, -fod, and -fop compiler options.
+
+2012-09-17  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-codegen.h (CtorEltMaker::cons): Adjust call to VEC_safe_push.
+	* d-objfile.cc (ObjectFile::stripVarDecl): Clean-up.
+
+2012-09-16  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-codegen.cc (IRState::isCallByAlias): New function.
+	(IRState::call): Use IRState::isCallByAlias.
+	* d-objfile.cc (ObjectFile::setupSymbolStorage): Mark
+	force_static_public symbols as public.
+
+	* d-spec.c (lang_specific_driver): Update for GCC-4.8.
+	* lang.opt: Fix spelling of option -static-libphobos
+
+	* d-codegen.cc (IRState::maybeExpandSpecialCall): Do not handle inp*
+	and outp* port intrinsic functions.
+	(IRState::maybeSetUpBuiltin): Likewise.
+	(IRState::expandPortIntrinsic): Remove.
+
+2012-09-10  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-codegen.cc (AggLayout::doFields): Propagate volatile out of type.
+	(AggLayout::addField): Likewise.
+	* d-decls.cc (VarDeclaration::toSymbol): Likewise.
+
+2012-09-06  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-codegen.h (IRState::vconvert): Don't use VIEW_CONVERT_EXPR.
+	* d-glue.cc (TypeEnum::toCtype): Mark TYPE_PACKED if flag_short_enums.
+	(TypeClass::toCtype): Mark TREE_ADDRESSABLE to ensure class is always
+	passed in memory.
+
+	* d-tree.def (UNSIGNED_RSHIFT_EXPR): Define new tree expression.
+	(FLOAT_MOD_EXPR): Define new tree expression.
+	* d-lang.cc (d_common_init_ts): New function.
+	(d_write_global_declarations): Call check_global_declarations after
+	finalize_compilation_unit.
+	(d_gimplify_expr): Handle UNSIGNED_RSHIFT_EXPR, IASM_EXPR.
+	* d-codegen.cc (IRState::arrayOpNotImplemented): New function.
+	(IRState::buildOp): New function.
+	(IRState::buildAssignOp): New function.
+	* d-glue.cc (build_bool_binop): Remove function, mostly move to
+	CmpExp::toElem.
+	(build_math_op): Remove function, mostly move to IRState::buildOp.
+	(build_assign_math_op): Remove function, mostly move to
+	IRState::buildAssignOp.
+	(BinExp::toElemBin): Remove function.
+	(IdentityExp::toElem, EqualExp::toElem, CmpExp::toElem)
+	(AndAndExp::toElem, OrOrExp::toElem): Clean-up, use IRState::boolOp.
+	(XorExp::toElem, OrExp::toElem, AndExp::toElem, UshrExp::toElem)
+	(ShrExp::toElem, ShlExp::toElem, ModExp::toElem, DivExp::toElem)
+	(MulExp::toElem, MinExp::toElem, AddExp::toElem):Use
+	IRState::arrayOpNotImplemented,	IRState::buildOp.
+	(XorAssignExp::toElem, OrAssignExp::toElem, AndAssignExp::toElem)
+	(UshrAssignExp::toElem, ShrAssignExp::toElem, ShlAssignExp::toElem)
+	(ModAssignExp::toElem, DivAssignExp::toElem, MulAssignExp::toElem)
+	(MinAssignExp::toElem, AddAssignExp::toElem): Use
+	IRState::arrayOpNotImplemented, IRState::buildAssignOp.
+
+	* d-codegen.cc (libcall_ids): Remove _adCmpChar.
+	(IRState::getLibCallDecl): Remove LIBCALL_ADCMPCHAR.
+	* d-glue.cc (CmpExp::toElem): Don't call LIBCALL_ADCMPCHAR.
+
+	* lang.opt: Define Wcast-result.
+	* d-codegen.cc (IRState::convertTo): Warn about null result, but only
+	if -Wcast-result.
+	(IRState::hwi2toli): Move to header.
+	(IRState::realPart): Likewise.
+	(IRState::imagPart): Likewise.
+	(IRState::toElemLvalue): Clean-up tree args array.
+	(IRState::doArraySet): New function.
+	(IRState::arraySetExpr): New function.
+	* d-glue.cc (EqualExp::toElem): Clean-up tree args array.
+	(CatAssignExp::toElem): Likewise.
+	(AssignExp::toElem): Likewise.
+	(DeleteExp::toElem): Likewise.
+	(NewExp::toElem): Use IRState::modify.
+	(ArrayLiteralExp::toElem): Don't call ARRAYLITERALTX library function
+	if assigning to static array.
+	(StructLiteralExp::toElem): Use IRState::arraySetExpr.
+	(do_array_set): Move to IRState::doArraySet.
+	(array_set_expr): Move to IRState::arraySetExpr.
+
+	* d-lang.h (D_TYPE_IMAGINARY_FLOAT): Define.
+	(d_convert_basic): Remove.
+	* d-builtins.c (d_init_builtins): Mark imaginary types as
+	D_TYPE_IMAGINARY_FLOAT.
+	* d-builtins2.cc (gcc_type_to_d_type): Use convert.
+	* d-codegen.cc (IRState::emitLocalVar): Call pushdecl earlier so
+	catches CONST_DECLs.
+	(IRState::convertTo): Remove handling of conversions between
+	imaginary/real, imaginary/complex, complex/imaginary types, use
+	convert.
+	(IRState::convertForArgument): Use convert.
+	(IRState::arrayElemRef): Likewise.
+	(IRState::call): Likewise.
+	(IRState::libCall): Likewise.
+	(IRState::maybeExpandSpecialCall): Likewise.
+	* d-convert.cc (d_convert_basic): Mark static.
+	(convert): Handle correct conversions between imaginary/real,
+	imaginary/complex, complex/imaginary types.
+	* d-glue.cc (InExp::toElem): Use convert.
+	(BoolExp::toElem): Likewise.
+	(FuncDeclaration::buildClosure): Likewise.
+
+	* d-builtins.c (def_fn_type): Use build_varargs_function_type_array and
+	build_function_type_array to create built-in functions.
+	(d_init_builtins): Use lang_hooks.types.type_for_size.
+	* d-builtins2.cc (d_gcc_magic_builtins_module): Use
+	lang_hooks.types.type_for_mode.
+	* d-codegen.cc (IRState::pointerIntSum): Use
+	lang_hooks.types.type_for_size.
+	(IRState::call): Use lang_hooks.types.type_promotes_to.
+	(IRState::maybeExpandSpecialCall): Likewise.
+	* d-glue.cc (build_math_op): Use lang_hooks.types.type_for_mode.
+	* d-lang.cc (d_type_for_mode): Mark static.
+	(d_type_for_size): Likewise.
+	(d_type_promotes_to): Likewise.
+
+2012-08-31  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-glue.cc (FuncDeclaration::toObjFile): Flatten nested levels and
+	loops in function, delay printing function name in verbose mode until
+	we know the function is being compiled.
+
+	* d-codegen.cc (IRState::buildFrameForFunction): New function.
+	(IRState::buildChain): Use IRState::buildFrameForFunction to get the
+	frame record type.
+	(IRState::getFrameInfo): Likewise.
+	* d-glue.cc (FuncDeclaration::buildClosure): Likewise.
+
+2012-08-30  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* asmstmt.cc (ExtAsmStatement::toCBuffer): Mark unused parameter as
+	ATTRIBUTE_UNUSED.
+	* d-codegen.cc (WrappedExp::toCBuffer): Likewise.
+	* d-objfile.cc (ObjectFile::setupSymbolStorage): Revert to previous
+	behaviour of setting symbol storage.
+
+	* d-codegen.cc (IRState::expandDecl): Use IRState::vinit.
+	(IRState::binding): Likewise.
+	(IRState::var): Handle all declarations, not just vars.
+	* d-glue.cc (PtrExp::toElem): Simplify use of IRState::var.
+	(SymbolExp::toElem ): Likewise.
+	(ThisExp::toElem): Likewise.
+
+	* d-lang.cc (d_init): Remove 'Thumb' identifier for ARM as 16bit
+	platforms aren't supported.
+	(GNU_LongDouble128): Remove identifier as long double size is
+	determined from type information.
+
+	* d-decls.cc (TypeInfoDeclaration::toSymbol): Mark all typeinfo decls
+	as 'used'.
+	* d-glue.cc (one_elem_array): Remove.
+	(CatExp::toElem): Inline use of one_elem_array, clean-up.
+	* d-objfile.cc (ObjectFile::setupSymbolStorage): Update to better
+	handle use of declarations marked with comdat, extern or static.
+	(ObjectFile::doSimpleFunction): Mark function as 'used'.
+	* dt.cc (dt2node): Clean-up indentation.
+
+	* Make-lang.in: Fix issue with cross-compiler configuration.
+
+2012-08-29  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* lang-specs.h: Remove special case for handled D source files.
+	* Make-lang.in: Remove special case for building gcc.o, use
+	GCC_EXTRA_LIBS to link against, rather than specific gcc object files.
+	(D_DRIVER_NAME): Remove use of variable.
+	(D_DRIVER_OBJS): Likewise.
+	(D_COMPILER_NAME): Likewise.
+
+2012-08-23  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-builtins2.cc (eval_builtin): Use builtin_decl_explicit.
+	* d-codegen.cc (IRState::emitLocalVar): Use warning.
+	(IRState::convertTo): Likewise.
+	(IRState::addressOf): Use IRState::markAddressable.
+	(IRState::markAddressable): New function.
+	(IRState::markUsed): New function.
+	(IRState::markRead): New function.
+	(IRState::maybeExpandSpecialCall): Use builtin_decl_explicit.
+	(IRState::floatMod): Likewise.
+	(IRState::exceptionObject): Likewise.
+	* d-glue.cc (IdentityExp::toElem): Likewise.
+	(EqualExp::toElem): Likewise.
+	(PowExp::toElem): Likewise.
+	(AssignExp::toElem): Likewise.
+	(HaltExp::toElem): Likewise.
+	(ArrayLiteralExp::toElem): Likewise.
+	(FuncDeclaration::toObjFile): Likewise.
+	* d-lang.cc (d_mark_addressable): Remove function.
+	(d_mark_exp_read): Remove function.
+	* d-lang.h (d_warning): Remove macro.
+	(d_built_in_decls): Remove macro.
+	* d-objfile.cc (Obj::includelib): Use warning.
+	(Obj::startaddress): Likewise.
+
+2012-08-22  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-lang.cc (binary): Moved function from frontend.
+	* d-codegen.cc (IRState::extractMethodCallExpr): Update for new C++ VEC
+	template in GCC.
+	* d-bi-attrs.h (parse_optimize_options): Likewise.
+	* d-dmd-gcc.h: Remove ifdef __cplusplus, use GCC_SAFE_DMD.
+	* d-gcc-includes.h: Remove ifdef __cplusplus.
+	* d-lang.h: Likewise.
+	* Make-lang.in: Remove CC and CFLAGS from Makefile, add build rule for
+	new texi man pages.
+	* gdc.texi: New documentation for GDC.
+
+2012-08-18  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-codegen.cc (IRState::convertTo): Fix to allow conversion between
+	void* and associative arrays.
+	(IRState::convertForArgument): Use d_convert_basic.
+	(IRState::call): Don't use d_convert_basic, now handled by
+	convertForArgument.
+	* d-gcc-real.cc (real_t::real_t): Increase real type mode to be greater
+	than integer type size to prevent overflow in conversions.
+	* d-glue.cc (CastExp::toElem): Don't get implicit AA type.
+
+2012-08-17  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* dfrontend: Update to D frontend version 2.060
+
+	* d-codegen.cc (libcall_ids): New library functions.
+	(IRState::getLibCallDecl): Implement new library function signatures.
+	* d-codegen.h (LibCall::LIBCALL_NEWITEMT): New enum value.
+	(LibCall::LIBCALL_NEWITEMIT): Likewise.
+	* d-decls.cc (FuncDeclaration::toSymbol): Small readability cleanup.
+	* d-glue.cc (NewExp::toElem): Use new library functions.
+	(StructLiteralExp::toElem): Update for new frontend.
+	(ReturnStatement::toIR): Likewise.
+	* d-incpath.cc (add_import_path): New signature.
+	(add_fileimp_path): Likewise.
+	(add_import_paths): Pass split Strings to helper functions.
+	* d-lang.cc (d_parse_file): Use Obj::init and Obj::term.
+	* d-objfile.cc (objmod): New variable.
+	(Obj::init): New function.
+	(Obj::term): Likewise.
+	(Obj::includelib): Likewise.
+	(Obj::startaddress): Likewise.
+	(Obj::allowZeroSize): Likewise.
+	(Obj::moduleinfo): Likewise.
+	(Obj::export_symbol): Likewise.
+	* symbol.h (Obj): New struct to allow object oriented interface to glue
+	code from frontend.
+
+	* d-builtins2.cc (d_gcc_magic_stdarg_check): Add new va_arg magic
+	function that stores the next value through a passed parameter.
+	Remove workaround for inout signature as va_list is always passed by
+	reference to intrinsic templates.
+	(d_gcc_magic_module): Assign module directly to global IRState.
+	* d-codegen.cc (IRState::builtinsModule): Remove static declaration.
+	(IRState::intrinsicModule): Likewise.
+	(IRState::intrinsicCoreModule): Likewise.
+	(IRState::mathModule): Likewise.
+	(IRState::mathCoreModule): Likewise.
+	(IRState::cstdargTemplateDecl): Likewise.
+	(IRState::cstdargStartTemplateDecl): Likewise.
+	(IRState::varsInScope): Likewise.
+	(IRState::call): Use flag_split_darrays.
+	(IRState::maybeExpandSpecialCall): Clean-up va_start and va_arg
+	implementations.
+	(IRState::maybeSetUpBuiltin): Handle new va_arg function.
+	* d-codegen.h (Intrinsic::INTRINSIC_VA_ARG): New enum definition.
+	(IRState::setBuiltinsModule): Remove.
+	(IRState::setIntrinsicModule): Likewise.
+	(IRState::setMathModule): Likewise.
+	(IRState::setCStdArg): Likewise.
+	* d-glue.cc (CatExp::toElem): Use flag_split_darrays.
+	* d-irstate.cc (IRBase::startFunction): Set varsInScope.
+	* d-lang.cc (d_init_options): Set modules that require special
+	handling.
+	(d_handle_option): Don't handle OPT_fsplit_dynamic_arrays.
+	* lang.opt: fsplit-dynamic-arrays mapped to variable
+	flag_split_darrays.
+
+2012-08-16  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-glue.cc (IdentityExp::toElem): Re-order precendence of type
+	checking. Treat static arrays as D arrays in identity comparisons.
+	(EqualExp::toElem): Use adEq2 over built-in memcmp for equality
+	comparisons for static and dynamic arrays.
+	(TypeStruct::toCtype): Remove old platform specific workaround.
+
+	* d-builtins2.cc (bi_lib_list): New decl to hold list of GCC library
+	built-ins.
+	(d_bi_init): Add decls to bi_list_list if recognising built-ins.
+	(d_gcc_magic_builtins_module): Rename built-in type C long to
+	__builtin_clong, built-in type C ulong to __builtin_culong.
+	(d_gcc_magic_libbuiltins_check): New function to assign internal
+	symbol for built-in library functions.
+	(d_gcc_magic_libbuiltins_module): New function to scan modules that
+	contain GCC library built-ins.
+	(d_gcc_magic_module): Search all core.stdc modules for possible GCC
+	library built-ins.
+	* d-codegen.h (IRState::useBuiltins): Remove.
+	* d-lang.cc (d_init_options): Don't set IRState::useBuiltins.
+	(d_handle_option): Likewise.
+	* lang.opt: Re-order D frontend compiler options.
+
+	* d-codegen.cc (IRState::buildChain): Override chainLink and chainFunc
+	for function if static chain is passed via hidden 'this' and no frame
+	is created.
+	(IRState::getFrameInfo): Pass static chain around nested functions in
+	the same way as closures for better performance.
+
+	* d-codegen.cc (libcall_ids): Re-order list in ascii collating order,
+	add new library routines to lookup, rename all non-vararg functions to
+	match DMD ABI implementation.
+	(LibCall): Re-order enum and rename values to match libcall_ids.
+	(IRState::toElemLvalue): Use new LibCall name.
+	(IRState::getLibCallDecl): Update to match current library signatures,
+	add implementation of new library routines.
+	(IRState::maybeSetLibCallDecl): New function to set internal symbol
+	for special D RT library functions.
+	* d-decls.cc (FuncDeclaration::toSymbol): Use
+	IRState::maybeSetLibCallDecl.
+	* d-glue.cc (InExp::toElem): Use new LibCall name.
+	(CatAssignExp::toElem): Likewise.
+	(IndexExp::toElem): Likewise.
+	(DeleteExp::toElem): Likewise.
+	(RemoveExp::toElem): Likewise.
+	(NewExp::toElem): Likewise.
+	(ArrayLiteralExp::toElem): Likewise.
+	(AssocArrayLiteralExp::toElem): Likewise.
+	(NullExp::toElem): Use IRState::convertTo.
+
+	* d-codegen.cc (needs_temp): Remove.
+	(IRState::makeTemp): New function.
+	(IRState::maybeMakeTemp): Re-implement to use isFreeOfSideEffects.
+	(IRState::isFreeOfSideEffects): Re-implement to allow better CSE.
+	(IRState::call): Use IRState::makeTemp.
+
+	* d-builtins2.cc (gcc_type_to_d_type): Use d_convert_basic.
+	* d-codegen.cc (IRState::emitLocalVar): Use IRState::vinit.
+	(IRState::convertTo): New function for tree conversions.
+	(IRState::convertTo): Use IRState::convertTo.
+	(IRState::convertForCondition): Likewise.
+	(IRState::darrayVal): Likewise.
+	(IRState::pointerIntSum): Likewise.
+	(IRState::pointerOffsetOp): Likewise.
+	(IRState::pvoidOkay): Likewise.
+	(IRState::boundsCond): Likewise.
+	* d-convert.cc (convert): New function to be called from C.
+	(d_build_truthvalue_op): Use d_convert_basic.
+	* d-glue.cc (convert): Remove.
+	(build_bool_binop): Use IRState::convertTo.
+	(build_math_op): Likewise.
+	(CmpExp::toElem): Likewise.
+	(PowExp::toElem): Likewise.
+	(do_array_set): Likewise.
+	(AssignExp::toElem): Likewise.
+	(VectorExp::toElem): Likewise.
+	(NotExp::toElem): Likewise.
+	(CallExp::toElem): Likewise.
+	(SymbolExp::toElem): Likewise.
+	* dt.cc (dt2tree_list_of_elems): Use d_convert_basic.
+
+2012-07-26  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-gcc-real.cc (real_t::real_t): Use d_float64 for constructor.
+	(real_t::isConst0): Remove.
+	(real_t::isConst1): Likewise.
+	(real_t::isConst2): Likewise.
+	(real_t::isConstMinus1): Likewise.
+	(real_t::isConstHalf): Likewise.
+	* d-gcc-real.h (longdouble): New typedef for real_t.
+	(ldouble): New template for ldouble conversions.
+	(ld_sprint): New function for ldouble to string formatting.
+	* d-codegen.cc (IRState::hwi2toli): Handle maximum 64bit value case.
+
+2012-07-18  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-codegen.cc (IRState::delegateVal): Remove ENABLE_CHECKING code.
+	(IRState::objectInstanceMethod): Remove special case to avoid calling
+	DotTypeExp::toElem.
+	* d-glue.cc (CommaExp::toElem): Likewise.
+	(DotTypeExp::toElem): Implement function.
+	(StructLiteralExp::toElem): Assert instead that basetype is a struct.
+	* d-gcc-reah.cc (real_t::real_t): New overload for 'double' type.
+	(real_t::format): Change function type to int, return size of buffer
+	from function.
+	(real_t::formatHex): Likewise.
+	* d-builtins2.cc (d_gcc_magic_stdarg_check): Update signature, remove
+	check for is_c_std_arg.
+	(d_gcc_magic_stdarg_module): Likewise.
+	(d_gcc_magic_module): Remove check for core.vararg.
+	* d-codegen.cc (INTRINSIC_STD_VA_ARG): Remove.
+	(IRState::maybeSetUpBuiltin): Don't handle INTRINSIC_STD_VA_ARG.
+
+2012-07-13  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-decls.cc (Dsymbol::toSymbolX): Remove use of PRIuSIZE format macro.
+	(FuncDeclaration::toThunkSymbol): Likewise.
+
+2012-07-12  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-lang.h (D_DECL_IS_CONTRACT): New macro.
+	* d-decls.cc (FuncDeclaration::toSymbol): Mark in and out contracts as
+	D_DECL_IS_CONTRACT.
+	(FuncDeclaration::toThunkSymbol): D thunks no longer private by
+	design. Alter mangling of thunk symbols to be unique across the entire
+	compilation unit.
+	* d-objfile.cc (ObjectFile::makeDeclOneOnly): Catch public contracts to
+	mark them as one-only.
+	(ObjectFile::outputThunk): Mark weakref thunks as private.
+
+2012-07-10  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* Make-lang.in: Remove unused borrowed objects.
+	* d-builtins2.cc (d_bi_builtin_func): Don't add builtin if
+	-fno-builtin was given.
+	* d-codegen.cc (IRState::emitTemplates): Remove static declaration.
+	(IRState::splitDynArrayVarArgs): Likewise.
+	(IRState::useInlineAsm): Likewise.
+	(IRState::useBuiltins): Likewise.
+	(d_gcc_force_templates): Update to use global gen.
+	* d-codegen.h (emitTemplates): Remove static attribute.
+	(splitDynArrayVarArgs): Likewise.
+	(useBuiltins): Likewise.
+	(useInlineAsm): Remove member.
+	(stdInc): Define new member.
+	* d-incpath.cc (std_inc): Remove global.
+	(add_import_paths): Update function signature.
+	* d-lang.cc (d_init_options): Default splitDynArrayVarArgs to false.
+	(d_init): Update call to add_import_paths.
+	(d_handle_option): Remove OPT_fd_inline_asm, add
+	OPT_fsplit_dynamic_arrays.
+	* lang.opt: Likewise.
+
+2012-07-08  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-builtins2.cc (d_gcc_type_align): Update function signature. Use
+	type align size to determine the known align size of a decl.
+	* d-dmd-gcc.h (d_gcc_type_align): Update function signature.
+	* symbol.h (Symbol): New member, Salignment.
+	* symbol.cc (Symbol::Symbol): Initialise Salignment.
+	* d-decls.cc (VarDeclaration::toSymbol): Set Salignment if there is an
+	alignment in effect on the decl.
+	(AggregateDeclaration::toInitializer): Likewise.
+	* d-objfile.cc (ObjectFile::outputStaticSymbol): Set DECL_ALIGN if
+	Salignment was given for static decl.
+
+2012-07-07  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-builtins2.cc (d_gcc_magic_builtins_module): Add check for
+	DECL_ASSEMBLER_NAME_SET_P when testing for builtins that can be
+	markable as pure in the D frontend.
+
+	* d-codegen.cc (IRState::integerConstant): Hide use of
+	HOST_BITS_PER_WIDE_INT macros.
+	(IRState::hwi2toli): Likewise.
+	(IRState::getTargetSizeConst): Likewise.
+
+	* d-builtins.c (d_global_trees): Move declaration here.
+	(lookup_C_type_name): Rename to lookup_ctype_name.
+	(d_init_builtins): Move set-up of d_global_trees here.
+	(gcc_d_backend_init): Move function from d-glue.cc and refactored.
+	(gcc_d_backend_term): Likewise.
+	* d-builtins2.cc (d_bi_init): Set-up D frontend sizes here.
+	* d-glue.cc (gcc_d_backend_init): Removed.
+	(gcc_d_backend_term): Likewise.
+
+	* d-incpath.cc (add_phobos_versyms): New function to scan
+	phobos-vers-syms file.
+	(register_import_chains): Renamed to add_import_paths.
+	* d-lang.cc (d_init): Call add_phobos_versyms and add_import_paths.
+	(d_parse_int): Don't use strtol to get number from argument string.
+
+	* d-incpath.cc (maybe_fixup_phobos_target): Remove.
+	(register_import_chains): Remove use of maybe_fixup_phobos_target.
+	* d-lang.cc (maybe_fixup_os_versym): Remove
+	(d_init): Remove use of maybe_fixup_os_versym.
+
+	* d-lang.cc (saved_reg_names): Remove.
+	(d_init): Remove use of saved_reg_names.
+	(d_post_options): Likewise.
+
+2012-07-05  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-glue.cc (StructLiteralExp::toElem): Stop after first assignment for
+	constructors built for union types.
+
+2012-07-01  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* symbol.h (deferredNestedFuncs): Renamed from otherNestedFuncs, use as
+	value type rather than pointer.
+	(thunks): Use as value type rather than pointer.
+	* d-decls.cc (FuncDeclaration::toSymbol): Remove check for
+	deferredNestedFuncs being NULL.
+	(FuncDeclaration::toThunkSymbol): Remove check for thunks being NULL.
+	* d-glue.cc (DelegateExp::toElem): Remove check for deferredNestedFuncs
+	being NULL.
+	(FuncDeclaration::toObjFile): Likewise.
+	* d-objfile.cc (ObjectFile::shouldEmit): Add nested functions to
+	deferredNestedFuncs of their parent function incase parent is actually
+	emitted later in during compilation.
+	* d-builtins2.cc (d_gcc_type_align): Explicit alignment of variables
+	takes precedence over default alignment.
+	* d-gcc-includes.h: Re-order list of includes.
+
+2012-06-26  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-codegen.cc (IRState::twoFieldType): Use rest_of_decl_compilation.
+	* d-gcc-includes.h: Remove last of poisoned backend headers.
+	* d-glue.cc (FuncDeclaration::toObjFile): Use fprintf for diagnostic
+	message.  Use rest_of_decl_compilation directly.
+	(SynchronizedStatement::toIR): Likewise.
+	(TypeFunction::toCtype): Remove old version1 macro.
+	* d-lang.cc (d_parse_file): Remove dependency on backend header. Use
+	fprintf for diagnostic messages.
+	(nametype): Use rest_of_decl_compilation directly.
+	(d_handle_option): Remove version 1 option.
+	* dmd-script: Likewise.
+	* lang.opt: Likewise.
+	* d-objfile.cc (ObjectFile::outputStaticSymbol): Use
+	rest_of_decl_compilation directly.
+	(ObjectFile::declareType): Likewise.
+	(obj_moduleinfo): Likewise.
+	(obj_tlssections): Likewise.
+	(ObjectFile::outputThunk): Implement new method of thunk generation
+	for external symbols using weakref.
+	* d-objfile.h (rodc): Remove.
+
+2012-06-25  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-builtins.c (d_init_builtins): Use build_tree_list to initialise
+	void_list_node.
+	* d-glue.cc (ArrayLiteralExp::toElem): Always generate code for
+	arrayliteralTp.
+	(TypeFunction::toCtype): Chain on void_list_node to the end of the
+	function type parameters.  Fixes function signatures in debugging.
+
+2012-06-23  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* Make-lang.in (d_OBJS): Add so IN_GCC_FRONTEND is defined when
+	building gdc sources.
+	* d-builtins.c: Remove poisoned headers.
+	* d-codegen.cc: Likewise.
+	* d-gcc-includes.h: GCC system headers included first, removed
+	internally defined macros and poisoned headers.
+	* d-gcc-tree.h: Use GCC system headers instead of defining tree_node.
+	* d-lang.cc: GCC system headers included first.
+	(pushdecl_top_level): Removed.
+	* d-objfile.cc: Remove poisoned headers.
+	* gdc_alloca.h: Use liberty.h instead of handling include of alloca.
+
+	* d-decls.cc (Dsymbol::toSymbolX): Use snprintf rather than sprintf.
+	(FuncDeclaration::toSymbol): Likewise.
+	* d-gcc-real.cc (real_t::init): Likewise.
+	* symbol.cc (Symbol::Symbol): Use NULL_TREE to initialise tree.
+	(symbol_calloc): Use xstrdup to copy string.
+
+	* Make-lang.in: Remove D language version 1 from build
+	(_GNU_SOURCE): Removed macro from build.
+	(ELFOBJ): Likewise.
+	(D_VA_LIST_TYPE_VOIDPTR): Likewise.
+	* asmstmt.cc (ExtAsmStatement::semantic): Removed use of V2 macro.
+	* d-builtins2.cc (d_gcc_builtin_va_list_d_type): Removed use of
+	D_VA_LIST_TYPE_VOIDPTR macro.
+	(gcc_type_to_d_type): Likewise.
+	(d_gcc_magic_stdarg_check): Likewise.
+	(d_gcc_magic_builtins_module): Removed use of V2 macro, and V1
+	encapsulated code.
+	* d-codegen.cc (IRState::convertTo): Likewise.
+	(IRState::toDArray): Likewise.
+	(IRState::typesCompatible): Likewise.
+	(IRState::arrayBoundsCheck): Likewise.
+	(IRState::assertCall): Likewise.
+	(libcall_ids): Likewise.
+	(IRState::getLibCallDecl): Likewise.
+	(IRState::getFrameForSymbol): Likewise.
+	(IRState::isFuncNestedIn): Likewise.
+	(IRState::buildChain): Likewise.
+	(IRState::getFrameInfo): Likewise.
+	(IRState::getFrameRef): Likewise.
+	(IRState::functionNeedsChain): Likewise.
+	(IRState::startCond): Likewise.
+	(IRState::exitIfFalse): Likewise.
+	(IRState::startCase): Likewise.
+	(IRState::doCase): Likewise.
+	(IRState::endCase): Likewise.
+	* d-decls.cc (VarDeclaration::toSymbol): Likewise
+	(FuncDeclaration::toSymbol): Likewise.
+	* d-glue.cc (CondExp::toElem): Likewise.
+	(build_bool_binop): Likewise.
+	(EqualExp::toElem): Likewise.
+	(CmpExp::toElem): Likewise.
+	(AndAndExp::toElem): Likewise.
+	(OrOrExp::toElem): Likewise.
+	(AssignExp::toElem): Likewise.
+	(CastExp::toElem): Likewise.
+	(CallExp::toElem): Likewise.
+	(AssertExp::toElem): Likewise.
+	(AssocArrayLiteralExp::toElem): Likewise.
+	(StructLiteralExp::toElem): Likewise.
+	(FuncDeclaration::toObjFile): Likewise.
+	(Module::genobjfile): Likewise.
+	(TypeFunction::toCtype): Likewise.
+	(ThrowStatement::toIR): Likewise.
+	(TryCatchStatement::toIR): Likewise.
+	(ReturnStatement::toIR): Likewise.
+	(SwitchStatement::toIR): Likewise.
+	(IfStatement::toIR): Likewise.
+	(ForStatement::toIR): Likewise.
+	(ExpStatement::toIR): Likewise.
+	* d-irstate.cc (IRBase::startFunction): Likewise.
+	* d-lang.cc (d_init_options_struct): Likewise.
+	(d_handle_option): Likewise.
+	(d_parse_file): Likewise.
+
+2012-06-21  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* Make-lang.in: Remove d-asm-i386.h
+	* asmstmt.cc (d_build_asm_stmt): Update signature, use build5.
+	(getFrameRelativeValue): Remove.
+	(d_format_priv_asm_label): Likewise.
+	(d_have_inline_asm): Likewise.
+	(AsmProcessor): Likewise.
+	(AsmStatement::toIR): Update sorry message.
+	* d-codegen.cc (IRState::expandPortIntrinsic): Update call to
+	d_build_asm_stmt.
+	(IRState::doAsm): Likewise.
+	* d-decls.cc (FuncDeclaration::toSymbol): Remove check for inline asm.
+	* d-glue.cc (FuncDeclaration::toObjFile): Likewise.
+	(LabelStatement::toIR): Likewise.
+	* d-lang.cc (VersionCondition::addPredefinedGlobalIdent): Remove D
+	Inline Asm version identifiers.
+	* d-lang.h (d_build_asm_stmt): Update signature.
+
+2012-06-19  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-decls.cc (FuncDeclaration::toSymbol): Mark in/out contracts as
+	TREE_PUBLIC to allow calling cross-module.
+	* d-lang.cc (d_parse_file): Update for 2.059.
+
+2012-06-16  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* dfrontend: Merged with DMD 2.059.
+	* d-builtins2.cc (gcc_type_to_d_type): Use new frontend value.
+	* d-codegen.cc (IRState::getLibCallDecl): Fix return type of _aaDelp.
+	(IRState::getVThis): Use frontend provided member to determine if
+	function has nested references.
+	* d-decl.cc (FuncDeclaration::toSymbol): Weakly pure functions don't
+	guarantee no vops.
+	* d-gcc-real.cc (max_float_mode): Remove.
+	(real_t::convert): Catch imaginary types in conversion.
+	* d-glue.cc (EqualExp::toElem): Use memcmp for struct comparisons.
+	(CatAssignExp::toElem): Rework order of logic to allow appending
+	delegates to an array.
+	(DelegateExp::toElem): Implement handling of lambda functions.
+	(FuncExp::toElem): Ditto.
+	(AssocArrayLiteralExp::toElem): Implement handling of AssociativeArray
+	types sent to backend.
+	* d-objfile.cc (lmtab): Remove.
+	(cvtLocToloc_t): Update implementation.
+	(outdata): Now assert that we don't receive error nodes.
+
+2012-06-05  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-decls.cc (FuncDeclaration::toSymbol): Make better use of 'pure' and
+	'pure const' functions in GCC codegen.
+	* d-bi-attrs.h: Added TM_ATTR* masks.
+	(handle_tm_wrap_attribute, handle_tm_attribute, tm_attr_to_mask,
+	find_tm_attribute): New.
+	(struct d_common_attribute_table): Added transaction* attributes.
+
+2012-06-04  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-objfile.cc (ObjectFile::outputThunk): Output thunks moved back to
+	the frontend, as backend does not emit them for DECL_EXTERNAL functions.
+
+2012-05-29  Daniel Green  <venix1@gmail.com>
+
+	* setup-gcc.sh: Add GCC 4.8 to list of supported GCC versions. Patch
+	courtesy of Calrama
+	https://bitbucket.org/goshawk/gdc/issue/345
+
+2012-05-29  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-codegen.cc (IRState::endCase): Remove parameter from function. Use
+	condition type as the SWITCH_EXPR type, rather than use of void.
+	* d-codegen.h (IRState::endCase): Update signature.
+	* d-glue.cc (SwitchStatement::toIR): Update call to endCase.
+
+2012-05-28  Daniel Green  <venix1@gmail.com>
+
+	* d-builtins.c (DEF_ATTR_STRING): Define and undefine along with other
+	macros.
+	* d-lang.cc (d_write_global_declartions): Use
+	finalize_compilation_unit. GCC 2012-04-30
+	* d-objfile.cc (ObjectFile::outputThunk): Use
+	symtab_add_to_same_comdat_group. GCC 2012-04-30
+	* lang.opt: Match help strings for duplicated options.
+
+2012-02-01  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* setup-gcc.sh: Remove -hg option.
+	* dfrontend/func.c (FuncDeclaration::semantic): Remove code adding
+	method to flat list.
+	(FuncDeclaration::semantic3): Re-add here.
+
+2012-01-01  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-builtins2.cc (IRState::buildChain): Don't do nrvo if the
+	variable is put in a closure.
+	* d-glue.cc (FuncDeclaration::buildClosure): Ditto.
+	(ReturnStatement::toIR): Don't call postblit on nrvo returns.
+	(DtorExpStatement::toIR): Don't call destructor if var is returned as
+	the nrvo variable.
+
+
+Copyright (C) 2012 Free Software Foundation, Inc.
+
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
diff --git a/gcc/d/ChangeLog-2013 b/gcc/d/ChangeLog-2013
new file mode 100644
index 00000000000..eeb12c9665d
--- /dev/null
+++ b/gcc/d/ChangeLog-2013
@@ -0,0 +1,1221 @@
+2013-12-27  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (build_two_field_type): Declare builtin types as
+	toplevel declarations.
+	* d-ctype.cc (EnumDeclaration::toDebug): Build type decl in debug code.
+	* d-lang.cc (nametype): Rename to d_nametype.
+
+2013-12-23  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-decls.cc (EnumDeclaration::toDebug): Don't send array types to
+	rest_of_type_compilation.
+
+2013-12-16  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-spec.cc (lang_specific_driver): Require linking in library for all
+	files except D interface files.
+	* d-lang.cc (d_write_global_declarations): Call d_finish_compilation.
+	* d-objfile.cc (mark_needed): Mark static.
+	(d_finish_symbol): Don't call mark_needed.
+	(d_finish_function): Likewise.
+	(d_finish_compilation): New function to wrapup all global
+	declarations, mark templates/comdats as needed if required, and start
+	the final compilation.
+
+2013-12-10  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-ctype.cc (TypeVector::toCtype): Treat void vectors as ubyte.
+	* d-objfile.cc (VarDeclaration::toObjFile): Gag all errors compiling
+	manifest constants.
+	* d-todt.cc (TypeVector::toDt): New function to generate correct static
+	data for vector initialisers.
+
+2013-12-05  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-lang.cc (d_init_options_struct): Don't define strict aliasing.
+	(d_get_alias_set): New function to return language-specific alias set.
+	* d-convert.cc (d_convert_basic): Always zero extend pointer to integer
+	conversions.
+
+2013-12-04  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (maybe_set_builtin_frontend): Assert that all runtime
+	library functions have been set-up correctly.
+	(libcall_ids): Remove unhandled library functions.
+	(get_libcall): Likewise.
+	* d-codegen.h (LibCall): Likewise.
+	* d-objfile.cc (output_symbol_p): Remove.
+
+2013-12-03  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-lang.cc (d_init_options): Update for frontend changes.
+	(d_handle_option): Set frontend allInst option if -femit-templates.
+	* d-objfile.cc (output_template_p): Want to emit all instantiated
+	templates if -femit-templates or -fdebug was passed to the compiler.
+	* d-objfile.h (TemplateEmission): Define TEallinst.
+	* d-todt.cc (StructDeclaration::toDt): Update for frontend changes.
+	* d-spec.cc (THREAD_LIBRARY): Define default thread library to link if
+	one is not already specified in the configuration process.
+	(TIME_LIBRARY): Define default real time library to link if one is not
+	already specified in the configuration process.
+	(LIBSTDCXX): Define C++ library to link if compiling C++ and D sources.
+	(lang_specific_driver): Update implementation to use new macros.
+
+2013-12-02  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-elem.cc (CatAssignExp::toElem): Don't call postblit after element
+	append to array.
+	(NewExp::toElem): Handle calling 'new' on opaque types.
+	(ArrayLiteralExp::toElem): Ensure array literal elements have no side
+	effects by making temporaries as necessary.
+	* d-todt.cc (StructLiteralExp::toDt): Update for frontend changes.
+	* d-codegen.cc (build_frame_type): Check for scoped variables if
+	building a closure.
+	* d-objfile.cc (d_finish_symbol): Relax toDt checking rule.
+
+2013-12-01  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-asmstmt.cc (ExtAsmStatement::ExtAsmStatement): Remove labels
+	member from class.
+	* d-codegen.cc (d_gcc_force_templates): Remove.
+	(convert_expr): Update for frontend changes.
+	(convert_for_assignment): Likewise.
+	(maybe_set_builtin_frontend): Update for changes to libdruntime
+	core.bitops signatures.
+	* d-ctype.cc (TypeFunction::toCtype): Update for frontend changes.
+	* d-decls.cc (Dsymbol::toSymbolX): Likewise.
+	(VarDeclaration::toSymbol): Likewise.
+	(FuncDeclaration::toSymbol): Don't defer nested functions here.
+	* d-elem.cc (PowAssignExp::toElem): Update for frontend changes.
+	(DeleteExp::toElem): Likewise.
+	(AssertExp::toElem): Don't call invariant on an extern C++ class.
+	* d-glue.cc (Global::init): Initialise new stdmsg member.
+	* d-lang.cc (d_handle_option): Handle -fdeps switch.  Remove TEprivate
+	for -femit-templates switch.
+	(genCmain): Update for frontend changes.
+	(d_parse_file): Likewise.
+	* d-longdouble.cc (longdouble::dump): Likewise.
+	* d-objfile.cc (ClassDeclaration::toObjFile): Update for frontend
+	changes.
+	(InterfaceDeclaration::toObjFile): Likewise.
+	(EnumDeclaration::toObjFile): Likewise.
+	(Symbol::Symbol): Remove outputSymbol member.
+	(output_symbol_p): Mark static.
+	(output_declaration_p): Determine symbol codegen status from
+	semanticRun.
+	(output_template_p): New function to determine whether an instantiated
+	template is to be written to object file.
+	(FuncDeclaration::toObjFile): Use semanticRun to update codegen status
+	of function.
+	(FuncDeclaration::buildClosure): Error if putting a scoped variable in
+	a closure.
+	(Module::genobjfile): Update for frontend changes.
+	(d_comdat_linkage): Don't determine linkage from TE setting.  Mark all
+	comdat symbols as DECL_COMDAT.
+	(setup_symbol_storage): Use output_template_p to determine whether the
+	symbol is being written to object file.
+	(mark_needed): New function to mark decls that must be emitted.
+	(d_finish_symbol): Mark finished symbols as needed.
+	(d_finish_function): Mark finished functions as needed.
+	(build_simple_function): Set semanticRun for glue changes.
+	* d-objfile.h (OutputStage): Remove enum.
+	* d-todt.cc (build_vptr_monitor): Update for frontend changes.
+	(StructInitializer::toDt): Likewise.
+	(StructDeclaration::toDt): Likewise.
+	(TypeInfoEnumDeclaration::toDt): Likewise.
+	(TypeInfoStructDeclaration::toDt): Likewise.
+	(Type::getTypeInfo): Likewise.
+
+2013-11-30  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-lang.cc (genCmain): Implement code generation of __entrypoint
+	module to provide the target C main function.
+	(deps_write): Ignore the module __entrypoint when writing make deps.
+	(d_parse_file): Handle writing __entrypoint module to object file.
+	* d-objfile.cc (d_finish_symbol): Remove special handling of _tlsstart
+	symbol, but ensure _tlsend gets written to the thread common section.
+	(d_finish_function): Remove call to build_tlssections.
+	(build_tlssections): Remove.
+
+2013-11-29  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-decls.cc (ClassDeclaration::toVtblSymbol): Use TypeSArray::makeType
+	to generate frontend static array type.
+	* d-glue.cc (Dsymbol::ungagSpeculative): Define.
+	* d-lang.cc (genCmain): Define as empty.
+	(d_parse_file): Update for frontend changes.
+	* d-objfile.cc (StructDeclaration::toObjFile): Likewise.
+	* d-typinf.cc (TypeBasic::builtinTypeInfo): Likewise.
+	* d-longdouble.cc (longdouble::isIdenticalTo): Remove.
+	* d-port.cc (Port::fequal): Define.
+
+2013-11-28  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-builtins.cc (gcc_type_to_d_type): Use TypeSArray::makeType to
+	generate frontend static array types.
+	* d-codegen.cc (build_attributes): Use optimize as don't want the
+	ctfeInterpret of TypeExp expressions.
+	(get_object_method): Update for frontend changes.
+	(get_libcall): Update to use Type::dtypeinfo.
+	* d-elem.cc (IndexExp::toElem): Don't generate bounds checking codegen
+	if frontend explictly requests it.
+	(ArrayLiteralExp::toElem): Use TypeSArray::makeType to generate
+	frontend static array type.
+	(StructLiteralExp::toElem): Update for frontend changes.
+	* d-glue.cc (Global::increaseErrorCount): Define.
+	* d-objfile.cc (Module::genmoduleinfo): Remove moduleinfo 'New'
+	implementation for libdruntime changes.
+	* d-todt.cc (StructLiteralExp::toDt): Literal initialisers override
+	default initialisers.
+	(TypeInfoDeclaration::toDt): Update to use Type::dtypeinfo.
+	(TypeInfoStructDeclaration::toDt): Update for frontend changes.
+	* d-typinf.c (Type::getInternalTypeInfo): Update to use
+	Type::dtypeinfo.
+
+2013-11-25  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-asmstmt.cc (ExtAsmStatement::comeFromImpl): Define for frontend
+	implementation changes.
+	* d-codegen.cc (get_libcall): Update to use Type::typeinfoclass.
+	* d-codegen.cc (WrappedExp): Define as class.
+	* d-convert.cc (d_convert_basic): Fix format warnings.
+	* d-decls.cc (ModuleInfoDeclaration::toSymbol): Remove.
+	(FuncDeclaration::toSymbol): Use mangleExact to get decl mangle.
+	* d-elem.cc (ClassReferenceExp::toElem): Return reference to class.
+	* d-glue.cc (verror): Fix format warnings.
+	(verrorSupplemental): Likewise.
+	(vwarning): Likewise.
+	(vdeprecation): Likewise.
+	(escapePath): Define for frontend implementation changes.
+	* d-irstate.cc (IRState::getLoopForLabel): Implement breaking on named
+	scope labels in for/while loops.
+	* d-lang.cc (d_handle_option): Add handler for new -fdeps and
+	-fmake-deps options.
+	(d_parse_file): Handle new -fdeps and fmake-deps options.
+	* d-objfile.cc (Dsymbol::toObjFile): Update to use RootObject.
+	(Type::typeinfoclass): Update to use Type::typeinfoclass.
+	(InterfaceDeclaration::toObjFile): Likewise.
+	* d-objfile.h (Symbol): Remove inheritance from Object.
+	* d-todt.cc (TypeInfoStructDeclaration::toDt): Update to use
+	Type::immutableOf.
+
+2013-11-24  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-builtins.c (gcc_type_to_d_type): Use TREE_INT_CST_LOW macro instead
+	of tree_low_cst.
+	(eval_builtin): Likewise.
+	(gcc_cst_to_d_expr): Use tree_cst_hwi.
+	* d-codegen.cc (tree_to_hwi): Remove call to deleted host_integerp.
+	(maybe_expand_builtin): Use TREE_INT_CST_LOW macro.
+	* d-lang.cc (d_parse_file): Update debug_hooks call for middle-end
+	changes.
+	* d-system.h: Update includes for middle-end changes.
+
+2013-11-17  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-objfile.cc (finish_thunk): Update for conversion of symtab types to
+	a true class hierarchy.
+
+	* d-ctype.cc (TypeClass::toCtype): Fix ABI to emit correct vtable and
+	monitor field names.
+
+	* d-ctype.cc (TypeClass:toCtype): Set TYPE_LANG_SPECIFIC on record as
+	well as reference type.
+	* d-lang.cc (d_classify_record): New langhook to return appropriate
+	class/interface/struct type to the debugger.
+
+2013-10-27  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-elem.cc (ArrayLiteralExp::toElem): Build empty constructor for zero
+	sized arrays.
+
+2013-10-23  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-elem.cc (AssignExp::toElem): Optimise assigning array literal to a
+	static array.
+	(ArrayLiteralExp::toElem): Do not allocate static or const array
+	literals on the heap using the GC.
+
+2013-10-16  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-builtins.c (DEF_FUNCTION_TYPE_8): Define.
+
+2013-10-10  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-builtins.c (gcc_cst_to_d_expr): Add support for VECTOR_CST to
+	Expression conversion.
+	(d_gcc_paint_type): Add support for painting to/from array literals.
+
+2013-10-01  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-objfile.cc (cvtLocToloc_t): Rename to get_linemap.
+	* d-glue.cc: New source to provide interface for defined globals and
+	error handling called from the front-end.
+
+2013-09-16  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (IRState::call): Rename to d_build_call.
+	(IRState::emitLocalVar): Rename to build_local_var.
+	(IRState::buildAssignOp): Move to BinExp::toElemBin.
+	(IRState::IRState): Remove IRState class.
+	* d-irstate.cc (IRBase::IRBase): Rename to IRState, remove inheritance
+	from Object class.
+	* d-decls.cc (VarDeclaration::toSymbol): Remove redundant CONST_DECL
+	code as VarDeclaration::toObjFile does not emit manifest constants.
+	* d-ctype.cc (TypeEnum::toCtype): Generate CONST_DECLs for enumeration
+	members for correct debugging.
+	* d-objfile.cc (build_type_decl): Use fully qualified type name in
+	debugging code.
+	(VarDeclaration::toObjFile): Emit manifest constant values in debug
+	code generation.
+
+2013-09-10  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-elem.cc (SliceExp::toElem): Don't build D array for slices that
+	return a static array.
+
+2013-09-03  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (IRState::buildOp): Rename to build_binary_op.
+
+2013-09-01  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-decls.cc (binfo_for): Rename to build_class_binfo.
+	(intfc_binfo_for): Rename to build_interface_binfo.
+	(ClassDeclaration::toDebug): Move binfo generation into toCtype.
+	* d-lang.cc (pushlevel): Rename to push_binding_level.
+	(poplevel): Rename to pop_binding_level.
+	(global_bindings_p): Rename to d_global_bindings_p, add langhook.
+	(pushdecl): Rename to d_pushdecl, add langhook.
+	(getdecls): Rename to d_getdecls, add langhook.
+	(set_block): Remove function.
+	(insert_block): Remove function.
+	* d-irstate.cc (IRBase::startBindings): Inline set_block here.
+	(IRBase::endBindings): Inline insert_block here.
+
+2013-08-29  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-spec.c (lang_specific_spec_functions): Remove.
+
+2013-08-28  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (IRState::doArraySet): Rename to IRBase::doArraySet.
+	(IRState::arraySetExpr): Remove function.
+	(IRState::expandDecl): Rename to expand_decl.
+	(IRState::typeinfoReference): Rename to build_typeinfo.
+	(IRState::buildChain): Merge into FuncDeclaration::buildClosure.
+	(IRState::getVThis): Rename to build_vthis.
+	(IRState::maybeExpandSpecialCall): Rename to maybe_expand_builtin.
+	(IRState::toDArray): Rename to d_array_convert.
+
+2013-08-26  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (convert_expr): Check that the class type the codegen is
+	casting from is a base class of the class type the codegen is casting
+	to, not the other way round.
+
+2013-08-14  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-elem.cc (ArrayLiteralExp::toElem): Return null for zero length
+	array literals.
+
+2013-08-07  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-objfile.cc (finish_thunk): Don't emit thunks to external symbols as
+	weakref declarations.
+	* d-codegen.cc (IRState::maybeExpandSpecialCall): Remove intrinsic yl2x
+	and yl2xp1 builtins.
+	(maybe_set_builtin_frontend): Likewise.
+
+2013-07-09  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-builtins.c (d_gcc_magic_builtins_module): Set builtins solely
+	provided by the compiler as @safe, pure and nothrow.
+	* d-codegen.cc (IRState::getVThis): Don't set outer 'this' of structs
+	to be parent function chain if no frame has been created.
+
+2013-07-08  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-elem.cc (Expression::toElemDtor): Wrap temp variables destructor
+	calls in a try/finally expression.
+
+2013-07-05  Johannes Pfau  <johannespfau@gmail.com>
+
+	* patch-versym-os-4.8.x: Set versions on powerpc and alpha.
+	Remove SysV4 support and therefore fix macro redefinition warnings.
+	* patch-versym-os-4.9.x: Likewise.
+
+2013-07-03  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-longdouble.cc (longdouble::set): Intepret set values at higher
+	precision for min/max properties.
+	* d-codegen.cc (maybe_set_builtin_frontend): Add yl2x and yl2xp1
+	math intrinsics.
+	(IRState::maybeExpandSpecialCall): Likewise.
+
+2013-07-02  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-objfile.cc (Module::genobjfile): Don't free current_module_info.
+	* d-codegen.cc (IRState::buildAssignOp): Don't create a SAVE_EXPR
+	around comma expressions used as lvalues.
+	* d-todt.cc (TypeSArray::toDtElem): Get underlying vector basetype when
+	layouting out data in a static array.
+
+2013-06-29  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* complex_t.h: Move into dfrontend.
+	* d-builtins.c (gcc_cst_to_d_expr): Explicitly create longdouble.
+	* d-longdouble.cc (longdouble::parse): Remove function.
+	(longdouble::longdouble): Remove constructors from longdouble.
+	Replaced with operator= template and longdouble::set.
+	(longdouble::rv): Update for new class layout.
+	(longdouble::from_shwi): New function to create a longdouble value
+	from a HOST_WIDE_INT.
+	(longdouble::from_uhwi): Likewise, but from an unsigned HOST_WIDE_INT.
+	(longdouble::to_shwi): New function to return a HOST_WIDE_INT value
+	from a longdouble.
+	(longdouble::to_uhwi): Likewise, but from an unsigedn HOST_WIDE_INT.
+	(longdouble::set): New function to explicitly set longdouble value.
+	(longdouble::toInt): Remove function.
+	(longdouble::isZero): Remove function.
+	(longdouble::isNegative): Remove function.
+	* d-port.cc (Port::nan): Rename to Port::ldbl_nan.
+	(Port::infinity): Rename to Port::ldbl_infinity.
+	(Port::ldbl_max): New static field.
+	(Port::init): Set ldbl_max to be maximimum value for long double type.
+	(Port::strtof): New function to convert string to longdouble.
+	(Port::strtod): Likewise.
+	(Port::strtold): Likewise.
+
+2013-06-24  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-objfile.cc (make_alias_for_thunk): Do not set
+	TREE_SYMBOL_REFERENCED.
+
+2013-06-17  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (build_struct_memcmp): New function.
+	* d-elem.cc (IdentityExp::toElem): Use build_struct_memcmp for field
+	comparisons of small structs.
+
+2013-06-13  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (make_temp): New function.
+	* d-decls.cc (StructLiteralExp::toSymbol): Implement correctly to
+	generate an anonymous symbol to reference to in the codegen.
+	(ClassReferenceExp::toSymbol): Likewise, but also use an anonymous
+	type as size is not determined until the data has been layed out.
+	* d-elem.cc (EqualExp::toElem): Optimise comparisons of arrays of basic
+	types, also ensure left-to-right evaluation.
+	(SliceExp::toElem): Handle returing slice as a static array type.
+	(AddrExp::toElem): Handle taking the address of StructLiteralExp and
+	ClassReferenceExp symbols.
+	(FuncExp::toElem): Relax type checking to allow returning function
+	addresses as generic pointer types.
+	(ArrayLiteralExp::toElem): Implicitly convert static arrays of void to
+	static arrays of ubyte.
+	(StructLiteralExp::toElem): Remove code generation of postblit calls,
+	now taken care of in the front end.
+	* d-objfile.cc (Module::genmoduleinfo): Emit module name as a null
+	terminated static array.
+	* d-ctype.cc (TypeAArray::toCtype): Pass AA types around like pointers.
+
+2013-06-11  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* dfrontend: Update to D front-end version 2.063.
+
+	* d-builtins.c (gcc_type_to_d_type): Use Loc for unknown locations.
+	(d_gcc_magic_builtins_module): Likewise.
+	(gcc_cst_to_d_expr): Likewise.
+	* d-codegen.cc (get_libcall): Use FuncDeclaration::genCfunc to build
+	D runtime library functions.
+	* d-decl.cc (SymbolDeclaration::SymbolDeclaration): Remove function.
+	(StructLiteralExp::toSymbol): New function.
+	(ClassReferenceExp::toSymbol): New function.
+	* d-elem.cc (AssertExp::toElem): Call struct/class invariants only if
+	compiler is generating invariant code.
+	(TupleExp::toElem): Update for new front-end.
+	(ClassReferenceExp::toElem): New function.
+	* d-lang.cc (d_init_options): Set compiler.vendor front-end parameter.
+	(d_init): Call Expression::init.
+	* d-objfile.cc (InterfaceDeclaration::toObjFile): Correctly set the
+	xgetRTInfo field in the record layout.
+	* d-todt.cc (CastExp::toDt): New function.
+	(AddrExp::toDt): New function.
+	(ClassReferenceExp::toDt): New function.
+	(ClassReferenceExp::toDtI): New function.
+	(ClassReferenceExp::toInstanceDt): New function.
+	(ClassReferenceExp::toDt2): New function.
+
+2013-06-10  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-objfile.cc (FuncDeclaration::toObjFile): Set 'this' parameter as
+	implicitly read-only.
+	* d-codegen.cc (declaration_type): Set 'this' declaration type as
+	implicitly const.
+	(build_frame_type): Set frame or closure type as implicitly const.
+
+2013-06-09  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-builtins.c (d_init_builtins): Make d_unknown_type_node a
+	RECORD_TYPE.
+	* d-lang.cc (d_build_eh_type_type): Cast the returned typeinfo decl to
+	void pointer type.
+
+2013-06-07  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (IRState::var): Rename to get_decl_tree.
+	(IRState::convertForArgument): Rename to convert_for_argument.
+	(IRState::floatMod): Rename to build_float_modulus.
+	(IRState::findThis): Rename to find_this_tree.
+	(IRState::emitLocalVar): Update signature.
+	(IRState::arrayElemRef): Remove function.
+	* d-elem.cc (IndexExp::toElem): Move implementation of
+	IRState::arrayElemRef here.
+
+2013-06-04  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (cmodule): Rename to current_module_decl.
+	(object_file): Remove variable.
+	* d-objfile.cc (ObjectFile::moduleInfo): Rename to current_module_info.
+	(ObjectFile::modules): Rename to output_modules.
+	(ObjectFile::staticCtorList): Rename to static_ctor_list.
+	(ObjectFile::staticDtorList): Rename to static_dtor_list.
+	(ObjectFile::emitTemplates): Rename to flag_emit_templates.
+	(ObjectFile::beginModule): Remove function.
+	(ObjectFile::endModule): Remove function.
+	(ObjectFile::finish): Rename to d_finish_module.
+	(ObjectFile::doLineNote): Remove function.
+	(ObjectFile::setLoc): Rename to set_input_location.
+	(ObjectFile::setDeclLoc): Rename to set_decl_location.
+	(ObjectFile::setCfunEndLoc): Rename to set_function_end_locus.
+	(ObjectFile::giveDeclUniqueName): Rename to get_unique_name.
+	(ObjectFile::setupSymbolStorage): Rename to setup_symbol_storage.
+	(ObjectFile::setupStaticStorage): Remove function.
+	(ObjectFile::makeDeclOneOnly): Rename to d_comdat_linkage.
+	(ObjectFile::outputStaticSymbol): Rename to d_finish_symbol.
+	(ObjectFile::outputFunction): Rename to d_finish_function.
+	(ObjectFile::addAggMethod): Remove function.
+	(ObjectFile::initTypeDecl): Rename to build_type_decl.
+	(ObjectFile::declareType): Remove function.
+	(ObjectFile::shouldEmit): Rename to output_declaration_p.
+	(ObjectFile::shouldEmit): Rename variant to output_symbol_p.
+	(ObjectFile::doThunk): Rename to use_thunk.
+	(ObjectFile::stripVarDecl): Remove function.
+	(ObjectFile::doSimpleFunction): Rename to build_simple_function.
+	(ObjectFile::doFunctionToCallFunctions): Rename to
+	build_call_function.
+	(ObjectFile::doCtorFunction): Rename to build_ctor_function.
+	(ObjectFile::doDtorFunction): Rename to build_dtor_function.
+	(ObjectFile::doUnittestFunction): Rename to build_unittest_function.
+	(ObjectFile::hasModule): Rename to output_module_p.
+	(ObjectFile::outputThunk): Rename to finish_thunk.
+	(write_deferred_thunks): New function to emit deferred thunks.
+
+2013-06-03  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-decls.cc (VarDeclaration::toSymbol): Don't set default tls model.
+	* d-objfile.cc (ObjectFile::setupSymbolStorage): Set default tls
+	model for var decls before determining whether symbol is public.
+	(build_tlssections): Likewise for TLS symbols.
+
+2013-06-01  Johannes Pfau  <johannespfau@gmail.com>
+
+	* d-codegen.cc (maybe_set_builtin_frontend): Check parameter and
+	return types of intrinsics.
+
+2013-06-01  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (IRState::var): Handle variables used for NRVO.
+	* d-ir.cc (ReturnStatement::toIR): Return result decl directly if NRVO.
+	* d-objfile.cc (Symbol::SnamedResult): New member to hold the named
+	RESULT_DECL of the function.
+	(FuncDeclaration::toObjFile): Set-up function for NRVO.
+	(build_tlssections): Align _tlsstart and _tlsend symbols to target
+	address size.
+	* d-ctype.cc (TypeFunction::toSymbol): Mark functions returning non-POD
+	structs as TREE_ADDRESSABLE to force return in memory.
+	* d-decls.cc (FuncDeclaration::toSymbol): Propagate TREE_ADDRESSABLE
+	from the original function type.
+
+2013-05-29  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-target.cc: New source file to handle Target structure.
+
+	* d-builtins.c (d_bi_init): Remove function.
+	(d_gcc_type_align): Move to Target::alignsize.
+	(d_gcc_field_align): Move to Target::fieldalign.
+	(d_init_builtins): Build va_list type for D frontend.
+	* d-lang.cc (d_init): Use isLP64 to determine LP64 targets.
+	(d_add_builtin_version): Set is64bit if target is X86_64.
+	* d-codegen.cc (convert_for_assignment): Use memset to implement front
+	end code (struct = 0) here, rather than build an empty constructor.
+	* d-elem.cc (AssignExp::toElem): Remove handling of (struct = 0) and
+	call convert_for_assignment.
+
+2013-05-28  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-gcc-complex_t.h: Rename to complex_t.h.
+	* d-gcc-real.cc: Rename to d-longdouble.cc.
+	* d-gcc-real.h: Rename to longdouble.h
+	* d-port.cc: New source file to handle Port structure.
+	* gdc_alloca.h: Remove source.
+
+	* d-longdouble.cc (real_t): Rename to longdouble.
+	(longdouble::getnan): Move to Port::nan.
+	(longdouble::getsnan): Move to Port::snan.
+	(longdouble::getinfinity): Move to Port::infinity.
+	(longdouble::isInf): Move to Port::isInfinite.
+	(longdouble::isNan): Move to Port::isNan.
+	(longdouble::isSignallingNan): Move to Port::isSignallingNan.
+	* d-builtins.c (gcc_d_backend_init): Rename to d_backend_init.
+	(gcc_d_backend_term): Rename to d_backend_term.
+	(gcc_type_to_d_type): Don't map 128bit integers to D front end.
+
+	* d-elem.cc (AssignExp::toElem): Remove handling of fillHoles, use
+	memset to implement (struct = 0).
+	(StructLiteralExp::toElem): Handle fillHoles here, creating a
+	temporary var that is zero init'd with memset and returned.
+
+2013-05-27  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (IRState::localVar): Rename to build_local_var.
+	(IRState::exprVar): Rename to create_temporary_var.
+	(IRState::maybeExprvar): Rename to maybe_temporary_var.
+	(IRState::pointerIntSum): Rename to build_array_index.
+	* d-lang.cc (d_handle_target_attribute): New function to handle D
+	target attributes.
+
+2013-05-26  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-incpath.cc (prefixed_path): Add cpp_GCC_INCLUDE_DIR back in as
+	second method for relocation.
+	* d-elem.cc (IndexExp::toElem): Fix call to _aaGetX as from
+	IRState::toElemLvalue.
+	* d-codegen.cc (IRState::toElemLvalue): Remove function.
+	(IRState::convertForAssignment): Rename to convert_for_assignment.
+	(IRState::convertForCondition): Rename to convert_for_condition.
+	(IRState::checkedIndex): Rename to d_checked_index.
+	(IRState::boundsCond): Rename to d_bounds_condition.
+	(IRState::arrayBoundsCheck): Rename to array_bounds_check.
+	(IRState::assertCall): Rename to d_assert_call.
+	(IRState::doLineNote): Move to irstate.h.
+	* d-irstate.cc (IRBase::getLocalContext): Remove function.
+	* d-decls.cc (VarDeclaration::toSymbol): Build decl lang specific for
+	decl to point back to D front end type.
+	(FuncDeclaration::toSymbol): Likewise.
+
+2013-05-23  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (AggLayout::finish): Unset TYPE_SIZE before
+	re-calculating.
+	* d-ctype.cc (TypeStruct::toCtype): Don't call decl_attribute on the
+	type twice.
+
+2013-05-21  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-lang.cc (d_gcc_dump_source): Remove function.
+	(d_post_options): Set flag_excess_precision_cmd as standard.
+	* d-gcc-real.cc (real_t::convert): Remove function.
+	(real_t::floatCompare): Remove function.
+	(real_t::operator): Always perform floating point compilation at the
+	precision of the target real mode.
+	* d-todt.cc (dt_last): Remove function.
+	(dtlist_to_tree): Rename to dtvector_to_tree.
+	(dt_cons): Replace TREE_CHAIN implementation for use of CONSTRUCTOR.
+	(dt_chainon): Likewise.
+	(dt_container): Likewise.
+	(dt_container2): Likewise.
+	(StructInitializer::toDt): Likewise.
+	(StructLiteralExp::toDt): Likewise.
+
+2013-05-17  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (IRState::convertTo): Replace with d_convert and
+	convert_expr.
+	(IRState::declContext): Replace with d_decl_context.
+	(IRState::functionNeedsChain): Replace with needs_static_chain.
+	(IRState::label): Replace with d_build_label.
+	(IRState::emitTemplates): Move to ObjectFile.
+	(functionDegenerateClosure): Replace with is_degenerate_closure.
+	(get_object_method): Assert that function is a method.
+	(IRState::startCond): Move to IRBase.
+	(IRState::startElse): Likewise.
+	(IRState::endCond): Likewise.
+	(IRState::startLoop): Likewise.
+	(IRState::continueHere): Likewise.
+	(IRState::setContinueLabel): Likewise.
+	(IRState::exitIfFalse): Likewise.
+	(IRState::endLoop): Likewise.
+	(IRState::startCase): Likewise.
+	(IRState::doCase): Likewise.
+	(IRState::endCase): Likewise.
+	(IRState::continueLoop): Likewise.
+	(IRState::exitLoop): Likewise.
+	(IRState::startTry): Likewise.
+	(IRState::startCatches): Likewise.
+	(IRState::startCatch): Likewise.
+	(IRState::endCatch): Likewise.
+	(IRState::endCatches): Likewise.
+	(IRState::startFinally): Likewise.
+	(IRState::endFinally): Likewise.
+	(IRState::doReturn): Likewise.
+	(IRState::doJump): Likewise.
+	(IRState::pushLabel): Likewise.
+	(IRState::checkSwitchCase): Likewise.
+	(IRState::checkGoto): Likewise.
+	(IRState::checkPreviousGoto): Likewise.
+
+	* d-elem.cc (CatAssignExp::toElem): Call postblit on appending array of
+	structs if required.
+
+2013-05-16  Johannes Pfau  <johannespfau@gmail.com>
+
+	* d-incpath.cc (prefixed_path): use cpp_PREFIX instead of
+	cpp_GCC_INCLUDE_DIR for relocation.
+
+2013-05-16  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (IRState::convertForAssignment): Remove use of
+	CtorEltMaker wrapper for vec<constructor_elt, va_gc>.
+	(d_array_value): Likewise.
+	(build_delegate_cst): Likewise.
+	(extract_from_method_call): Likewise.
+	* d-elem.cc (NewExp::toElem): Likewise.
+	(ArrayLiteralExp::toElem): Likewise.
+	(AssocArrayLiteralExp::toElem): Likewise.
+	(StructLiteralExp::toElem): Likewise.
+	(NullExp::toElem): Likewise.
+	(VectorExp::toElem): Likewise.
+	* d-objfile.cc (build_moduleinfo): Likewise.
+	* d-todt.cc (dt_container): Likewise.
+	(dt_container2): Likewise.
+
+	* d-asmstmt.cc (ExtAsmStatement::toIR): Remove use of ListMaker
+	wrapper for tree chaining.
+	* d-builtins.c (d_bi_builtin_func): Likewise.
+	(d_bi_builtin_type): Likewise.
+	(d_gcc_magic_builtins_module): Likewise.
+	(d_gcc_magic_libbuiltins_module): Likewise.
+	* d-codegen.cc (build_attributes): Likewise.
+	(IRState::call): Likewise.
+	(IRState::buildFrameForFunction): Likewise.
+	(AggLayout::doFields): Likewise.
+	(AggLayout::addField): Likewise.
+	* d-ctype.cc (TypeEnum::toCtype): Likewise.
+	(TypeFunction::toCtype): Likewise.
+	* d-todt.cc (dt_container2): Likewise.
+
+	* d-codegen.cc (IRState::getFrameInfo): Replace with get_frameinfo.
+	(IRState::buildFrameForFunction): Replace with build_frame_type.
+	(IRState::isClassNestedInFunction): Replace with d_nested_class.
+	(IRState::isStructNestedInFunction): Replace with d_nested_struct.
+	(IRState::getFrameForFunction): Fold into IRState::getFrameForSymbol.
+	(IRState::getFrameForNestedClass): Likewise.
+	(IRState::getFrameForNestedStruct): Likewise.
+
+2013-05-15  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (IRState::buildFrameForFunction): Also copy the
+	parameters of functions with 'in' contracts to a local frame decl.
+	* d-lang.cc (d_handle_flatten_attribute): New function to handle D
+	flatten attributes.
+
+2013-05-14  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (IRState::chainLink): Remove function.
+	(IRState::chainFunc): Remove function.
+	(IRState::sthis): New member which holds the chain of function.
+	(IRState::buildChain): Update to use new static chain decl.
+	(IRState::getFrameInfo): Likewise.
+	* d-objfile.cc (FuncDeclaration::buildClosure): Likewise.
+	(FuncDeclaration::toObjFile): Default the function static chain decl
+	to null unless vthis is given for the function.
+
+2013-05-13  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-lang.cc (d_handle_noinline_attribute): New function to handle D
+	noinline attributes.
+	(d_handle_forceinline_attribute): New function to handle D forceinline
+	attributes.
+	* d-elem.cc (StructLiteralExp::toElem): Return the struct initialiser
+	symbol directly if the tree has already been built.
+	* d-decls.cc (Dsymbol::toSymbolX): Constify the mangling name to use.
+
+2013-05-10  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-typinf.cc: New file containing type info routines originally in
+	the D Front End.
+
+	* d-todt.cc (dt_last): New helper function to retrieve last node in a
+	dt_t tree list.
+	(dt_cons): New helper function to append nodes to the end of a list.
+	(dt_chainon): New helper function to concatenate two lists together.
+	(dt_container): New helper function to build a ctor from a list.
+	(build_vptr_monitor): New helper function to generate the class
+	vtable, and put out __vptr and __monitor.
+	symbol default values in a class declaration.
+	(dtlist_to_tree): New helper function to convert a dt_t list into a
+	constructor tree.
+	(Type::toDt): Implement routines for new dt_t format.
+	(TypeInfoDeclaration::toDt): Likewise.
+	(Initializer::toDt): Likewise.
+	(Expression::toDt): Likewise.
+	(Declaration::toDt): Likewise.
+
+	* d-objfile.cc (Dsymbol::toObjFile): Update for new dt_t format.
+	(Module::genmoduleinfo): Likewise.
+	(Symbol::Symbol): Moved from symbol.cc
+	(Obj::objmod): Remove abstraction layer.
+	(Obj::moduleinfo): Renamed to build_moduleinfo.
+	(obj_tlssections): Renamed to build_tlssections.
+	(outdata): Renamed to d_finish_symbol.
+	(check_static_sym): Moved into d_finish_symbol.
+
+	* d-codegen.cc (d_gcc_emit_local_variable): Remove.
+
+	* d-decls.cc (Dsymbol::toSymbolX): Update to not call symbol_calloc.
+	(FuncDeclaration::toThunkSymbol): Likewise.
+	(ClassDeclaration::toSymbol): Build type as d_unknown_type_node.
+	(InterfaceDeclaration::toSymbol): Likewise.
+	(Module::toSymbol): Likewise.
+	(ClassDeclaration::toVtblSymbol): Update call to toSymbolX.
+	(AggregateDeclaration::toInitializer): Likewise.
+	(TypedefDeclaration::toInitializer): Likewise.
+	(EnumDeclaration::toInitializer): Likewise.
+
+	* d-ir.cc (CaseStatement::toIR): Don't call static_sym.
+
+	* d-lang.cc (rtlsym): Remove symbol.
+	(D_DECL_READONLY_STATIC): Remove macro.
+	(d_unknown_type_node): New LANG_TYPE node for marking TypeInfo_Class,
+	Interface, and ModuleInfo types that are of a variable size determined
+	at compile time.
+
+	* d-elem.cc (StringExp::toElem): Clean up for new dt_t format.
+
+	* symbol.cc: Remove file.
+
+2013-05-08  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (IRState::getFrameInfo): Don't create a frame/closure
+	for member functions, only required for nested.
+	* d-elem.cc (Expression::toElemDtor): Call dtors in the correct order.
+	(DeclarationExp::toElem): Don't call dtor on static, manifest, or
+	extern symbols upon declaration.
+	(AssignExp::toElem): Only call postblit on lvalues in assignment.
+	(ArrayLiteralExp::toElem): Always generate literals on heap.
+
+2013-05-06  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-elem.cc (StructLiteralExp::toElem): Return the default initialiser
+	symbol if one exists.
+	* d-builtins.c (d_gcc_magic_libbuiltins_check): Override the function
+	type with the correct built-in function type as defined in backend.
+
+2013-04-15  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-elem.cc (IdentityExp::toElem): Remove special handling of class,
+	reference and array types.
+
+2013-04-12  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (maybe_make_temp): Save call expressions so aren't
+	evaluated more than once.
+	(d_has_side_effects): Remove check for exceptional class types.
+
+2013-04-10  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-decls.cc (FuncDeclaration::toSymbol): Harden logic for marking
+	functions pure as in 'has no side effects'.
+
+2013-04-07  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-decls.cc (FuncDeclaration::toSymbol): Push deferred functions to
+	FuncDeclaration::deferred.
+	* d-elem.cc (DelegateExp::toElem): Likewise.
+	(FuncExp::toElem): Likewise.
+	* d-objfile.cc (ObjectFile::shouldEmit): Likewise.
+	(FuncDeclaration::toObjFile): Process all deferred functions in
+	FuncDeclaration::deferred.
+	* symbol.cc (Symbol::deferredNestedFuncs): Remove.
+
+2013-04-05  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-elem.cc (FuncExp::toElem): Defer function literals and lambdas
+	until parent function has finished processing.
+
+2013-04-04  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (IRState::buildChain): Use __frame decl directly when
+	setting up the function frame.
+	(maybe_set_builtin_frontend): Exit early if symbol has no parent.
+	* d-decls.cc (FuncDeclaration::toSymbol): Defer all nested functions,
+	not just templated instances.
+	* d-objfile.cc (FuncDeclaration::toObjFile): Delay processed deferred
+	nested functions until function has finished being generated.
+	(ObjectFile::shouldEmit): Don't emit nested functions if the parent
+	function hasn't finished processing.
+
+2013-04-03  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (maybe_set_builtin_frontend): Merged from
+	maybe_set_builtin and maybe_set_libcall.
+	* d-decls.cc (FuncDeclaration::toSymbol): Use
+	maybe_set_builtin_frontend.
+
+2013-03-31  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-lang.cc (d_init_options): Default module info emission to on.
+	(d_handle_option): New femit-moduleinfo switch.
+	* d-objfile.cc (Module::genobjfile): Don't emit module if disabled
+	explicitly.
+	* d-builtins.cc (is_intrinsic_module_p): New function to test whether
+	module is core.bitops.
+	(is_math_module_p): New function to test whether module is std.math or
+	core.stdc.math.
+	(is_builtin_va_arg_p): New function to test whether symbol is
+	specially handled va_arg template.
+	(is_builtin_va_start_p): New function to test whether symbol is
+	specially handled va_start template.
+	* d-codegen.cc (IRState::binding): Replace with bind_expr.
+	(IRState::mathModule): Replace with std_math_module.
+	(IRState::mathCoreModule): Replace with core_math_module.
+	(IRState::intrinsicModule): Replace with std_intrinsic_module.
+	(IRState::cstdargTemplateDecl): Replace with va_arg_template.
+	(IRState::stdargTemplateDecl): Replace with va_arg2_template.
+	(IRState::cstdargStartTemplateDecl): Replace with va_start_template.
+	(IRState::getLibCallDecl): Replace with get_libcall.
+	(IRState::maybeSetLibCallDecl): Replace with maybe_set_libcall.
+	(IRState::libCall): Replace with build_libcall.
+	(IRState::maybeSetUpBuiltin): Replace with maybe_set_builtin.
+	(IRState::Intrinsic): Move enum out of IRState.
+
+2013-03-30  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (IRState::darrayPtrRef): Replace with d_array_ptr.
+	(IRState::darrayLenRef): Replace with d_array_length.
+	(IRState::darrayVal): Replace with d_array_value.
+	(IRState::darrayString): Replace with d_array_string.
+	(IRState::arrayLength): Replace with get_array_length.
+	(get_object_method): Remove dependancy on irs parameter.
+	* d-lang.cc (d_init): Use static bool std_inc to determine whether to
+	include standard module paths.
+	(d_post_options): Canonicalize the input filename.
+	(d_parse_file): Correctly catch cases where input file is stdin.
+
+2013-03-27  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (IRState::getFrameInfo) Create a custom static chain for
+	all nested functions.
+	* d-gcc-includes.h: Rename to d-system.h
+
+2013-03-23  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-builtins.c (d_bi_init): Set REALPAD to be TYPE_PRECISION of
+	long_double_type_node.
+	* d-codegen.cc (IRState::twoFieldType): Replace with
+	build_two_field_type.
+	(IRState::arrayOpNotImplemented): Replace with unhandled_arrayop_p.
+	(IRState::delegateMethodRef): Replace with delegate_method.
+	(IRState::delegateObjectRef): Replace with delegate_object.
+	(IRState::delegateVal): Replace with build_delegate_cst.
+	(IRState::methodCallExpr): Replace with build_method_call.
+	(IRState::extractMethodCallExpr): Replace with
+	extract_from_method_call.
+	(IRState::objectInstanceMethod): Replace with get_object_method.
+	(IRState::twoFieldCtor): Remove.
+	(IRState::call): Assert that if calling a normal FUNCTION_TYPE,
+	'object' is not set.
+	* d-ctype.cc (TypeDelegate::toCtype): Build a METHOD_TYPE for the .func
+	field type in delegates.
+	* d-lang.h (D_IS_METHOD_CALL_EXPR): Rename to D_METHOD_CALL_EXPR.
+	* d-objfile.cc (FuncDeclaration::toObjFile): Remove assert for chain
+	function.
+
+2013-03-20  Johannes Pfau  <johannespfau@gmail.com>
+
+	* d-codegen.cc (IRState::objectInstanceMethod): Recursively check
+	for TOKsuper / TOKdottype. Do not ignore CastExp.
+	* d-elem.cc (IdentityExp::toElem): Ignore padding in bitwise floating
+	point comparisons.
+	* testsuite: Cleanup. Remove invalid tests, adjust tests, etc. 
+
+2013-03-20  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (IRState::objectInstanceMethod): Get function pointer
+	off function TREE_TYPE.
+	(build_deref): Handle cases where expression to dereference is an
+	address expression.
+	(modify_expr): New function overload to set return type directly.
+	* d-elem.cc (CatAssignExp::toElem): Use new modify_expr.
+	(AssignExp::toElem): Likewise.
+	* d-decls.cc (FuncDeclaration::toSymbol): Don't build a method type for
+	nested functions / delegates.  Just add on the hidden 'this' pointer
+	containing the custom static chain/closure object.
+
+	* d-codegen.cc (GlobalValues): Replace with current_module,
+	current_irs, object_file.
+	(IRState::getFuncType): Replace with get_function_type.
+	(IRState::isCallByAlias): Replace with call_by_alias_p.
+	(IRState::isFuncType): Replace with function_type_p.
+	(IRState::doExp): Remove.
+
+	* d-asmstmt.cc (ExtAsmStatement::syntaxCopy): Use arraySyntaxCopy to
+	copy front end expressions.
+
+	* d-codegen.cc (AssignExp::toElem): Call _d_arrayassign / _d_arrayctor
+	when assigning arrays of structs.
+
+2013-03-18  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (IRState::realPart): Replace with real_part.
+	(IRState::imagPart): Replace with imaginary_part.
+	(IRState::integerConstant): Replace with build_integer_cst.
+	(IRState::floatConstant): Replace with build_float_cst.
+	(IRState::hwi2toli): Replace with cst_to_hwi.
+	(IRState::addressOf): Replace with build_address.
+	(IRState::markAddressable): Replace with d_mark_addressable.
+	(IRState::markUsed): Replace with d_mark_used.
+	(IRState::markRead): Replace with d_mark_read.
+	(IRState::indirect): Replace with indirect_ref.
+	(IRState::pvoidOkay): Replace with void_okay_p.
+	(IRState::maybeCompound): Replace with maybe_compound_expr.
+	(IRState::maybeVoidCompound): Replace with maybe_vcompound_expr.
+	(IRState::isErrorMark): Replace with error_mark_p.
+	(IRState::getTargetSizeConst): Replace with tree_to_hwi.
+	(IRState::modify): Replace with modify_expr.
+	(IRState::vmodify): Replace with vmodify_expr.
+	(IRState::vinit): Replace with build_vinit.
+	(IRState::nop): Replace with build_nop.
+	(IRState::vconvert): Replace with build_vconvert.
+	(IRState::boolOp): Replace with build_boolop.
+	(IRState::compound): Replace with compound_expr.
+	(IRState::voidCompound): Replace with vcompound_expr.
+	(IRState::component): Replace with component_ref.
+	(IRState::errorMark): Replace with error_mark.
+	(IRState::typesSame): Replace with d_types_same.
+	(IRState::typesCompatible): Replace with d_types_compatible.
+	(IRState::getDType): Replace with build_dtype.
+	(IRState::getObjectType): Replace with build_object_type.
+	(IRState::isDeclarationReferenceType): Replace with decl_reference_p.
+	(IRState::trueDeclarationType): Replace with declaration_type.
+	(IRState::isArgumentReferenceType): Replace with arg_reference_p.
+	(IRState::trueArgumentType): Replace with type_passed_as.
+	(IRState::arrayType): Replace with d_array_type.
+	(IRState::addTypeAttribute): Replace with insert_type_attributes.
+	(IRState::addDeclAttribute): Replace with insert_decl_attributes.
+	(IRState::attributes): Replace with build_attributes.
+	(IRState::addTypeModifiers): Replace with insert_type_modifiers.
+	(IRState::maybeMakeTemp): Replace with maybe_make_temp.
+	(IRState::isFreeOfSideEffects): Replace with d_has_side_effects.
+	(IRState::pointerOffsetOp): Replace with build_offset_op.
+	(IRState::pointerOffset): Replace with build_offset.
+	(IRState::buildCall): Replace with d_build_call.
+	(IRState::exceptionObject): Replace with build_exception_object.
+
+2013-03-17  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-asmstmt.cc (d_build_asm_stmt): Remove.
+	(ExtAsmStatement::ExtAsmStatement): Update to match renamed members.
+	(ExtAsmStatement::syntaxCopy): Likewise.
+	(ExtAsmStatement::semantic): Likewise.
+	(ExtAsmStatement::toCBuffer): Likewise.
+	(ExtAsmStatement::comeFrom): New.
+	(ExtAsmStatement::blockExit): Don't error if must not throw.
+	(naturalString): Remove.
+	(ExtAsmStatement::toIR): Inline IRState::doAsm implementation.
+	* d-codegen.cc (IRState::doAsm): Remove.
+	* d-decls.cc (FuncDeclaration::toSymbol): Don't generate 'naked'
+	attribute.
+	(binfo_for): Move into d-decls.cc.
+	(intfc_binfo_for): Likewise.
+	(ClassDeclaration::toDebug): Likewise.
+	(EnumDeclaration::toDebug): Likewise.
+	(TypedefDeclaration::toDebug): Likewise.
+	(StructDeclaration::toDebug): Likewise.
+	* d-objfile.cc (FuncDeclaration::toObjFile): Move into d-objfile.cc.
+	(FuncDeclaration::buildClosure): Likewise.
+	(Module::genobjfile): Likewise.
+	* d-glue.cc: Remove file.
+
+2013-03-16  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-ir.cc (SynchronizedStatement::toIR): Remove implementation as is
+	now handled by the frontend.
+
+2013-03-15  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (IRState::maybeExpandSpecialCall): Handle ref argptr
+	arguments.
+
+2013-03-13  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-builtins.c (handle_alias_attribute): New function to handle
+	internal 'alias' attribute.
+	(handle_weakref_attribute): New function to handle internal 'weakref'
+	attribute.
+	* d-objfile.cc (ObjectFile::outputThunk): Define thunks to external
+	symbols as weakref, alias
+
+2013-03-12  Johannes Pfau  <johannespfau@gmail.com>
+
+	* patch-versym-os-4.8.x (mingw32.h): Fix typo
+	* patch-versym-cpu-4.8.x (mips.h): Fix typo
+	Update version symbols to latest dlang specification.
+
+2013-03-10  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-decls.cc (FuncDeclaration::toSymbol): Delay setting TREE_TYPE as
+	function type could be hidden in a nested function not yet built.
+	* d-codegen.cc (IRState::findThis): Don't get 'this' from outer
+	function if it's a closure type.  This has already been handled by
+	IRState::getFrameForSymbol.
+	(IRState::buildChain): Give frame decl debug name '__frame'.
+	Always set '__chain' link field.
+	(IRState::getFrameInfo): Don't build a frame for all nested functions.
+	Search through nested aggregates for static chain in outer functions.
+	* d-codegen.h (IRState::useParentChain): Remove.
+	* d-glue.cc (FuncDeclaration::toObjFile): Don't call useParentChain.
+	Don't create a local var for the chain link for a function.
+	(FuncDeclaration::buildClosure): Always set '__chain' link field.
+
+2013-03-08  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (d_gcc_force_templates): Only check for emitting
+	templates as private.
+	* d-lang.cc (d_handle_option): Remove -femit-templates= option.
+	* d-objfile.cc (ObjectFile::makeDeclOneOnly): Fix code logic so
+	fallback method could be reached.
+	* d-objfile.h (TEall, TEauto): Remove.
+
+2013-03-07  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-ir.cc (ReturnStatement::toIR): Don't call postblit on return.
+	* d-codegen.cc (IRState::trueDeclarationType): Don't set
+	D_TYPE_ADDRESSABLE.
+	(IRState::makeTemp): Remove.
+	(IRState::maybeMakeTemp): Copy makeTemp into function.
+	* d-glue.cc (d_genericize): Remove D_TYPE_ADDRESSABLE handling.
+	* d-lang.h (D_TYPE_ADDRESSABLE): Remove macro.
+
+2013-03-04  Johannes Pfau  <johannespfau@gmail.com>
+
+	* d-ctype.cc (Type::toCtype): Always call gen.addTypeModifiers to
+	make sure TYPE_MAIN_VARIANT is set. Reuse tree from unqualified
+	variant for that. Also cache the resulting qualified tree.
+	(TypeTypedef::toCtype): Likewise.
+	(TypeEnum::toCtype): Likewise.
+	(TypeStruct::toCtype): Likewise.
+	(TypeFunction::toCtype): Likewise.
+	(TypeVector::toCtype): Likewise.
+	(TypeSArray::toCtype): Likewise.
+	(TypeDArray::toCtype): Likewise.
+	(TypeAArray::toCtype): Likewise.
+	(TypeDelegate::toCtype): Likewise.
+	(TypeClass::toCtype): Likewise.
+	* d-objfile.cc (ObjectFile::giveDeclUniqueName): Make sure DECL_NAME is set
+
+2013-03-01  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-decls.cc (VarDeclaration::toSymbol): Remove use of c_ident.
+	(FuncDeclaration::toSymbol): Likewise.
+	* d-builtins.c (handle_noreturn_attribute): Assert that this is only
+	used for internal purposes.
+	(handle_const_attribute): Likewise.
+	(handle_malloc_attribute): Likewise.
+	(handle_pure_attribute): Likewise.
+	(handle_nonnull_attribute): Likewise.
+	(handle_nothrow_attribute): Likewise.
+	(handle_sentinel_attribute): Likewise.
+	(handle_transaction_pure_attribute): Likewise.
+	(handle_returns_twice_attribute): Likewise.
+	* d-glue.cc (FuncDeclaration::toObjFile): Result variables have no
+	default initialiser.
+	* d-codegen.cc (IRState::emitLocalVar): Add in assert that the local
+	variable has no initialiser if called with no_init = true.
+	(IRState::getLibCallDecl): Mark exceptional library functions as
+	noreturn.
+	(IRState::attributes): Gracefully handle @attribute, and
+	@attribute(null).
+
+2013-02-28  Jernej Krempus  <jkrempus@gmail.com>
+
+	* d-builtins.c (d_attribute_table): Renamed it to
+	d_builtins_attribute_table.
+	* d-lang.cc (d_attribute_table): Added an empty table
+	* d-lang.cc (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE): Defined it as
+	d_builtins_attribute_table.
+	* d-lang.h (d_builtins_attribute_table): Added a declaration.
+	* d-codegen.cc (IRState::attributes): Changed it so it goes through
+	in_attrs and looks for any @gcc.attribute.attribute("attr_name").
+	* d-objfile.cc (ObjectFile::setupSymbolStorage): Pass userAttributes
+	instead of attributes in all calls to IRState::attributes.
+	* d-ctype.cc (TypeTypedef::toCtype): Likewise.
+	(TypeEnum::toCtype): Likewise.
+	(TypeStruct::toCtype): Likewise.
+	(TypeClass::toCtype): Likewise.
+	* libphobos/libdruntime/gcc/attribute.d: New file.
+
+2013-02-28  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-lang.cc (d_handle_option): Remove OPT_fdeprecated and
+	OPT_Wsign_compare, add handling for OPT_Wdeprecated.
+	(d_post_options): Handle Wdeprecated and Werror switch combination.
+
+2013-02-27  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (ArrayScope::ArrayScope): Don't setup length var if its
+	value is known at compile time.
+	(ArrayScope::setArrayExp): Likewise.
+	* d-decls.cc (uniqueName): Remove function.
+	(VarDeclaration::toSymbol): Set decl assembler name directly.
+	(FuncDeclaration::toSymbol): Likewise.
+
+2013-02-15  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* Make-lang.in (GDC_EXTENDED_ASM_SYNTAX): Remove macro.
+
+2013-02-14  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-lang.h (D_DECL_IS_CONTRACT): Remove macro.
+	* d-decls.cc (FuncDeclaration::toSymbol): Likewise.
+
+2013-02-13  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-lang.cc (d_gcc_is_target_win32): Remove.
+	(d_add_builtin_version): New function to handle define_builtin
+	callback from backend.
+	* d-codegen.cc (IRState::maybeExpandSpecialCall): Remove intrinsic bt.
+
+	* d-builtins.c: Merge with d-builtins2.cc.
+	* d-builtins2.cc: Remove.
+
+2013-02-07  Johannes Pfau  <johannespfau@gmail.com>
+
+	* d-lang.cc (d_init): Use gcc's config system for predefined OS versions.
+	* setup-gcc.sh: Likewise.
+	* target-ver-syms.sh: Likewise.
+
+2013-02-05  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-builtins2.cc (gcc_type_to_d_type): Remove STRUCTTHISREF condition.
+	* d-decls.cc (FuncDeclaration::toSymbol): Likewise.
+	* d-elem.cc (ThisExp::toElem): Likewise.
+	* d-ctype.cc (TypeSArray::toCtype): Remove SARRAYVALUE condition.
+	* d-codegen.cc (IRState::isDeclarationReferenceType): Likewise.
+	(IRState::isArgumentReferenceType): Likewise.
+
+2013-02-01  Johannes Pfau  <johannespfau@gmail.com>
+
+	* d-lang.cc (d_init): Use gcc's config system for predefined CPU versions.
+	(d_init): Fix definition of D_LP64 version.
+	* setup-gcc.sh: Likewise.
+	* target-ver-syms.sh: Likewise.
+
+
+Copyright (C) 2013 Free Software Foundation, Inc.
+
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
diff --git a/gcc/d/ChangeLog-2014 b/gcc/d/ChangeLog-2014
new file mode 100644
index 00000000000..cf8c8ac2c06
--- /dev/null
+++ b/gcc/d/ChangeLog-2014
@@ -0,0 +1,660 @@
+2014-12-14  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* Make-lang.in (check_gdc_parallelize): Update for testsuite changes.
+	* d-convert.cc (d_convert_basic): Avoid stack overflow when converting
+	from pointer to integer.
+	* d-objfile.cc (FuncDeclaration::toObjFile): Emit correct frame
+	information for closures rather than generic void pointers.
+
+2014-11-10  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-elem.cc (CatExp::toElem): Split dynamic arrays when passing as
+	varargs to arraycatT and arraycatnT.
+
+2014-11-09  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (build_vthis): Handle getting static chain for nested
+	templated structs.
+
+2014-09-07  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-elem.cc (ArrayLiteralExp::toElem): Remove special handling for
+	immutable arrays.
+
+2014-08-03  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-longdouble.cc (longdouble::formatHex): Convert buffer to uppercase
+	for use in mangling templates.
+
+2014-07-29  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-elem.cc (NewExp::toElem): Check for opaque structs before
+	continuing to generate the new expression.
+
+	* d-lang.h.cc (d_vtbl_ptr_type_node): Renamed to vtbl_ptr_type_node.
+	(d_boolean_type_node): Renamed to bool_type_node.
+	(d_char_type_node): Renamed to char8_type_node.
+	(d_wchar_type_node): Renamed to char16_type_node.
+	(d_dchar_type_node): Renamed to char32_type_node.
+	(d_ifloat_type_node): Renamed to ifloat_type_node.
+	(d_idouble_type_node): Renamed to idouble_type_node.
+	(d_ireal_type_node): Renamed to ireal_type_node.
+	(byte_type_node, ubyte_type_node): New macros for fixed integral
+	types in D.
+	(short_type_node, ushort_type_node): Likewise.
+	(int_type_node, uint_type_node): Likewise.
+	(long_type_node, ulong_type_node): Likewise.
+	(cent_type_node, ucent_type_node): Likewise.
+	* d-builtins.c (d_init_builtins): Initialise all D specific type nodes.
+	* d-codegen.cc (d_bounds_condition): Use D-specific type macros instead
+	of backend C types.
+	(layout_aggregate_type): Likewise.
+	(build_integer_cst): Likewise.
+	(build_boolop): Likewise.
+	* d-convert.cc (d_build_truthvalue_op): Likewise.
+	(d_truthvalue_conversion): Likewise.
+	* d-ctype.cc (Type::toCtype): Likewise.
+	* d-decls.cc (FuncDeclaration::toSymbol): Likewise.
+	* d-elem.cc (CmpExp::toElem): Likewise.
+	(OrOrExp::toElem): Likewise.
+	(NotExp::toElem): Likewise.
+	* d-lang.cc (d_type_for_mode): Likewise.
+	(d_type_for_size): Likewise.
+	(d_signed_or_unsigned_type): Likewise.
+
+2014-07-23  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-ctype.cc (TypeFunction::toCtype): Only check for ref return for
+	functions returning non-void.
+
+2014-07-21  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-objfile.cc (output_declaration_p): Don't emit any declarations from
+	the gcc.attribute module.
+	(StructDeclaration::toObjFile): Call output_declaration_p.
+	* d-glue.cc (verror): Only call vasprintf on the initial format string.
+
+2014-07-17  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-lang.cc (d_init_options_struct): Set flag_wrapv as on by default.
+
+2014-07-14  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-elem.cc (NewExp::toElem): Don't initialise a new'd struct at the
+	caller.  The callee ensures this is done.
+
+2014-07-13  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-objfile.cc (d_finish_symbol): Always set TREE_STATIC for symbols
+	being sent to the backend here.
+
+2014-07-12  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-objfile.cc (d_finish_symbol): Don't set DECL_INITIAL if the
+	initialiser is all zeros.
+
+2014-07-10  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-builtins.cc (lookup_ctype_name): Remove function.
+	(string_type_node): Move to static declaration from d_global_trees.
+	(const_string_type_node): Likewise.
+	(wint_type_node): Likewise.
+	(intmax_type_node): Likewise.
+	(uintmax_type_node): Likewise.
+	(signed_size_type_node): Likewise.
+	(d_init_builtins): Update.
+	* d-lang.cc (d_type_for_mode): Return only fixed size types.
+	(d_type_for_size): Likewise.
+	(d_signed_or_unsigned_type): Likewise.
+	(d_unsigned_type): Remove duplicated code from
+	d_signed_or_unsigned_type.
+	(d_signed_type): Likewise.
+
+2014-07-03  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-objfile.cc (finish_thunk): Use set_decl_section_name, copy the
+	implicit section flag.
+	(setup_symbol_storage): Use decl_default_tls_model.
+
+2014-06-26  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.h (d_types_compatible): Remove function.
+	(d_types_same): Use more conservative approach to type equality.
+	* d-codegen.cc (get_libcall): Allow backend to be able to optimise
+	closure memory allocations.
+	(convert_for_assignment): Use d_types_same.
+	* d-elem.cc (CatExp::toElem): Likewise.
+	(BinExp::toElemBin): Likewise.
+	(CatAssignExp::toElem): Likewise.
+	(StructLiteralExp::toElem): Likewise.
+
+2014-06-14  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-elem.cc (CondExp::toElem): Handle void type condition expressions.
+	(AssignExp::toElem): Use ismemset to test for initialising arrays with
+	a single value.
+	(StructLiteralExp::toElem): Build static initialiser if a symbol was
+	created by the front-end.
+	* d-codegen.h (d_types_compatible): First check equality of types, then
+	implicit compatibility.
+	* d-convert.cc (d_default_conversion): Remove function, fold
+	implementation into...
+	(d_truthvalue_conversion): ... here.
+
+2014-06-12  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-convert.cc (d_scalar_conversion): Remove function.
+	(d_build_truthvalue_op): Update.
+	(d_truthvalue_conversion): Update.
+
+	* d-codegen.cc (get_frame_for_symbol): Remove glue-specific error
+	messages and refactor.
+	(build_vthis): Likewise.
+	(get_framedecl): Likewise.
+	* d-elem.cc (AssignExp::toElem): Update call to build_vthis.
+	(NewExp::toElem): Likewise.
+	(StructLiteralExp::toElem): Likewise.
+	* d-objfile.cc (Dsymbol::toObjFile): Fix build warning.
+
+	* d-codegen.cc (d_decl_context): Always return parent context for
+	functions nested in functions.
+	(is_degenerate_closure): Remove function.
+	(needs_static_chain): Remove function.
+	* d-decls.cc (FuncDeclaration::toSymbol): Remove workaround for cgraph
+	nesting structure, saving the original context decl.
+	* d-lang.h (D_DECL_STATIC_CHAIN): Remove macro.
+	* d-objfile.cc (Symbol::Symbol): Remove ScontextDecl field.
+	(FuncDeclaration::toObjFile): Remove workaround for cgraph nesting
+	structure, restoring the original context decl.  Delay building the
+	cgraph node until...
+	(d_finish_function): ... here, where the function is unnested.
+
+2014-06-11  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-objfile.cc (d_finish_function): Update the callgraph to reflect
+	unnesting of the function, as unravelling has already been handled by
+	the frontend.  Do not delay calling cgraph_finalize_function.
+
+2014-06-09  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-objfile.cc (d_comdat_group): Return a decl.
+	* d-decl.cc (FuncDeclaration::toThunkSymbol): Don't set comdat group.
+	* d-elem.cc (EqualExp::toElem): Always store temporaries when comparing
+	two dynamic arrays.
+
+2014-06-08  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-decls.cc (TypeInfoDeclaration::toSymbol): Add assert that Error
+	types never reach the backend.
+	* d-typinf.cc (Type::getTypeInfo): Likewise.
+
+2014-06-08  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* dfrontend: Update to D front-end version 2.065.
+
+	* d-codegen.cc (d_build_call): Evaluate side effects of the object
+	parameter for method or delegate calls before passing.
+	(libcall_ids): Rename _d_array_bounds to _d_arraybounds.
+	(get_libcall): Update parameter types for _d_arraycopy.
+	(finish_aggregate_type): Update for frontend UDA changes.
+	* d-ctype.cc (TypeTypedef::toCtype): Update for frontend UDA changes.
+	(TypeEnum::toCtype): Likewise.
+	(TypeStruct::toCtype): Likewise.
+	(TypeClass::toCtype): Likewise.
+	* d-elem.cc (BoolExp::toElem): New function.
+	* d-lang.cc (rootmodule): New declaration for frontend entrypoint
+	changes.
+	(genCmain): Update for frontend entrypoint changes.
+	(d_handle_option): Don't duplicate memory for argument values.
+	(d_parse_file): Don't duplicate memory for source filenames.
+	* d-objfile.cc (VarDeclaration::toObjFile): Don't emit instantiated
+	manifest constants to debug.
+	(TemplateInstance::toObjFile): Update for frontend changes.
+	(output_template_p): Remove function.
+	(output_declaration_p): Update for frontend changes.
+	(setup_symbol_storage): Update for frontend UDA changes.
+	* d-target.cc (Target::reverseCppOverloads): New declaration.
+	* d-typinf.cc (Type::getInternalTypeInfo): Update for frontend changes.
+	(Type::getTypeInfo, Type::getTypeInfoDeclaration): Likewise.
+	(TypeTypedef::getTypeInfoDeclaration): Likewise.
+	(TypePointer::getTypeInfoDeclaration): Likewise.
+	(TypeDArray::getTypeInfoDeclaration): Likewise.
+	(TypeSArray::getTypeInfoDeclaration): Likewise.
+	(TypeAArray::getTypeInfoDeclaration): Likewise.
+	(TypeStruct::getTypeInfoDeclaration): Likewise.
+	(TypeClass::getTypeInfoDeclaration): Likewise.
+	(TypeVector::getTypeInfoDeclaration): Likewise.
+	(TypeEnum::getTypeInfoDeclaration): Likewise.
+	(TypeFunction::getTypeInfoDeclaration): Likewise.
+	(TypeDelegate::getTypeInfoDeclaration): Likewise.
+	(TypeTuple::getTypeInfoDeclaration): Likewise.
+	(createTypeInfoArray): Likewise.
+
+	* d-intrinsics.def: New file for declaring D intrinsics.
+
+	* d-builtins.cc (std_intrinsic_module, std_math_module)
+	(core_math_module, va_arg_template, va_arg2_template)
+	(va_start_template): Remove declarations.
+	(is_intrinsic_module_p, is_math_module_p, is_builtin_va_arg_p)
+	(is_builtin_va_start_p, d_gcc_magic_stdarg_check)
+	(d_gcc_magic_stdarg_module): Remove functions.
+	(d_gcc_magic_builtins_module): Rename to d_build_builtins_module.
+	(d_gcc_magic_libbuiltins_module): Rename to maybe_set_builtin.
+	(d_gcc_magic_libbuiltins_check): Rename to maybe_set_builtin_1.
+	(gcc_type_to_d_type): Rename to build_dtype.
+	(gcc_cst_to_d_expr): Rename to build_expression.
+	(d_gcc_eval_builtin): Remove function.
+	(eval_builtin): Moved to...
+	* d-glue.cc (eval_builtin): New function, updated for glue changes.
+	(FuncDeclaration::isBuiltin): New function to determine whether a
+	given function symbol is a compiler intrinsic.
+	* d-codegen.cc (maybe_expand_builtin): Rename to expand_intrinsic.
+	(Intrinsic): Remove enum declaration, replaced with...
+	(intrinsic_code): New enum for compiler intrinsics.
+	(intrinsic_decls): New declaration for store intrinsic information.
+	(expand_intrinsic_bt): Update signature.
+	(maybe_set_intrinsic): New function to replace...
+	(maybe_set_builtin_frontend): Remove function.
+	* d-decls.cc (FuncDeclaration::toSymbol): Update for glue changes.
+
+	* d-builtins.c: Rename to d-builtins.cc
+	* d-gt.c: Rename to d-gt.cc
+	* d-spec.c: Rename to d-spec.cc
+
+	* d-toir.cc: Renamed to toir.cc
+	* toir.cc: New file, re-implement toIR methods as a visitor.
+
+	* d-codegen.cc (insert_type_modifiers): Handle MODwildconst modifiers.
+	(build_ir): New function.
+	* d-objfile.cc (FuncDeclaration::toObjFile): Use build_ir to walk
+	front-end IR trees.
+	* d-decls.cc (VarDeclaration::toSymbol): Mark compiler temporaries as
+	DECL_ARTIFICIAL.
+	(ClassDeclaration::toVtblSymbol): Update for front-end changes.
+	* d-builtins.c (gcc_type_to_d_type): Likewise.
+	* d-elem.cc (CatAssignExp::toElem): Likewise.
+	(ArrayLiteralExp::toElem): Likewise.
+	(BoolExp::toElem): Remove function.
+	(ComExp::toElem): Assert that unhandled array operations no longer
+	leak from the front-end.
+	(NegExp::toElem): Likewise.
+	* d-glue.cc (Global::init): Initialise new member run_noext.
+	* d-incpath (add_import_path): Update for front-end changes.
+	* d-lang.cc (d_add_builtin_version): Likewise.
+	* d-todt.cc (StructDeclaration::toDt): Likewise.
+	* d-toir.cc (LabelStatement::toIR): Don't delete forward references.
+	(GotoStatement::toIR): Assert that undefined labels no longer leak
+	from the front-end.
+
+2014-05-31  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-todt.cc (dt_container): Properly handle zero length static arrays.
+	* d-codegen.h (build_dtype): Rename to lang_dtype.
+	(build_ddecl): Rename to lang_ddecl.
+
+2014-05-21  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-builtins.c (d_init_builtins): Use void_node instead of
+	d_void_zero_node.
+	* d-lang.h (d_void_zero_node): Remove.
+	* d-elem.cc (AndAndExp::toElem): Adjust.
+	(OrOrExp::toElem): Likewise.
+	(AssertExp::toElem): Likewise.
+	(TupleExp::toElem): Likewise.
+
+	* d-builtins.c (d_init_builtins): Use null_pointer_node instead of
+	d_null_pointer.
+	* d-lang.h (d_null_pointer): Remove.
+	* d-codegen.cc (convert_expr): Adjust.
+	(get_frame_for_symbol): Likewise.
+	(build_vthis): Likewise.
+	(get_framedecl): Likewise.
+	* d-elem.cc (DeleteExp::toElem): Likewise.
+	(CallExp::toElem): Likewise.
+	(AssertExp::toElem): Likewise.
+	(NewExp::toElem): Likewise.
+	(ArrayLiteralExp::toElem): Likewise.
+	(NullExp::toElem): Likewise.
+	* d-objfile.cc (ClassDeclaration::toObjFile): Likewise.
+	(InterfaceDeclaration::toObjFile): Likewise.
+	(FuncDeclaration::toObjFile): Likewise.
+	(build_moduleinfo): Likewise.
+	* d-todt.cc (TypeInfoTypedefDeclaration::toDt): Likewise.
+	(TypeInfoEnumDeclaration::toDt): Likewise.
+	(TypeInfoStructDeclaration::toDt): Likewise.
+
+2014-05-18  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-longdouble.cc (longdouble::from_shwi): Rename to from_int.
+	(longdouble::from_uhwi): Rename to from_uint.
+	(longdouble::to_shwi): Rename to to_int.
+	(longdouble::to_uhwi): Rename to to_uint.
+	(longdouble::set): Adjust.
+	(longdouble::operator): Likewise.
+
+	* d-lang.cc (alloc_binding_level): Adjust.
+	(build_d_type_lang_specific): Likewise.
+	(build_d_decl_lang_specific): Likewise.
+	* d-lang.h (lang_type): Don't use variable_size gty attribute.
+	* d-codegen.cc (cst_to_hwi): Remove function.
+	* d-codegen.cc (tree_to_hwi): Remove function.
+	* d-builtins.c (gcc_type_to_d_type): Adjust.
+	(gcc_cst_to_d_expr): Likewise.
+	* d-convert.cc (d_truthvalue_conversion): Use integer_zerop.
+	(get_nonnull_operand): Use tree_fits_uhwi_p.
+	* d-longdouble.cc (longdouble::from_int): Adjust.
+	(longdouble::from_uint): Likewise.
+	(longdouble::to_int): Likewise.
+
+2014-04-30  Johannes Pfau  <johannespfau@gmail.com>
+
+	* d-lang.cc (d_init): Define GNU_SEH_Exceptions and
+	GNU_DWARF2_Exceptions versions.
+
+2014-04-21  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-lang.cc (d_init_options): Default deprecation warnings to off.
+	* d-ctype.cc (TypeDelegate::toCtype): Propogate TREE_ADDRESSABLE from
+	the base function to the delegatised copy.
+
+2014-04-15  Johannes Pfau  <johannespfau@gmail.com>
+
+	* d-lang.cc (d_handle_noclone_attribute): New function to handle
+	noclone attribute. noclone is required by the naked attribute.
+	* d-elem.cc (SymbolExp::toElem): Convert symbols to the expression
+	type.
+
+2014-04-13  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (get_frameinfo): Don't copy the node for frame record.
+	* d-irstate.cc (IRState::endCatches): Rebuild the STATEMENT_LIST of
+	catches in a TRY_CATCH_EXPR if it gets optimised away by
+	IRState::popStatement.
+	* d-codegen.cc (d_attribute_p): Provide access to target attributes.
+
+2014-03-31  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (error_mark_p): Removed function, replace uses with
+	error_operand_p.
+	(error_mark): Removed function, replace uses with error_mark_node.
+	* d-ctype.cc (Type::toCtype): Return d_unknown_type_node for frontend
+	error types.
+	* d-objfile.cc (VarDeclaration::toObjFile): Don't build CONST_DECLs for
+	non-scalar manifests.
+
+2014-03-23  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-decls.cc (Dsymbol::toImport): Prevent GC from collecting
+	IMPORTED_DECL nodes whilst front-end compilation in progress.
+
+2014-03-19  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (AggLayout::visit): Rename to layout_aggregate_type.
+	(AggLayout::doFields, AggLayout::doInterfaces): Remove function and
+	move implementation into layout_aggregate_type.
+	(AggLayout::addField): Rename to insert_aggregate_field.
+	(AggLayout::finish): Rename to finish_aggregate_type.
+	* d-codegen.h (AggLayout): Update definition.
+	* d-ctype.cc (TypeStruct::toCtype): Update for glue changes.
+	(TypeFunction::toCtype): Fix ICE on generic function types.
+	(TypeClass::toCtype): Move generation of vptr and monitor fields into
+	layout_aggregate_type.  Moved generation of TYPE_METHODS from ...
+	* d-objfile.cc (FuncDeclaration::toObjFile): ... here into
+	TypeClass::toCtype.  Don't build up TYPE_METHODS on a per-function
+	basis, generate the entire vtable.
+
+2014-03-18  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-decls.cc (Dsymbol::toSymbolX): Set the symbol prettyIdent.
+	(Dsymbol::toImport): Emit packages as their fully qualified names.
+	(ClassDeclaration::toSymbol): Distinguish between the classinfo
+	assembler and decl name.
+	(InterfaceDeclaration::toSymbol): Likewise for interface symbol.
+	(Module::toSymbol): Likewise for moduleinfo symbol.
+	(ClassDeclaration::toVtblSymbol): Likewise for class vtable symbol.
+	(AggregateDeclaration::toInitializer)
+	(TypedefDeclaration::toInitializer, EnumDeclaration::toInitializer):
+	Likewise for default initialisers.
+	* d-objfile.cc (Module::genobjfile): Don't set-up moduleinfo symbol
+	storage twice.
+
+2014-03-17  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (d_decl_context): Fix null pointer dereference.
+	* d-objfile.cc (FuncDeclaration::toObjFile): Don't override the setting
+	of DECL_CONTEXT on the declaration here.
+	(d_finish_symbol): Likewise.
+	* d-objfile.cc (VarDeclaration::toObjFile): Move the generation of
+	manifest constants to ...
+	* d-decls.cc (VarDeclaration::toSymbol): ... here, and emit them as
+	CONST_DECLs.  Set the DECL_CONTEXT for all variable symbols.
+
+	* d-builtins.cc (d_gcc_magic_builtins_module): Don't store compiler
+	generated builtins in Symbol::isym, use Symbol::csym instead.
+	(d_gcc_magic_libbuiltins_check): Likewise.
+	* d-codegen.cc (d_decl_context): Return the imported symbol tree of
+	modules where the NAMESPACE_DECL is now stored.
+	(d_build_module): Remove function.  Move implementation to ...
+	* d-decls.cc (Dsymbol::toImport): ... here.  Build an IMPORTED_DECL for
+	all imported declarations.
+	(FuncDeclaration::toSymbol): Remove special handling of Symbol::isym.
+	(Module::toSymbol): Remove call to d_build_module.
+	* d-objfile.cc (Dsymbol::toObjFile): Handle emission of IMPORTED_DECL
+	symbols to debug.
+
+2014-03-16  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (build_attributes): Ensure D-specific attributes have
+	their value interpreted through CTFE.
+
+2014-02-21  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (d_build_module): Update signature to accept a Loc
+	location to the module declaration.
+	* d-decls.cc (Module::toSymbol): Update call to d_build_module.
+	Set TREE_PUBLIC/DECL_EXTERNAL to distingush which modules are being
+	compiled.
+	* d-objfile.cc (Dsymbol::toObjFile): Handle Import symbols, and emit
+	debug information for imported modules.
+	(ImportStatement::toIR): Likewise.
+	(set_input_location): New function to implement the equivalent of
+	set_decl_location, but instead sets input_location.
+
+2014-02-19  Johannes Pfau  <johannespfau@gmail.com>
+
+	* d-objfile.cc (build_call_function): Call set_input_location
+	to set debug info correctly
+
+2014-02-18  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-objfile.cc (VarDeclaration::toObjFile): Remove toplevel check.
+	DECL_CONTEXT is never set on manifest constants.
+	(d_finish_compilation): Remove fancy check on force outputting
+	symbols to object file.
+	(build_type_decl): Don't emit the qualified identifier in debug
+	information.  The fully qualified name is now determined through the
+	NAMESPACE_DECL context chain.
+	* d-ctype.cc (TypeEnum::toCtype): Likewise for enum members.
+	(VarDeclaration::toSymbol): Likewise for static variables.
+	(FuncDeclaration::toSymbol): Likewise for functions.
+
+	* d-decls.cc (FuncDeclaration::toSymbol): Don't emit the 'D main'
+	symbol to debug as plain 'main'.
+	* d-objfile.cc (VarDeclaration::toObjFile): Don't emit the qualified
+	identifier of manifest constants in debug information.
+
+2014-02-17  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (d_build_module): New function.
+	* d-decls.cc (Module::toSymbol): Use d_build_module to build up the
+	qualified module namespace.
+
+	* d-codegen.cc (expand_intrinsic_op, expand_intrinsic_op2): New
+	functions to build a call to a builtin code.
+	(expand_intrinsic_bsr, expand_intrinsic_bt): New functions to expand a
+	BUILTIN_FRONTEND call to core.bitop intrinsics.
+	(expand_intrinsic_vaarg, expand_intrinsic_vastart): New functions to
+	expand a BUILTIN_FRONTEND call to core.vararg intrinsics.
+	(maybe_expand_builtin): Update.
+
+2014-02-16  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-decls.cc (Module::toSymbol): Build a NAMESPACE_DECL to populate the
+	DECL_CONTEXT of toplevel functions.
+	* d-codegen.cc (d_decl_context): Return the enclosing module
+	NAMESPACE_DECL as the decl context only when the symbol is extern(D)
+	and not D main.
+
+2014-02-15  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-decls.cc (VarDeclaration::toSymbol): Don't call
+	setup_symbol_storage until after SET_DECL_ASSEMBLER_NAME has been set.
+
+	* d-decls.cc (VarDeclaration::toSymbol): Give prettyIdent precedence
+	for the DECL_NAME over the simple identifier.
+	(FuncDeclaration::toSymbol): Likewise.
+	* d-objfile.cc (d_finish_symbol): Remove setting DECL_NAME as
+	prettyIdent, this has already been done in Declaration::toSymbol.
+	(d_finish_function): Likewise.
+
+	* d-decls.cc (VarDeclaration::toSymbol): Call set_user_assembler_name
+	if pragma(mangle) was seen.
+	(FuncDeclaration::toSymbol): Likewise.
+
+2014-02-12  Johannes Pfau  <johannespfau@gmail.com>
+
+	* d-decls.cc (FuncDeclaration::toSymbol): Do not set TREE_NOTHROW on
+	nothrow functions.
+	* d-decls.cc (TypeInfoDeclaration::toSymbol): Call relayout_decl after
+	changing the type.
+
+2014-02-03  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+
+	* d-codegen.cc (d_build_call): Remove special handling of
+	flag_split_darrays switch.
+	(maybe_expand_builtin): Likewise.
+	* d-elem.cc (CatExp::toElem): Likewise.
+	* lang.opt (fsplit-dynamic-arrays): Remove.
+
+2014-02-02  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-glue.cc (readFile, writeFile, ensurePathToNameExists): Define.
+	* d-incpath.cc (add_import_path): Update for frontend changes.
+	(add_fileimp_path): Likewise.
+	* d-lang.cc (deps_write): Likewise.
+	(d_parse_file): Likewise.
+	* d-todt.cc (Dts): Update define for frontend changes.
+	* d-decls.cc (ClassDeclaration::toVtblSymbol): Don't mark __vtbl
+	symbols as virtual.  They are global static symbols.
+
+2014-01-12  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-decls.cc (EnumDeclaration::toDebug): Build TYPE_DECL only for
+	enumeral types.
+
+2014-01-06  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-ctype.cc (TypeClass::toCtype): Don't add __monitor field for
+	extern(C++) classes.
+
+	* d-builtins.c (d_gcc_magic_module): Remove tdata.
+	* d-codegen.cc (build_interface_binfo): Likewise.
+	* d-ctype.cc (TypeEnum::toCtype): Likewise.
+	(TypeClass::toCtype): Likewise.
+	* d-lang.cc (deps_write): Likewise.
+
+2014-01-05  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-ctype.cc (TypeEnum::toCtype): Don't push CONST_DECLs into current
+	function.
+	* d-decls.cc (FuncDeclaration::toThunkSymbol): Don't mark symbol as
+	TREE_PRIVATE, just TREE_PUBLIC as false.
+	(StructLiteralExp::toSymbol): Likewise.
+	(ClassReferenceExp::toSymbol): Likewise.
+	* d-objfile.cc (d_comdat_linkage): Likewise.
+	(d_finish_symbol): Likewise.
+	(build_moduleinfo): Likewise.
+
+	* config-lang.in: Add d-lang.cc to gtfiles.
+	* d-irstate.h (IRState::varsInScope): Change from Array to vec<> type.
+	(IRState::statementList_): Likewise.
+	(IRState::scopes_): Likewise.
+	(IRState::loops_): Likewise.
+	(IRState::labels_): Likewise.
+	* d-lang.h (d_bi_builtin_func): Remove declaration.
+	(d_bi_builtin_type): Likewise.
+	(d_keep_list): Likewise.
+	* d-objfile.h (Symbol::thunks): Change from Array to vec<> type.
+	(ModuleInfo::classes): Likewise.
+	(ModuleInfo::ctors): Likewise.
+	(ModuleInfo::dtors): Likewise.
+	(ModuleInfo::ctorgates): Likewise.
+	(ModuleInfo::sharedctors): Likewise.
+	(ModuleInfo::shareddtors): Likewise.
+	(ModuleInfo::sharedctorgates): Likewise.
+	(ModuleInfo::unitTests): Likewise.
+	(build_simple_function): Remove declaration.
+	(build_call_function): Likewise.
+	(build_ctor_function): Likewise.
+	(build_dtor_function): Likewise.
+	(build_unittest_function): Likewise.
+	* d-builtins.c (bi_fn_list): Rename to gcc_builtins_functions.
+	(bi_lib_list): Rename to gcc_builtins_libfuncs.
+	(bi_type_list): Rename to gcc_builtins_types.
+	(builtin_converted_types): Remove.
+	(builtin_converted_decls): Change from Array to vec<> type.
+	(gcc_type_to_d_type): Update.
+	(d_bi_builtin_func): Remove and move to d_builtin_function.
+	(d_bi_builtin_type): Remove and move to d_register_builtin_type.
+	(d_gcc_magic_builtins_module): Update.
+	* d-ctype.cc (TypeClass::toCtype): Remove unused var.
+	* d-decls.cc (FuncDeclaration::toThunkSymbol): Update for change to
+	vec<> type.
+	* d-elem.cc (CatExp::toElem): Change stashed vars from Array to vec<>.
+	(Expression::toElemDtor): Update for change to vec<> type.
+	* d-irstate.cc (IRState::startFunction): Likewise.
+	(IRState::endFunction): Likewise.
+	(IRState::addExp): Likewise.
+	(IRState::pushStatementList): Likewise.
+	(IRState::popStatementList): Likewise.
+	(IRState::getLabelBlock): Likewise.
+	(IRState::getLoopForLabel): Likewise.
+	(IRState::beginFlow): Likewise.
+	(IRState::endFlow): Likewise.
+	(IRState::startScope): Likewise.
+	(IRState::pushLabel): Likewise.
+	(IRState::checkGoto): Likewise.
+	(IRState::checkPreviousGoto): Change from Array to Blocks type.
+	* d-lang.cc (global_declarations): Change from Array to vec<> type.
+	(d_add_global_declaration): Update for change to vec<> type.
+	(d_write_global_declarations): Likewise.
+	(d_keep_list): Make static to source file.
+	* d-objfile.cc (static_ctor_list): Change from Array to vec<> type.
+	(static_dtor_list): Likewise.
+	(Module::genobjfile): Update for change to vec<> type.
+	(d_finish_module): Likewise.
+	(d_finish_function): Likewise.
+	(deferred_thunks): Change from ArrayBase<> to vec<> type.
+	(write_deferred_thunks): Update for change to vec<> type.
+	(use_thunk): Likewise.
+	(build_simple_function): Make static to source file.
+	(build_call_function): Likewise.
+	(build_ctor_function): Likewise.
+	(build_dtor_function): Likewise.
+	(build_unittest_function): Likewise.
+
+2014-01-02  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-objfile.cc (setup_symbol_storage): Use output_module_p on template
+	instantiating module to determine if symbol is externally compiled.
+	(d_finish_function): Set function local if function body was compiled.
+	* d-decls.cc (Dsymbol::toSymbolX): Use unsigned integer format for the
+	prefix string length.
+
+
+Copyright (C) 2014 Free Software Foundation, Inc.
+
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
diff --git a/gcc/d/ChangeLog-2015 b/gcc/d/ChangeLog-2015
new file mode 100644
index 00000000000..918068bfecb
--- /dev/null
+++ b/gcc/d/ChangeLog-2015
@@ -0,0 +1,771 @@
+2015-10-07  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-decls.cc (StructLiteralExp::toSymbol): Use letter prefix for
+	anonymous name.  Don't set TREE_READONLY.
+	(ClassReferenceExp::toSymbol): Likewise.
+
+2015-10-06  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (build_struct_literal): New function.
+	(layout_aggregate_members): Handle variables that are really tuples.
+	* d-elem.cc (StructLiteralExp::toElem): Handle slicing void arrays.
+	Use build_struct_literal to handle anonymous records.
+	* d-lang.h (d_unknown_type_node): Rename to unknown_type_node, update
+	in all files.
+
+2015-10-03  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (build_two_field_type): Use DECL_FIELD_CONTEXT to access
+	field context decl.
+	(build_frame_type): Likewise.
+	(lookup_anon_field): New function.
+	(component_ref): Use it.
+	(fixup_anonymous_offset): New function.
+	(layout_aggregate_members): New function.
+	(layout_aggregate_type): Move generation of fields into
+	layout_aggregate_members.
+	(insert_aggregate_field): Update signature, update all callers.
+	(finish_aggregate_type): Likewise.
+	* d-todt.cc (dt_container2): Use DECL_FIELD_CONTEXT to access field
+	context decl.
+	* types.cc (TypeVisitor::visit (TypeStruct)): Likewise.
+	(TypeVisitor::visit (TypeClass)): Likewise.
+	* d-tree.h (ANON_AGGR_TYPE_P): New type macro.
+
+2015-08-25  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-builtins.cc (maybe_set_builtin_1): Remove va_list handling.
+	(d_init_builtins): Don't represent static array va_list as reference.
+	* d-codegen.cc (convert_for_argument): Handle va_list as a static array.
+	(declaration_type): Likewise.
+	(type_passed_as): Likewise.
+	(decl_reference_p): Renamed to declaration_type_kind, update to return
+	how type is represented internally, updated all callers.
+	(arg_reference_p): Renamed to argument_type_kind, update to return how
+	type is represented internally, updated all callers.
+	* d-codegen.h (type_kind): Declare.
+
+2015-08-22  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* toir.cc (IRVisitor::visit (TryCatchStatement)): Always emit call to
+	LIBCALL_BEGIN_CATCH at the start of the catch.
+	* d-elem.cc (AssertExp::toElem): Stabilize reference to class object
+	before passing it to _d_invariant.
+
+2015-08-20  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* toir.cc (IRVisitor::visit): Set input location in all visitors that
+	either throw an ICE or sorry message.
+
+2015-08-19  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* Make-lang.in: Replace uses of $(target_alias) with
+	$(target_noncanonical).
+
+2015-08-17  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* types.cc (TypeVisitor::visit (TypeEnum)): Set ENUM_IS_SCOPED on all
+	enumeral types.
+	* d-lang.cc (d_init_options_struct): Remove setting
+	flag_evaluation_order.
+
+2015-08-10  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-elem.cc (HaltExp::toElem): Use __builtin_trap to halt execution,
+	rather than the library abort() call.
+
+2015-08-07  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (build_closure): Update signature, update all callers.
+	(build_vthis): Likewise.
+	(get_frame_for_symbol): Likewise.
+	(build_local_var): Likewise.
+	(get_decl_tree): Likewise.
+	(start_function): Likewise.
+	* d-irstate.h (IRState): Move func, mod, sthis, deferred,
+	statementList, and varsInScope fields to...
+	* d-tree.h (language_function): Here, updated all uses.
+	* d-irstate.h: Remove file.
+	(IRState): Remove all uses everywhere.
+
+2015-08-07  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* Make-lang.in (D_GLUE_OBJS): Remove d-irstate.o.
+	* d-tree.h (d_label_use_entry): New structure.
+	(d_label_entry): New structure.
+	(binding_level): Add level_kind field.
+	(language_function): Add hash table field for labels.
+	(D_LABEL_VARIABLE_CASE): New macro.
+	* d-codegen.cc (pop_binding_label): New function.
+	(pop_label): New function.
+	(push_binding_level): Update signature.
+	(pop_binding_level): Update signature.  Handle declared or used labels.
+	(build_array_set): Update for push/pop binding changes.
+	(check_goto): New function.
+	(check_previous_goto): New function.
+	(d_lookup_label): Remove function.
+	(lookup_label): New function.
+	(lookup_bc_label): New function.
+	(define_label): New function.
+	* d-objfile.cc (FuncDeclaration::toObjFile): Update for push/pop binding
+	changes.
+	* toir.cc (IRVisitor): Add break and continue label fields.
+	(IRVisitor::IRVisitor): Initialize here.
+	(IRVisitor::start_scope): Update signature.
+	(IRVisitor::end_scope): Return the finished scope, updated all callers.
+	(IRVisitor::push_break_label): New function.
+	(IRVisitor::pop_break_label): New function.
+	(IRVisitor::push_continue_label): New function.
+	(IRVisitor::pop_continue_label): New function.
+	(IRVisitor::start_condition): Remove function.
+	(IRVisitor::start_else): Remove function.
+	(IRVisitor::end_condition): Remove function.
+	(IRVisitor::start_catches): Remove function.
+	(IRVisitor::start_catch): Remove function.
+	(IRVisitor::end_catch): Remove function.
+	(IRVisitor::end_catches): Remove function.
+	(IRVisitor::start_finally): Remove function.
+	(IRVisitor::end_finally): Remove function.
+	(IRVisitor::start_case): Remove function.
+	(IRVisitor::end_case): Remove function.
+	* d-irstate.cc: Remove.
+
+2015-08-06  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* config-lang.in (gtfiles): Replace d-lang.h for d-tree.h
+	* d-lang.h: Move all GTY structures to d-tree.h, updated all source
+	header dependencies.
+	* d-tree.h: New file.
+
+2015-08-04  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* toir.cc (IRVisitor::start_condition): Don't cache condition.
+	(IRVisitor::start_else): Return the then body, updated all callers.
+	(IRVisitor::end_condition): Update signature.
+	(IRVisitor::start_catches): Return the try body, updated all callers.
+	(IRVisitor::start_catch): Don't cache catch type.
+	(IRVisitor::end_catch): Update signature.
+	(IRVisitor::end_catches): Update signature.
+	(IRVisitor::start_finally): Return the try body, updated all callers.
+	(IRVisitor::end_finally): Update signature.
+	(IRVisitor::start_case): Don't cache the condition.
+	(IRVisitor::end_case): Update signature.
+	* d-codegen.cc (convert_for_assignment): Use size_type_node for index.
+	* d-irstate.cc (IRState::beginFlow): Remove call to push_stmt_list.
+
+2015-08-04  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (push_stmt_list): New function.
+	(pop_stmt_list): New function.
+	(add_stmt): New function.
+	(start_function): New function.
+	(end_function): New function.
+	(expand_decl): Update to use new interface.
+	(build_closure): Likewise.
+	(push_binding_level): Moved from d-lang.cc.
+	(pop_binding_level): Likewise.
+	* d-lang.cc (d_init): Inline call to init_global_binding_level.
+	(alloc_binding_level): Remove function.
+	(push_binding_level): Remove function.
+	(pop_binding_level): Remove function.
+	(init_global_binding_level): Remove function.
+	(set_decl_binding_chain): Remove function.
+	* d-elem.cc (DeclarationExp::toElem): Likewise.
+	* d-objfile.cc (VarDeclaration::toObjFile): Likewise.
+	(FuncDeclaration::toObjFile): Likewise.
+	* toir.cc (IRVisitor::start_scope): Moved from d-irstate.cc, updated
+	all callers in IRVisitor.
+	(IRVisitor::end_scope): Likewise.
+	(IRVisitor::is_return_label): Likewise.
+	(IRVisitor::do_label): Likewise.
+	(IRVisitor::do_jump): Likewise.
+	(IRVisitor::start_condition): Likewise.
+	(IRVisitor::start_else): Likewise.
+	(IRVisitor::end_condition): Likewise.
+	(IRVisitor::start_catches): Likewise.
+	(IRVisitor::start_catch): Likewise.
+	(IRVisitor::end_catch): Likewise.
+	(IRVisitor::end_catches): Likewise.
+	(IRVisitor::start_finally): Likewise.
+	(IRVisitor::end_finally): Likewise.
+	(IRVisitor::end_loop): Likewise.
+	(IRVisitor::start_case): Likewise.
+	(IRVisitor::end_case): Likewise.
+	(build_ir): Update signature.
+
+2015-08-01  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* Make-lang.in (DMD_COMPILE): Declare as COMPILE with WARN_CXXFLAGS
+	replaced with DMD_WARN_CXXFLAGS.
+	(DMDGEN_COMPILE): Declare as DMD_COMPILE but with COMPILER replaced
+	with COMPILER_FOR_BUILD.
+	(d/idgen): Use LINKER_FOR_BUILD.
+	(d/impcvgen): Likewise.
+	(d/%.o): Use DMD_COMPILE and POSTCOMPILE.
+	(d/%.dmdgen.o): Use DMDGEN_COMPILE and POSTCOMPILE.
+
+2015-07-27  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (current_irstate): Remove.
+	(d_build_call): Check cfun before dereferencing.
+	* d-codegen.h (current_irstate): Redefine as macro.
+	* d-irstate.cc (IRState::IRState): Remove.
+	(IRState::startFunction): Initialize language-specific cfun field.
+	(IRState::endFunction): Free language-specific cfun field.
+	* d-lang.cc (d_parse_file): Don't initialize current_irstate.
+	* d-lang.h (language_function): Add irs field.
+	* d-objfile.cc (Dsymbol::toObjFile): Check cfun.
+	(FuncDeclaration::toObjFile): Adjust start and end calls.
+
+2015-07-26  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-irstate.cc (IRState::doArraySet): Remove function.
+	* d-codegen.cc (build_array_set): New function.
+	* d-elem.cc (AssignExp::toElem): Use build_array_set.
+	(StructLiteralExp::toElem): Likewise.
+
+	* d-codegen.cc (build_array_set): Don't set this_block, update call to
+	pop_binding_level.
+	* d-irstate.cc (IRState::endFunction): Update assert.
+	(IRState::startScope): Move IRState::startBindings here, clean-up.
+	(IRState::endScope): Move IRState::endBindings here, clean-up.
+	(IRState::startBindings): Remove function.
+	(IRState::endBindings): Likewise.
+	(IRState::currentScope): Likewise.
+	(IRState::scopes_): Remove.
+	* d-lang.cc (pop_binding_level): Update signature, clean-up.
+	(d_pushdecl): Don't set names_end.
+	(binding_level::names_end): Remove.
+	(binding_level::this_block): Remove.
+	(FuncDeclaration::toObjFile): Clean-up.
+
+2015-07-24  Sebastien Alaiwan  <sebastien.alaiwan@gmail.com>
+
+	* d-lang.cc (deps_write): Use StringTable instead of hash_set of string
+	pointers.
+
+2015-07-23  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-attribs.h: Adjust includes.
+	* d-builtins.cc: Likewise.
+	* d-codegen.cc: Likewise.
+	* d-convert.cc: Likewise.
+	* d-decls.cc: Likewise.
+	* d-elem.cc: Likewise.
+	* d-glue.cc: Likewise.
+	* d-incpath.cc: Likewise.
+	* d-irstate.cc: Likewise.
+	* d-lang.cc: Likewise.
+	* d-longdouble.cc: Likewise.
+	* d-objfile.cc: Likewise.
+	* d-port.cc: Likewise.
+	* d-target.cc: Likewise.
+	* d-todt.cc: Likewise.
+	* toir.cc: Likewise.
+	* types.cc: Likewise.
+
+2015-07-22  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (convert_expr): Warn about casts between imaginary
+	and non-imaginary types.
+	* d-convert (d_convert_basic): Rename to convert, handle conversions
+	between complex and imaginary types.
+	(convert): Remove.
+	(d_build_truthvalue_op): Update to call convert.
+	(d_truthvalue_conversion): Likewise.
+
+	* d-builtins.cc (d_init_builtins): Build imaginary types as distinct
+	floating point type nodes.
+	* d-codegen.cc (build_float_modulus): Update to handle imaginary types.
+	(d_array_type): Use the front-end equivalent of sizetype to represent
+	the index type of arrays.
+	(build_array_index): Likewise.
+	(build_offset_op): Likewise.
+	(expand_intrinsic): Only get the inner callee if it's an address.
+
+	* d-codegen.h (component_ref, modify_expr, vmodify_expr, build_vinit)
+	(build_nop, build_vconvert, build_boolop, compound_expr)
+	(vcompound_expr, real_part, imaginary_part): Move to d-codegen.cc,
+	use fold build functions for codegen.
+	* d-codeden.cc (build_address): Use build_fold_addr_expr_with_type,
+	remove special handling of taking an address of an indirect ref.
+	(return_expr): New function.
+	(complex_expr): New function.
+	(indirect_ref): Use fold build functions for codegen.
+	(build_deref): Likewise.
+	(build_array_index): Likewise.
+	(build_offset_op): Likewise.
+	(void_okay_p): Likewise.
+	(build_binary_op): Likewise.
+	(build_float_modulus): Likewise.
+	* d-objfile.cc (FuncDeclaration::toObjFile): Likewise.
+	* d-elem.cc (MinExp::toElem): Likewise.
+	(AddExp::toElem): Likewise.
+	(NotExp::toElem): Likewise.
+	(ComExp::toElem): Likwise.
+	(NegExp::toElem): Likewise.
+	* d-irstate.cc (IRState::doLabel): Likewise.
+	(IRState::doReturn): Likewise.
+	(IRState::doJump): Likewise.
+
+	* d-attribs.c: Adjust includes for flags.h changes.
+	* d-builtins.cc: Likewise.
+	* d-codegen.cc: Likewise.
+	* d-convert.cc: Likewise.
+	* d-elem.cc: Likewise.
+	* d-decls.cc: Likewise.
+	* d-glue.cc: Likewise.
+	* d-incpath.cc: Likewise.
+	* d-irstate.cc: Likewise.
+	* d-lang.cc: Likewise.
+	* d-longdouble.cc: Likewise.
+	* d-objfile.cc: Likewise.
+	* d-port.cc: Likewise.
+	* d-target.cc: Likewise.
+	* d-todt.cc: Likewise.
+	* toir.cc: Likewise.
+	* types.cc: Likewise.
+
+2015-07-20  Sebastien Alaiwan  <sebastien.alaiwan@gmail.com>
+
+	* d-lang.cc (is_system_module): Extract function.
+	(write_one_dep): Extract function.
+	(deps_write): Eliminate duplicated dependencies, include
+	indirect and private dependencies.
+
+2015-07-19  Sebastien Alaiwan  <sebastien.alaiwan@gmail.com>
+
+	* d-lang.cc (d_parse_file): Set ref flag on the module and make deps
+	file handle.
+
+2015-07-11  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (convert_for_assignment): Remove handling of zero
+	initialising a structure using memset.
+	(d_build_call): Removing handling of setting of return slot
+	optimisation on in call expression.
+	* d-elem.cc (AssignExp::toElem): Emit a memset to zero initialise
+	structures here.  Set return slot optimisation on construction of
+	static arrays and structs only.
+
+2015-07-07  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (expand_intrinsic_arith): Use build_deref to handle
+	ref parameters being used for the 'overflow' parameter.
+
+2015-07-03  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-elem.cc (StringExp::toElem): Zero-terminate all string literals
+	types, except for static arrays.
+	* d-objfile.cc (build_type_decl): Add TYPE_DECLs to global declarations,
+	don't call rest_of_decl_declaration.
+	(d_finish_compilation): Call rest_of_decl_declaration on TYPE_DECLs.
+	(Dsymbol::toObjFile): Don't try to handle tuples when emitting import
+	declarations to debug.
+	* d-builtins.cc (builtin_sym): Use StructDeclaration for decl field.
+	(build_dtype): Don't handle anonymous structs.  Create a stub parent
+	module for the declaration symbol.
+	(d_build_builtins_module): Always override the parent module of
+	converted struct declarations.
+	(maybe_set_builtin_1): Convert all static array parameters to ref
+	parameters, not just va_list.
+
+2015-07-01  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-attribs.c (d_handle_section_attribute): Use VAR_P throughout.
+	(d_handle_weak_attribute): Use VAR_OR_FUNCTION_DECL_P.
+	* d-codegen.cc (convert_for_assignment): Use VAR_P.
+	* d-lang.cc (pop_binding_level): Likewise.
+	(d_types_compatible_p): Likewise.
+	* d-objfile.cc (setup_symbol_storage): Likewise.
+	(mark_needed): Likewise.
+	(d_finish_compilation): Likewise.
+
+2015-06-30  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* intrinsics.def: Added ADDS, ADDSL, ADDU, ADDUL, SUBS, SUBSL, NEGS,
+	NEGSL, MULS, MULSL, MULU, and MULUL intrinsic definitions.
+	* d-codegen.cc (expand_intrinsic_arith): New function.
+	(expand_intrinsic): Add cases for core.checkedint functions adds, addu,
+	subs, subu, negs, muls, and mulu intrinsics.
+
+2015-06-27  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* Make-lang.in (D_DMD_H): Remove.
+	(D_TREE_H): Likewise.
+	(CFLAGS-d/d-spec.o): Declare extra CFLAGS for building driver.
+	(d-warn): Declare default warning flags for compiler.
+	(D_DMD_OBJS): Remove 'dmd' from the object file suffix.
+	(D_GLUE_OBJS): Remove 'cglue' and 'glue' from object file suffix.
+	(D_GENERATED_OBJS): Remove 'gen' from the object file suffix.
+	(D_BORROWED_C_OBJS): Remove.
+	(CFLAGS-d/id.o): Declare extra CFLAGS for building generated sources.
+	(CFLAGS-d/impcnvtab.o): Likewise.
+	* types.cc (TypeVisitor::visit (TypeClass)): Build a pointer type for
+	classes, not a reference type.
+	* types.cc (TypeVisitor::visit (TypeDelegate)): Don't build a
+	METHOD_TYPE for delegates, as that requires knowing the underlying
+	record type for the 'this' object parameter.
+	(TypeVisitor::visit (TypeEnum): Don't call rest_of_type_compilation.
+	(TypeVisitor::visit (TypeClass): Likewise.
+	(TypeVisitor::visit (TypeStruct): Likewise.
+	* d-decls.cc (TypeInfoDeclaration::toSymbol): Assert class is a pointer
+	type, not a reference type.
+	(FuncDeclaration::toSymbol): Don't convert nested functions into a
+	METHOD_TYPE to be strictly compatible with delegates.
+	* d-codegen.cc (convert_for_argument): Use correct accessors for array
+	.ptr and .length properties.
+	(expand_intrinsic_vaarg): Don't remove the va_list pointer reference,
+	as the backend now assumes this is what the front-end sets up.
+	(d_build_call): Remove assert as delegates and nested functions are no
+	longer represented as METHOD_TYPE.
+	(build_vthis_type): New function.
+	(d_decl_context): Don't set static/__gshared declaration context as
+	anything other than the enclosing module of the declaration.
+	* toir.cc (IRVisitor::visit (ExtAsmStatement)): Support named labels by
+	calling resolve_asm_operand_names.
+	* d-builtins.cc (d_backend_init): Remove.
+	(d_backend_term): Remove.
+	* d-lang.cc (d_write_global_declarations): Remove langhook.
+	(d_init): Move d_backend_init implementation here.
+	(d_parse_file): Move d_write_global_declarations implementation here.
+	(d_finish_compilation): Remove calls to finalize_compilation_unit,
+	check_global_declarations, and emit_debug_global_declarations.
+	(d-system.h): Remove file.  Move all includes into local sources.
+
+2015-06-22  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (d_build_call): Only apply CALL_EXPR_RETURN_SLOT_OPT to
+	calls returning an aggregate.
+	(expand_intrinsic): Use CALL_EXPR_FN and CALL_EXPR_ARG directly.
+	(layout_aggregate_type): Update signature.
+	(insert_aggregate_field): Likewise.
+	(finish_aggregate_type): Likewise.
+	* d-codegen.h (AggLayout): Remove helper class.
+	(AddrOfExpr): Remove helper class.
+	(CallExpr): Remove helper class.
+	* d-elem.cc (InExp::toElem): Use build_address directly.
+	(CatAssignExp::toElem): Likewise.
+	(IndexExp::toElem): Likewise.
+	(RemoveExp::toElem): Likewise.
+	* types.cc (TypeVisitor::visit (TypeFunction)): Only apply
+	TREE_ADDRESSABLE to function types returning an aggregate.
+	(TypeVisitor::visit (TypeStruct)): Update for layout_aggregate_type and
+	finish_aggregate_type changes.
+	(TypeVisitor::visit (TypeClass)): Likewise.
+
+2015-06-21  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-objfile.cc (setup_symbol_storage): Mark declarations as private or
+	protected for the benefit of debug code.
+	* d-elem.cc (ArrayLiteralExp::toElem): Only set a value at the given
+	index in the array constructor if it is non-zero.
+	(AssignExp::toElem): Use memset it assigning/initialising an array with
+	all zeroes.
+	(IndexExp::toElem): Simplify codegen to use a placeholder variable for
+	the dollar length.
+	(SliceExp::toElem): Likewise.
+	* d-codegen.cc (ArrayScope): Remove helper class.
+	* Make-lang.in (cc1d$(exeext)): Use link mutex.
+
+2015-05-03  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* Make-lang.in (D_GLUE_OBJS): Rename d-ctype.cc to types.cc.
+	(d-spec.o): Rename d-spec.cc to d-spec.c
+	* types.cc (build_ctype): New function.
+	(Type::toCtype): Convert toCtype methods to use Visitor interface.
+
+2015-04-29  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* Make-lang.in (D_GLUE_OBJS): Add d-attribs.o.  Remove d-gt.o.
+	* d-attribs.c: New file.
+	* d-builtins.cc: Move attribute handler functions to d-attribs.c
+	* d-lang.cc: Likewise.  Added include for gtype-d.h from d-gt.cc.
+	* d-gt.cc: Remove file.
+
+2015-04-27  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-builtins.cc, d-convert.cc, d-ctype.cc, d-decls.cc, d-elem.cc,
+	d-glue.cc, d-incpath.cc, d-irstate.cc, d-longdouble.cc, d-port.cc,
+	d-target.cc, d-typinf.cc, toir.cc: Re-order included headers.
+	* d-codegen.h, d-dmd-gcc.h, d-irstate.h, d-lang.h, d-objfile.cc,
+	d-system.h: Remove all includes from headers.
+	* d-codegen.cc: Re-order included headers.
+	(build_attributes): Use ctfeInterpret instead of optimize.
+	* d-lang.cc: Re-order included headers.
+	(d_init_options): Don't use tristate enum for flag_emit_templates.
+	(d_handle_option): Likewise.
+	* d-objfile.cc: Re-order included headers.
+	(output_declaration_p): Update check for flag_emit_templates.
+	(setup_symbol_storage): Likewise.
+	* d-todt.cc: Re-order included headers.
+	(ExpInitializer::toDt): Use ctfeInterpret instead of optimize.
+	(TypeInfoTupleDeclaration::toDt): Likewise.
+
+2015-04-20  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (build_exception_object): Remove.
+	* runtime.def (BEGIN_CATCH): Declare runtime function __gdc_begin_catch.
+	* toir.cc (IRVisitor::visit::TryCatchStatement): Use LIBCALL_BEGIN_CATCH
+	to get the correct exception object for handler.
+
+2015-04-18  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (d_build_call): Set CALL_EXPR_RETURN_SLOT_OPT on calls to
+	functions that return an aggregate or array that returns in memory.
+	(build_memref): New function.
+	(get_object_method): Use build_memref instead of building a
+	POINTER_PLUS_EXPR for vtable dereferences.
+	* d-objfile.cc (FuncDeclaration::toObjFile): Support NRVO on
+	ARRAY_TYPE's that may not return in registers.
+	* d-ctype.cc (TypeFunction::toCtype): Don't mark TREE_ADDRESSABLE when
+	returning non-POD types by reference.
+
+2015-04-15  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-decls.cc (EnumDeclaration::toDebug): Remove.
+	(ClassDeclaration::toDebug): Remove.
+	(StructDeclaration::toDebug): Remove.
+	* d-ctype.cc (TypeEnum::toCtype): Call rest_of_type_compilation here.
+	(TypeClass::toCtype): Likewise.
+	(TypeStruct::toCtype): Likewise.
+
+2015-04-12  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-objfile.cc (get_decl_tree): Check and generate correct code for when
+	a non-local 'this' is accessed through a closure pointer.
+	(FuncDeclaration::toObjFile): Remove check for _arguments.
+	* d-codegen.cc (build_local_var): Likewise.
+
+2015-04-11  Johannes Pfau  <johannespfau@gmail.com>
+
+	* d-objfile.cc (setup_symbol_storage): Mark functions without
+	body as DECL_EXTERNAL.
+
+2015-04-08  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (get_decl_tree): Get correct non-local 'this' decl by
+	constructing component reference through parent link of nested classes.
+	* d-builtins.cc (DEF_FUNCTION_TYPE_VAR_8): Remove.
+	(DEF_FUNCTION_TYPE_VAR_12): Likewise.
+	(DEF_FUNCTION_TYPE_VAR_7, DEF_FUNCTION_TYPE_VAR_11): New macros.
+
+2015-04-07  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-objfile.cc (output_declaration_p): Remove check for semanticRun.
+	(FuncDeclaration::toObjFile): Name bool parameter force_p, allow it to
+	override the initial output_declaration_p check.  Force run all
+	semantic passes for symbols that it routine is generating code for.
+	(d_finish_function): Don't mark TREE_STATIC on functions that are
+	really DECL_EXTERN.
+	(finish_thunk): Force thunks referencing external methods to be
+	expanded to gimple.
+	* d-decls.cc (FuncDeclaration::toThunkSymbol): Call toObjFile on all
+	thunk target functions.
+
+2015-04-05  Johannes Pfau  <johannespfau@gmail.com>
+
+	* d-lang.cc (d_handle_section_attribute): New function.
+	* d-builtins.cc (handle_alias_attribute): Move to d-lang.cc to
+	support attribute(alias) in user code.
+	* d-lang.cc (d_handle_alias_attribute): Ditto.
+	* d-lang.cc (d_handle_weak_attribute): New function.
+	* d-decls.cc (FuncDeclaration::toSymbol): Do not set
+	DECL_DECLARED_INLINE_P prematurely.
+
+2015-03-21  Johannes Pfau  <johannespfau@gmail.com>
+
+	* d-lang.cc (d_init): Add GNU_EMUTLS version.
+	* d-objfile.cc (build_emutls_function): New function.
+	* d-objfile.cc (VarDeclaration::toObjFile): Collect all TLS variables
+	in a module into tlsVars array.
+	* d-objfile.cc (genmoduleinfo): Add reference to __modtlsscan
+	function generated by build_emutls_function to moduleinfo.
+
+2015-02-02  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* config-lang.in: Remove lang_requires_boot_languages.
+	* d-incpath.cc (iprefix): Remove global variable.
+	(multilib_dir): Ditto.
+	(prefixed_path): Add iprefix parameter.
+	(add_import_paths): Add iprefix and imultilib parameter.
+	Use cpp_include_defaults to get list of import paths.
+	* d-lang.cc (iprefix_dir): New static variable to cache -iprefix switch.
+	(imultilib_dir): New static variable to cache -imultilib switch.
+	(d_init): Pass iprefix_dir and imultilib_dir to add_import_paths.
+	(d_handle_option): Use new static variables.
+
+2015-02-01  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-lang.cc: Remove d-confdef.h header.
+	* d-incpath.cc: Ditto.
+	* d-spec.cc: Ditto.
+
+2015-01-31  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-incpath.cc (add_phobos_versyms): Remove function.
+	* d-lang.cc (d_init): Remove call to add_phobos_versyms.
+
+2015-01-28  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-builtins.cc (DEF_FUNCTION_TYPE_VAR_8)
+	(DEF_FUNCTION_TYPE_VAR_12): New macros.
+
+2015-01-24  Johannes Pfau  <johannespfau@gmail.com>
+
+	* d-builtins.cc (d_build_builtins_module): Mark builtin functions
+	as @nogc.
+
+2015-01-18  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* Make-lang.in: Update for D frontend changes.
+	* d-asmstmt.cc: Remove file.
+	* d-builtins.cc (build_dtype): No longer set struct handle.
+	(d_gcc_paint_type): Move to Target::paintAsType.
+	* d-codegen.cc (convert_expr): No longer call getImpl on associative
+	array conversions.  Add case for converting void pointers to delegates.
+	(unhandled_arrayop_p): Remove.
+	(build_two_field_type): Use layout_type instead of building
+	TYPE_STUB_DECL and calling rest_of_decl_compilation.
+	(build_binop_assignment): New function.
+	(libcall_ids): Remove static variable.
+	(get_libcall): New function.
+	(maybe_set_intrinsic): Remove druntime library call handling.
+	(expand_intrinsic_vaarg): Dereference ref va_list parameters.
+	(build_closure): New function.
+	(WrappedExp::WrappedExp): Move to frontend sources.
+	(WrappedExp::toCBuffer): Ditto.
+	* d-codegen.h (LibCallFlag): New enum.
+	(LibCall): Use runtime.def macro to define members.
+	* d-ctype.cc (Type::toCParamtype): Remove function.
+	(TypeTypedef::toCParamtype): Ditto.
+	(TypeClass::toSymbol): Ditto.
+	(TypeFunction::retStyle): Move to retStyle.
+	(TypeSArray::toCParamtype): Ditto.
+	(Type::toSymbol): Ditto.
+	(Type::totym): Ditto.
+	(TypeFunction::totym): Ditto.
+	* d-decls.cc (Dsymbol::toSymbolX): Update for frontend changes.
+	(Dsymbol::toImport): Ditto.
+	(VarDeclaration::toSymbol): Ditto.
+	(FuncDeclaration::toSymbol): Ditto.
+	(InterfaceDeclaration::toSymbol): Use TREE_READONLY instead of
+	(EnumDeclaration::toDebug): Only call rest_of_type_compilation on
+	ENUMERAL_TYPE types.
+	TREE_CONSTANT to declare that the symbol cannot be modified.
+	(ClassDeclaration::toVtblSymbol): Ditto.
+	(AggregateDeclaration::toInitializer): Ditto.
+	(EnumDeclaration::toInitializer): Ditto.
+	(TypedefDeclaration::toInitializer): Remove function.
+	(TypedefDeclaration::toDebug): Ditto.
+	(Dsymbol::cvMember): Remove stub function.
+	(EnumDeclaration::cvMember): Ditto.
+	(FuncDeclaration::cvMember): Ditto.
+	(VarDeclaration::cvMember): Ditto.
+	(TypedefDeclaration::cvMember): Ditto.
+	* d-elem.cc (XorExp::toElem): Remove call to unhandled_arrayop_p.
+	(OrExp::toElem): Ditto.
+	(AndExp::toElem): Ditto.
+	(UshrExp::toElem): Ditto.
+	(ShrExp::toElem): Ditto.
+	(ShlExp::toElem): Ditto.
+	(ModExp::toElem): Ditto.
+	(DivExp::toElem): Ditto.
+	(MulExp::toElem): Ditto.
+	(MinExp::toElem): Ditto.
+	(AddExp::toElem): Ditto.
+	(XorAssignExp::toElem): Ditto.
+	(OrAssignExp::toElem): Ditto.
+	(AndAssignExp::toElem): Ditto.
+	(UshrAssignExp::toElem): Ditto.
+	(ShrAssignExp::toElem): Ditto.
+	(ShlAssignExp::toElem): Ditto.
+	(ModAssignExp::toElem): Ditto.
+	(DivAssignExp::toElem): Ditto.
+	(MulAssignExp::toElem): Ditto.
+	(PowAssignExp::toElem): Ditto.
+	(MinAssignExp::toElem): Ditto.
+	(AddAssignExp::toElem): Ditto.
+	(BinExp::toElemBin): Move to build_binop_assignment.
+	(AssignExp::toElem): Update for frontend changes.
+	(DelegatePtrExp::toElem): New function.
+	(DelegateFuncptrExp::toElem): New function.
+	(DelegateExp::toElem): Update for frontend changes.
+	(FuncExp::toElem): Ditto.
+	(NewExp::toElem): Ditto.
+	(StringExp::toElem): Don't set TREE_READONLY on string literals.
+	(AssocArrayLiteralExp::toElem): Remove codegen rewrite for new
+	associative array implementation.
+	* d-glue.cc (Global::isSpeculativeGagging): Remove function.
+	(Dsymbol::ungagSpeculative): Ditto.
+	(Ungag::~Ungag): Ditto.
+	(Loc::toChars): Update for new column diagnostic support.
+	(Loc::Loc): Ditto.
+	(Loc::equals): Ditto.
+	(error): Ditto.
+	(binary): Remove function.
+	(asmSemantic): New function.
+	(retStyle): New function.
+	(FuncDeclaration::isBuiltin): Rename to isBuiltin.
+	* d-intrinsics.def: Rename to intrinsics.def.
+	* d-irstate.cc (IRState::addExp): Remove old warning to catch statements
+	with no side effects.  Now handled in frontend.
+	* d-lang.cc (d_init_options): Update for frontend changes.
+	(d_initialize_diagnostics): Remove function.
+	(d_add_builtin_version): Update for frontend changes.
+	(d_init): Ditto.
+	(d_handle_option): Ditto.
+	(d_post_options): Ditto.
+	(d_parse_file): Ditto.
+	* d-objfile.cc (Nspace::toObjFile): New function.
+	(StructDeclaration::toObjFile): Update for frontend changes.
+	(TypedefDeclaration::toObjFile): Remove function.
+	(TemplateInstance::toObjFile): Update for frontend changes.
+	(TemplateMixin::toObjFile): Ditto.
+	(unnest_function): New function.
+	(output_declaration_p): Update for frontend changes.
+	(FuncDeclaration::toObjFile): Ditto.
+	(FuncDeclaration::buildClosure): Move to buildClosure.
+	(get_linemap): Update for frontend changes.
+	(build_simple_function): Ditto.
+	(build_call_function): Ditto.
+	* d-target.cc (Target::va_listType): New function.
+	(Target::paintAsType): Ditto.
+	* d-todt.cc (dt_container2): Do not set TREE_READONLY on initialisers.
+	(dt_container): Ditto.
+	(ClassReferenceExp::toDt2): Update for C++ class support.
+	(ClassReferenceExp::toInstanceDt): Ditto.
+	(TypeTypedef::toDt): Remove function.
+	(TypeInfoTypedefDeclaration::toDt): Ditto.
+	(TypeInfoAssociativeArrayDeclaration::toDt): Update typeinfo size.
+	(TypeInfoAssociativeArrayDeclaration::toDt): Remove reference to impl
+	field in TypeInfo struct.
+	(TypeInfoStructDeclaration::toDt): Update for frontend changes.
+	* d-typinf.cc (Type::getTypeInfo): Update for frontend changes.
+	(TypeTypedef::getTypeInfoDeclaration): Remove function.
+	(createTypeInfoArray): Remove function.
+	* runtime.def: New file.
+	* toir.cc (IRVisitor::visit::DtorExpStatement): Remove function.
+	(IRVisitor::visit::ExtAsmStatement): Update for frontend changes.
+
+2015-01-17  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-elem.cc (UshrAssignExp::toElem): Remove integer promotion on left
+	hand side of unsigned right shift expression.
+
+2015-01-13  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-system.h: Include hash-set.h, machmode.h, vec.h, double-int.h,
+	input.h, alias.h, symtab.h and inchash.h due to flattening of tree.h.
+	* d-gt.cc: Ditto.
+
+2015-01-02  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.h (build_boolop): Don't eagerly fold comparison expressions.
+
+
+Copyright (C) 2015 Free Software Foundation, Inc.
+
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
diff --git a/gcc/d/ChangeLog-2016 b/gcc/d/ChangeLog-2016
new file mode 100644
index 00000000000..dbd75733803
--- /dev/null
+++ b/gcc/d/ChangeLog-2016
@@ -0,0 +1,1262 @@
+2016-12-28  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* expr.cc (ExprVisitor::visit(VarExp)): Remove type forced conversion.
+
+2016-12-28  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-lang.cc (d_handle_option): Handle -ftransition=safe.
+	* lang.opt (ftransition=safe): Add compiler option.
+
+2016-12-28  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-lang.cc (d_init_options): Initialize hdrStripPlainFunctions.
+	(d_post_options): Add post option handling of flag.
+
+2016-12-27  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (layout_aggregate_type): Adjust layout of D interfaces.
+	Only add a __vptr field if no base interfaces, don't add __monitor.
+
+2016-12-27  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-lang.cc (d_parse_file): Run runDeferredSemantic2 after semantic2.
+
+2016-12-26  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* expr.cc (ExprVisitor::visit(ArrayLiteralExp)): Use getElement to
+	index elements array.
+	(ExprVisitor::visit(VectorExp)): Likewise.
+
+2016-12-25  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* Make-lang.in (D_DMD_OBJS): Add d/objc.o
+	* types.cc (TypeVisitor::visit(TypeFunction)): Handle ObjC linkage.
+
+2016-12-25  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-decls.cc (mangle_decl): New function.
+	(make_internal_name): Update.
+	(get_symbol_decl): Update.
+
+2016-12-24  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* expr.cc (ExprVisitor::needs_dtor): New function.
+	(ExprVisitor::lvalue_p): New function.
+	(ExprVisitor::visit(AssignExp)): Check both for postblit and dtors
+	when generating array assignments.
+
+2016-12-24  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (convert_expr): Allow upcasting C++ classes.
+	(build_class_instance): Generate initial values of vtable interfaces
+	before class fields.
+	(layout_aggregate_type): Layout vtable interfaces before class fields.
+	* d-decls.cc (get_symbol_decl): Build DECL_ARGUMENTS for functions
+	that have no body.
+
+2016-12-22  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-target.cc (Target::cppExceptions): New variable.
+	(Target::init): Initialize it.
+	(Target::prefixName): New function.
+
+2016-12-19  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-objfile.cc (ClassDeclaration::toObjFile): Use layout_classinfo to
+	generate TypeInfo for classes.
+	(InterfaceDeclaration::toObjFile): Likewise.
+	* d-todt.cc (build_vptr_monitor): Remove function.
+	* typeinfo.cc (TypeInfoVisitor::set_field): New function.
+	(TypeInfoVisitor::layout_interfaces): New function.
+	(TypeInfoVisitor::layout_interface_vtables): New function.
+	(TypeInfoVisitor::visit(TypeInfoClassDeclaration)): Implement.
+	(layout_classinfo): New function.
+
+2016-12-18  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* typeinfo.cc (TypeInfoVisitor): Use build_typeinfo instead of
+	get_typeinfo_decl.
+	* d-objfile.cc (ClassDeclaration::toObjFile): Use build_constructor to
+	build the vtable, instead of using dt_cons.
+
+2016-12-18  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-decls.cc (layout_moduleinfo_fields): Use finish_aggregate_type
+	instead of layout_type.
+	(layout_classinfo_interfaces): Likewise.
+
+2016-12-17  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-builtins.cc (build_dtype): Use static create method for allocating
+	frontend types.
+	* d-codegen.cc (declaration_type): Likewise.
+	(type_passed_as): Likewise.
+	(get_libcall): Likewise.
+	* d-lang.cc (d_parse_file): Likewise.
+	* d-objfile.cc (build_simple_function_decl): Likewise.
+	(build_emutls_function): Likewise.
+	* d-todt.cc (StructDeclaration::toDt): Likewise.
+	* typeinfo.cc (TypeInfoVisitor::visit(TypeInfoInterfaceDeclaration)):
+	Likewise.
+
+2016-12-17  Johannes Pfau  <johannespfau@gmail.com>
+
+	* d-decls.cc (copy_struct): Also copy and update TYPE_METHODS.
+	* d-spec.c (lang_specific_driver): Do not link in math, thread and
+	time libraries. Use a spec file instead to do this.
+	(lang_specific_pre_link): Load libgphobos.spec to set up the link
+	dependencies for libgphobos.
+
+2016-12-13  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-builtins.cc (build_dtype): Cache all allocated frontend types.
+	(builtin_sym): Update constructor.
+	(builtin_converted_decls): Rename to builtin_converted_syms.
+	(d_build_builtins_module): Check if decl set before assigning parent.
+
+2016-12-13  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-builtins.cc (build_dtype): Set type modifiers on frontend type.
+
+2016-12-12  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-builtins.cc (build_dtype): Don't set default parameter storage
+	class as const.
+
+2016-12-12  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-decls.cc (add_moduleinfo_field): New function.
+	(layout_moduleinfo_fields): New function.
+	(get_moduleinfo_decl): Use record type for moduleinfo decl.
+	* d-objfile.cc (build_moduleinfo_symbol): Delay calling
+	get_moduleinfo_decl until after ModuleInfo type is validated.
+	(d_finish_symbol): Remove check for unknown_type_node.
+
+2016-12-11  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-decls.cc (copy_struct): New function.
+	(layout_classinfo_interfaces): New function.
+	(get_classinfo_decl): Use record type for classinfo decl.
+	* d-codegen.cc (create_field_decl): New function.
+	Use it instead of build_decl when creating a new FIELD_DECL.
+
+2016-12-11  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-builtins.cc (build_dtype): Don't build generic function types.
+	(d_build_builtins_module): Remove check.
+
+2016-12-10  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (build_vindex_ref): Move saving of object to callers.
+	* expr.cc (ExprVisitor::visit(CallExp)): Save object reference before
+	passing to build_vindex_ref.
+	(ExprVisitor::visit(DelegateExp)): Likewise.
+
+2016-12-07  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-spec.c (lang_specific_driver): Remove error handling.
+	* d-lang.cc (d_parse_file): Don't error twice.
+
+2016-12-06  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-spec.c (lang_specific_driver): Remove 'added' variable.
+
+2016-12-04  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-decls.cc (get_symbol_decl): Use needsCodegen to determine whether
+	template instance is extern or not.
+
+2016-12-02  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-glue.cc (escapePath): Move to dfrontend.
+	(readFile): Likewise.
+	(writeFile): Likewise.
+	(ensurePathToNameExists): Likewise.
+
+2016-12-01  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-target.cc: Include memmodel.h.
+	* d-attrib.c (d_handle_section_attribute): No longer set
+	user_defined_section_attribute.
+
+2016-11-25  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* types.cc (TypeVisitor::visit(Type)): Update.
+
+2016-11-24  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (build_struct_literal): Stop after first field
+	assignment in union constructor.
+	(build_class_instance): Skip void initialized fields.
+	* expr.cc (ExprVisitor::visit(StructLiteralExp)): Likewise.
+
+2016-11-22  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-decls.cc (get_symbol_decl): Don't set alignment if
+	STRUCTALIGN_DEFAULT.
+
+2016-11-21  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-todt.cc (ClassDeclaration::toDt): Update.
+	(ClassDeclaration::toDt2): Remove function.
+	(TypeSArray::toDtElem): Remove function.
+	(dt_chainon): Remove function.
+	(dt_zeropad): Remove function.
+	(dt_container): Remove function.
+	(dt_container2): Rename to dt_container.  All callers updated.
+	* d-objfile.cc (VarDeclaration::toObjFile): Update.
+
+2016-11-20  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-lang.cc (copy_lang_decl): Rename to d_dup_lang_specific_decl.
+	(LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
+	* d-decls.cc (make_alias_for_thunk): Call dup_lang_specific_decl.
+	(make_thunk): Likewise.
+
+2016-11-19  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.h (FuncFrameInfo): Remove type.  All users updated to
+	interface with new frame macro accessors.
+	(build_frame_type): Mark as static.
+	(get_frameinfo): Update to return a tree type.
+	* d-lang.cc (LANG_HOOKS_TREE_SIZE): Redefine.
+	(LANG_HOOKS_PRINT_XNODE): Redefine.
+	(d_tree_size): New function.
+	(d_print_xnode): New function.
+	(d_tree_node_structure): New function.
+	* d-tree.def (FUNCFRAME_INFO): New tree_code.
+	* d-tree.h (tree_frame_info): New type.
+	(FRAMEINFO_CREATES_FRAME): New macro accessor.
+	(FRAMEINFO_STATIC_CHAIN): New macro accessor.
+	(FRAMEINFO_IS_CLOSURE): New macro accessor.
+	(FRAMEINFO_TYPE): New macro accessor.
+	(lang_decl): Replace frame_info field with a tree type.
+	(d_tree_node_structure_enum): New type.
+	(lang_tree_node): Update GTY tags.
+
+2016-11-19  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-decls.cc (setup_symbol_storage): Remove function.
+	(Dsymbol::toSymbol): Remove function and all overrides.  All callers
+	updated to call ...
+	(get_symbol_decl): ... New function.
+
+2016-11-06  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-lang.cc (output_modules): Remove variable.
+	(output_module): Remove variable.
+	(d_gcc_get_output_module): Remove function.  All callers updated to
+	use Module::rootModule.
+	* d-objfile.cc (FuncDeclaration::toObjFile): Mark all functions being
+	constructed here as TREE_STATIC.
+	(output_module_p): Remove function.  All callers updated to call
+	Module::isRoot.
+
+2016-11-05  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-decls.cc (get_template_storage_info): Remove function.
+	(setup_symbol_storage): Use Dsymbol::isInstantiated instead.
+
+2016-11-05  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (build_struct_literal): Handle anonymous fields.
+	(build_class_instance): New functions.
+	(find_aggregate_field): Update signature.  All callers updated.
+	* d-todt.cc (dt_chainon): Mark as static.
+	(dt_zeropad): Likewise.
+	(dt_container): Likewise.
+	(ClassReferenceExp::toInstanceDt): Remove function.
+	(ClassReferenceExp::toDt2): Remove function.
+
+2016-11-01  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-tree.h (lang_decl): Remove readonly field.
+	(DECL_LANG_READONLY): Remove macro.  All callers updated.
+
+2016-10-29  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-decls.cc (ClassReferenceExp::toSymbol): Use class record type for
+	static symbol.
+	* d-lang.cc (global_context): New static variable.
+	(global_declarations): New static variable.
+	(d_nametype): Pass built-in types to debug_hooks::type_decl.
+	(d_add_global_declaration): Remove function, update all callers.
+	(get_global_context): New function.
+	(d_pushdecl): Push decls to global, or bindings list here.
+	(StructDeclaration::toObjFile): Send type decl to d_pushdecl.
+	(ClassDeclaration::toObjFile): Likewise.
+	(InterfaceDeclaration::toObjFile): Likewise.
+	(EnumDeclaration::toObjFile): Likewise.
+	(FuncDeclaration::toObjFile): Send finished decl to d_pushdecl.
+	(d_finish_symbol): Likewise.
+	(emit_modref_hooks): Likewise.
+	(d_comdat_linkage): Don't set DECL_COMDAT on non-public decls.
+	(setup_symbol_storage): Don't set DECL_ABSTRACT_P on templates.
+	(d_finish_compilation): Remove check for type decls.
+	(build_type_decl): Don't add to global decl list, just call
+	rest_of_decl_compilation.
+	* expr.cc (ExprVisitor::visit(ArrayLiteralExp)): Send finished decl to
+	d_pushdecl.
+	* toir.cc (IRVisitor::visit(SwitchStatement)): Likewise.
+	(IRVisitor::end_scope): Mark bind expr as having side effects.
+	* typeinfo.cc (TypeInfoVisitor::visit(TypeInfoTupleDeclaration)): Send
+	finished decl to d_pushdecl.
+
+2016-10-29  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (layout_aggregate_type): Continue searching based on
+	aggregate members, not just fields.
+	* types.cc (TypeVisitor::visit(TypeEnum)): Use void for opaque enums.
+	(TypeVisitor::visit(TypeStruct)): Don't give opaque structs a size.
+
+2016-10-27  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* expr.cc (ExprVisitor::visit(AssignExp)): Don't set TREE_ADDRESSABLE.
+	* d-codegen.cc (build_assign): Handle setting up INIT_EXPR from a
+	value returning via NRVO here instead.
+
+2016-10-26  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (d_build_call): Only convert CALL_EXPRs into a
+	TARGET_EXPR if return type is TREE_ADDRESSABLE.
+	(build_assign): Use TARGET_EXPR accessors.
+	(compound_expr): Likewise.
+
+2016-10-15  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.h (d_types_same): Return early if types are identical.
+
+2016-10-09  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-decls.cc (FuncDeclaration::toThunkSymbol): Rename to make_thunk.
+	All callers updated.
+	(finish_thunk): Update signature.
+
+2016-10-09  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-objfile.h (Thunk): Remove type, move offset field to ...
+	* d-tree.h (lang_decl): ... here.  Replace Thunk field with a tree.
+	(THUNK_LANG_OFFSET): New macro accessor.
+	* d-lang.cc (copy_lang_decl): New function.
+	* d-decls.cc (FuncDeclaration::toThunkSymbol): Use new thunk macros.
+
+2016-10-09  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-decls.cc (finish_thunk): Add assert that current_function_decl is
+	never set when function is called.
+	(DeferredThunk): Remove type.
+	(deferred_thunks): Remove variable.
+	(write_deferred_thunks): Remove function.  All callers updated.
+	(use_thunk): Remove function.
+	(FuncDeclaration::toThunkSymbol): Call finish_thunk when done.
+
+2016-10-08  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-objfile.cc (deferred_thunks): Move to d-decls.cc.
+	(write_deferred_thunks): Likewise.
+	(use_thunk): Likewise.  Mark as static.
+	(thunk_labelno): Likewise.
+	(make_alias_for_thunk): Likewise.
+	(finish_thunk): Likewise.
+
+2016-10-08  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-decls.cc (setup_symbol_storage): Remove unused parameters.
+
+2016-10-07  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-decls.cc (ClassReferenceExp::toSymbol): Rename to
+	build_new_class_expr.  All callers updated.
+	(StructLiteralExp::toSymbol): Remove function.  Inline into caller ...
+	* expr.cc (ExprVisitor::visit(AddrExpr)): ... here.
+
+2016-10-07  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-decls.cc (TypeInfoDeclaration::toSymbol): Rename to
+	get_typeinfo_decl.  All callers updated.
+	(TypeInfoDeclVisitor): New visitor helper for get_typeinfo_decl.
+	* d-codegen.cc (get_decl_tree): Add check for building typeinfo decls.
+
+2016-10-05  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-decls.cc (AggregateDeclaration::toInitializer): Rename to
+	aggregate_initializer.  All callers updated.
+	(EnumDeclaration::toInitializer): Rename to enum_initializer.
+	(Module::toSymbol): Rename to get_moduleinfo_decl.
+	(ClassDeclaration::toSymbol): Rename to get_classinfo_decl.
+	(InterfaceDeclaration::toSymbol): Merge into get_classinfo_decl.
+
+2016-10-03  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-decls.cc (FuncDeclaration::toSymbol): Remove saving of current
+	module decl before calling semantic.
+	(StructLiteralExp::toSymbol): Don't handle sinit.
+	(ClassReferenceExp::toSymbol): Likewise.
+	(AggregateDeclaration::toInitializer): Likewise.
+	(EnumDeclaration::toInitializer): Likewise.
+	* d-glue.cc (toInitializer): Remove function.
+	* d-objfile.cc (FuncDeclaration::toObjFile): Remove saving of current
+	module decl before calling semantic.
+	* expr.cc (ExprVisitor::visit(CallExpr)): Replace accesses of sinit
+	field with useStaticInit.
+	(ExprVisitor::visit(StructLiteralExp)): Likewise.
+
+2016-10-03  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-decls.cc (ClassDeclaration::toVtblSymbol): Rename to
+	get_vtable_decl.  All callers updated.
+
+2016-10-03  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-objfile.cc (setup_symbol_storage): Move function to ...
+	* d-decls.cc (setup_symbol_storage): ... here.  Mark as static.
+	(get_template_storage_info): Likewise.
+
+2016-10-03  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (call_by_alias_p): Check whether caller and callee are
+	nested in the same parent function.
+	* expr.cc (ExprVisitor::visit(CallExp)): Set TREE_PUBLIC directly
+	instead of calling setup_symbol_storage.
+
+2016-10-03  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-objfile.cc (VarDeclaration::toObjFile): Always generate
+	DECL_INITIAL for all kinds of var decls.
+	* d-codegen.cc (build_address): Use the DECL_INITIAL directly if
+	taking the address of a CONST_DECL.
+
+2016-10-02  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-tree.h (DECL_LANG_TREE): Remove macro.  All callers updated.
+
+2016-10-02  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-objfile.h (Symbol): Remove struct.  Update all functions to return
+	a tree instead.  Remove all new allocations of Symbol.
+	* d-tree.h (DECL_LANG_READONLY): Update accessor.
+	(DECL_LANG_INITIAL): Likewise.
+	(DECL_LANG_TREE): Likewise.
+	(SET_DECL_LANG_FRAME_FIELD): Likewise.
+	(DECL_LANG_FRAME_FIELD): Likewise.
+	(SET_DECL_LANG_NRVO): Likewise.
+	(DECL_LANG_NRVO): Likewise.
+	(DECL_LANG_THUNKS): Likewise.
+	(DECL_LANG_FRAMEINFO): Likewise.
+
+2016-10-01  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-objfile.h (Symbol): Remove symbol identifier field.
+	* d-tree.h (DECL_LANG_IDENTIFIER): Remove macro.  Update callers to
+	instead use DECL_ASSEMBLER_NAME.
+	(DECL_LANG_PRETTY_NAME): Remove macro.
+
+2016-09-26  Johannes Pfau  <johannespfau@gmail.com>
+
+	* d-objfile.cc (d_finish_function): Handle template mixins (issue 231).
+
+2016-09-25  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-decls.cc (Dsymbol::toSymbolX): Remove function, update all callers
+	to use ...
+	(make_internal_name): ... New function.
+	* d-objfile.h (Symbol): Replace char* fields with tree.
+	* d-tree.h (lang_identifier): Add pretty_ident field.
+	(IDENTIFIER_PRETTY_NAME): New macro accessor.
+	(DECL_LANG_PRETTY_NAME): Update to use IDENTIFIER_PRETTY_NAME.
+
+2016-09-19  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-objfile.h (Symbol): Move declaration-specific fields to ...
+	* d-tree.h (lang_decl): ... here.
+	(DECL_LANG_READONLY): Update to reference lang_decl field.
+	(DECL_LANG_INITIAL): Likewise.
+	(DECL_LANG_FRAME_FIELD): Likewise.
+	(DECL_LANG_NRVO): Likewise.
+	(DECL_LANG_THUNKS): Likewise.
+	(DECL_LANG_FRAMEINFO): Likewise.
+	(SET_DECL_LANG_FRAME_FIELD): New setter macro, update all callers.
+	(SET_DECL_LANG_NRVO): Likewise.
+
+2016-09-19  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-builtins.cc (d_build_builtins_module): Set DECL_LANG_SPECIFIC
+	before using any DECL_LANG accessor macros.
+	(maybe_set_builtin_1): Likewise.
+	* d-codegen.cc (maybe_set_intrinsic): Likewise.
+	(layout_aggregate_members): Likewise.
+	d-decls.cc (VarDeclaration::toSymbol): Likewise.
+	(FuncDeclaration::toThunkSymbol): Likewise.
+	(ClassDeclaration::toSymbol): Likewise.
+	(InterfaceDeclaration::toSymbol): Likewise.
+	(Module::toSymbol): Likewise.
+	(StructLiteralExp::toSymbol): Likewise.
+	(ClassReferenceExp::toSymbol): Likewise.
+	(ClassDeclaration::toVtblSymbol): Likewise.
+	(AggregateDeclaration::toInitializer): Likewise.
+	(EnumDeclaration::toInitializer): Likewise.
+
+2016-09-19  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-tree.h (DECL_LANG_IDENTIFIER): New macro accessor, use instead of
+	direct field accesses.
+	(DECL_LANG_PRETTY_NAME): Likewise.
+	(DECL_LANG_READONLY): Likewise.
+	(DECL_LANG_INITIAL): Likewise.
+	(DECL_LANG_TREE): Likewise.
+	(DECL_LANG_FRAME_FIELD): Likewise.
+	(DECL_LANG_NRVO): Likewise.
+	(DECL_LANG_THUNKS): Likewise.
+	(DECL_LANG_FRAMEINFO): Likewise.
+
+2016-09-18  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* imports.cc (ImportVisitor::visit(ScopeDsymbol)): New visit method.
+
+2016-09-17  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-todt.cc (ArrayInitializer::toDt): Update to use build_expr.
+	* d-codegen.cc (d_array_value): Don't override default const and
+	static bits for array constructors.
+
+2016-09-16  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (lower_struct_comparison): Don't compare vectors in the
+	same way as integers.
+
+2016-09-11  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-todt.cc (Type::toDt): Remove function, inline into callers.
+	(TypeVector::toDt): Likewise.
+	(TypeSArray::toDt): Likewise.
+	(TypeStruct::toDt): Likewise.
+
+2016-09-11  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-decls.cc (FuncDeclaration::toSymbol): Save current module decl
+	before calling function semantic.
+	* d-objfile.cc (FuncDeclaration::toObjFile): Likewise.
+
+2016-09-11  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* types.cc: Document and reformat file.
+
+2016-09-10  Johannes Pfau  <johannespfau@gmail.com>
+
+	* d-objfile.cc (setup_symbol_storage): Setup TREE_PUBLIC before
+	calling decl_default_tls_model.
+	* d-typeinfo.cc (TypeInfoVisitor::find_field): Move method...
+	* d-codegen.cc (find_aggregate_field): here.
+	* d-objfile.cc (build_simple_function): Extract some code into new
+	function.
+	(build_simple_function_decl): Extracted from build_simple_function.
+	* d-objfile.cc (build_moduleinfo): Split into emit_moduleinfo_hooks
+	and emit_modref_hooks.
+	(build_dso_registry_var): New function.
+	(emit_dso_registry_cdtor): Likewise.
+	(emit_dso_registry_helpers): Likewise.
+	(emit_dso_registry_hooks): Likewise.
+	(emit_moduleinfo_hooks): Only emit hooks if required druntime functions
+	are available.
+	* d-objfile.cc (Module::genmoduleinfo): Rename to
+	build_moduleinfo_symbol.
+	(emit_moduleinfo_hooks): rename to Module::genmoduleinfo.
+	(Module::genmoduleinfo): only call build_moduleinfo_symbol when
+	emitting module info registry code.
+	* d-spec.c (lang_specific_driver): Add -shared-libphobos option,
+	default to static libphobos.
+	* d-lang.opt: Likewise.
+	* d-spec.c: Rename libgphobos2 to libgphobos.
+
+2016-07-11  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (get_frameinfo): Use hasNestedFrameRefs to determine
+	whether a frame should be created.
+
+2016-07-02  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-objfile.cc (FuncDeclaration::toObjFile): Always convert the
+	DECL_RESULT of NRVO-capable functions into reference decls.
+
+2016-06-21  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-attribs.c (handle_nonnull_attribute): Accept the nonnull
+	attribute in type-generic builtins.
+	* d-codegen.cc (d_build_call): Check AGGREGATE_TYPE_P before testing
+	for aggregate_value_p.
+
+2016-06-20  Johannes Pfau  <johannespfau@gmail.com>
+
+	* d-lang.cc (d_handle_option): Add new -ftransition=dip25 and
+	-fmax-error-messages switches.
+	* lang.opt: Likewise.
+
+2016-06-19  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (get_decl_tree): Remove assert for RESULT_DECL.
+	(convert_for_argument): Handle lazy arguments early.
+	(argument_reference_p): Handle types marked TREE_ADDRESSABLE.
+	(lvalue_p): Add case for TARGET_EXPR.
+	(d_mark_addressable): Likewise.
+	(build_assign): Likewise.
+	(compound_expr): Likewise.
+	(build_target_expr): New function.
+	(d_build_call): Always set CALL_EXPR_RETURN_SLOT_OPT for all calls
+	that return an aggregate in memory.
+	* d-decls.cc (VarDeclaration::toSymbol): Handle reference parameters.
+	* d-lang.cc (d_gimplify_expr): Handle taking address of constructor.
+	* d-objfile.cc (FuncDeclaration::toObjFile): Handle reference return.
+	* expr.cc (ExprVisitor::visit(AssignExp)): Mark LHS as addressable if
+	RHS assignment is a returned aggregate.
+	* types.cc (TypeVisitor::visit(TypeStruct)): Mark the RECORD_TYPE of
+	non-trivial structs as TREE_ADDRESSABLE.
+	(TypeVisitor::visit(TypeClass)): Mark all classes as TREE_ADDRESSABLE.
+	(TypeVisitor::visit(TypeFunction)): Don't set TREE_ADDRESSABLE.
+	(TypeVisitor::visit(TypeDelegate)): Likewise.
+
+2016-06-19  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (lvalue_p): Add more cases to look for.
+	(build_address): Mark expression as addressable after stabilizing.
+	(d_mark_addressable): Remove special cases.
+	(d_mark_used): Add cases for other kinds of DECLs.
+	(build_struct_comparison): Stabilize before saving.
+	(modify_expr): Remove overload.  Updated all callers.
+	(build_vinit): Remove function.  Updated all callers to use ...
+	(build_assign): ... New function.
+	(lvalue_p): Remove tests in default case.
+	* expr.cc (build_expr_dtor): Rewrite assignments to elide a temporary.
+
+2016-06-16  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (make_temp): Rename to d_save_expr.
+	(maybe_make_temp): Remove function.
+	Updated all callers to use d_save_expr().
+	(vcompound_expr): Remove function.
+	Updated all callers to use compound_expr().
+	(maybe_compound_expr): Likewise.
+	(maybe_vcompound_expr): Likewise.
+	(vmodify_expr): Remove function.
+	Updated all callers to use modify_expr().
+	(lvalue_p): New function.
+
+2016-06-15  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (add_stmt): Don't add statements without side effects.
+	Push each COMPOUND_EXPR as a separate statement.
+	(build_local_temp): Use input_location.
+	(create_temporary_var): Likewise.
+	(d_has_side_effects): Remove function.
+	Updated all callers to use TREE_SIDE_EFFECTS.
+	(stabilize_expr): New function.
+	Updated all routines that check for COMPOUND_EXPR to use it.
+	* expr.cc (ExprVisitor::visit(EqualExp)): Use maybe_make_temp to save
+	expressions.  Use build_boolop for constructed conditions.
+	(ExprVisitor::visit(CatAssignExp)): Stabilize RHS before assignment.
+	(ExprVisitor::visit(NewExp)): Don't always create SAVE_EXPR.
+	(ExprVisitor::visit(AssocArrayLiteralExp)): Likewise.
+	(ExprVisitor::visit(ArrayLiteralExp)): Evaluate elements before
+	appending to constructor fields.
+	(ExprVisitor::visit(StructLiteralExp)): Likewise.
+
+2016-06-12  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-convert.cc (d_build_truthvalue_op): Fold truthvalue operation.
+	(d_truthvalue_conversion): Use zero constant of expression type.
+
+2016-06-09  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (build_address): Handle ERROR_MARK and COMPOUND_EXPR.
+	(build_nop): Likewise.
+	(indirect_ref): Likewise.
+	(build_deref): Likewise.
+	(d_build_call): Only create temporaries if more than one argument has
+	side effects.
+	* expr.cc (get_compound_value): Remove function.
+	(build_expr_dtor): Wrap cleanups in a TRY_FINALLY_EXPR only if the
+	expression has side effects.
+
+2016-06-08  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* Make-lang.in (D_GLUE_OBJS): Remove d-typinf.o, add typeinfo.o.
+	* d-codegen.cc (build_typeinfo): Move to ...
+	* typeinfo.cc: ... here.  New file.
+	* d-objfile.cc (TypeInfoDeclaration::toObjFile): Use layout_typeinfo.
+	* d-todt.cc (verify_structsize): Remove function.
+	(TypeInfoDeclaration::toDt): Remove function and overrides.
+	* d-typinf.cc: Remove file.  Contents moved to typeinfo.cc.
+	* expr.cc (ExprVisitor::visit(DeleteExp)): Use build_typeinfo.
+	(ExprVisitor::visit(NewExp)): Likewise.
+
+2016-06-08  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* dfrontend: Update to D front-end version 2.068.
+	* d-codegen.cc (insert_type_modifiers): Don't build TYPE_QUAL_VOLATILE
+	types.  Set TYPE_SHARED instead.
+	(insert_aggregate_field): Propagate TYPE_SHARED to TREE_ADDRESSABLE.
+	(array_bounds_check): Use BOUNDSCHECK interface.
+	* d-lang.cc (d_init_options): Likewise.
+	(d_init): Likewise.
+	(d_handle_option): Likewise.
+	(d_post_options): Likewise.
+	* d-decls.cc (VarDeclaration::toSymbol): Propagate TYPE_SHARED_to
+	TREE_ADDRESSABLE.
+	* d-objfile.cc (ClassDeclaration::toObjFile): Make overload shadowing
+	an error.  Remove call to _d_hidden_func.
+	(TypeInfoDeclaration::toObjFile): Updated template emission rules.
+	(FuncDeclaration::toObjFile): Likewise.
+	* d-port.cc (Port::readwordLE): New function.
+	(Port::readwordBE): New function.
+	(Port::readlongLE): New function.
+	(Port::readlongBE): New function.
+	* d-todt.cc (dt_container2): Handle error_mark_node.
+	(dt_container): Likewise.
+	(TypeInfoStructDeclaration::toDt): Updated template emission rules.
+	* d-typinf.cc (genTypeInfo): Likewise.
+	(getTypeInfo): Remove function.
+	(getTypeInfoType): New function.
+	(isSpeculativeType): New function.
+	* d-tree.h (TYPE_SHARED): New macro.
+	* expr.cc (ExprVisitor::visit(CondExp)): Don't generate dtors in
+	condition expression.
+	(ExprVisitor::visit(AssignExp)): Update for frontend changes.
+	(ExprVisitor::visit(DeleteExp)): Likewise.
+	(ExprVisitor::visit(CallExp)): Likewise.
+	(ExprVisitor::visit(DelegateExp)): Likewise.
+	(ExprVisitor::visit(TypeidExp)): New function.
+	* lang.opt (bounds_check_set_manually): Remove variable.
+	(ftransition=complex): New option.
+	* runtime.def (HIDDEN_FUNC): Remove runtime function.
+
+2016-06-07  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (build_alignment_field): New function.
+	(build_struct_literal): Update signature, updated all callers.
+	Add anonymous fields to fill alignment holes in constructor.
+	(fill_alignment_field): Remove function.
+	(fill_alignment_holes): Remove function.
+	(finish_aggregate_type): Don't add anonymous fields.
+
+2016-06-05  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (d_build_call): Separate parameter to pass from it's
+	construction expression.
+	* expr.cc (build_dtor_list): New function.
+	(get_compound_value): New function.
+	(build_expr_dtor): Update to use helper functions.
+	(build_return_dtor): New function.
+	* toir.cc (IRVisitor::visit(ReturnStatement)): Use it.
+
+2016-06-04  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (build_deref): Handle ERROR_MARK nodes early.
+	(build_array_index): Likewise.
+
+2016-05-29  Johannes Pfau  <johannespfau@gmail.com>
+
+	* toir.cc (IRVisitor::visit(SwitchStatement)): Set correct type for the
+	string table for switch(string) statements.
+
+2016-05-24  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (convert_expr): Return empty constructor for null to
+	associative array conversions.
+	* expr.cc (ExprVisitor::visit(NullExp)): Likewise.
+
+2016-05-21  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (build_struct_literal): Don't set TREE_STATIC.
+	(build_boolop): Remove side effects from aggregate types only.
+	* expr.cc (ExprVisitor::visit(ArrayLiteralExp)): Don't check
+	initializer_constant_valid_p until after constructor is built.
+	(ExprVisitor::visit(StructLiteralExp)): Likewise.
+
+2016-05-16  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* expr.cc (ExprVisitor::visit(AssignExp)): Build the rhs constructor
+	before the lhs declaration.
+	(ExprVisitor::visit(DeclarationExp)): Compile the declaration and
+	initializer before pushing it to vars_in_scope.
+	(build_expr_dtor): Compound all dtors in reverse.
+
+2016-05-16  Johannes Pfau  <johannespfau@gmail.com>
+
+	* expr.cc (ExprVisitor::visit(IdentityExp*)): Remove side-effects
+	before comparing two floating point types.
+	* d-codegen.cc (build_struct_comparison): Remove side-effects
+	before comparing two values.
+	(build_boolop): Likewise.
+
+2016-05-15  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-todt.cc (Expression::toDt): Remove function and all overrides.
+	Update all callers to use build_expr.
+	* expr.cc (ExprVisitor::visit(SymOffExp)): Move check for non-constant
+	expressions in static initializer data to ...
+	(build_expr): ... here.
+	* toir.cc (IRVisitor::visit(SwitchStatement)): Build array of indexes
+	directly using build_artificial_decl.
+
+2016-05-15  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* expr.cc (ExprVisitor::visit(IdentityExp*)): Remove side-effects
+	before comparing two dynamic arrays.
+
+2016-05-14  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (get_decl_tree): First check if cfun is set.
+	* d-todt.cc (StructLiteralExp::toDt): Update call to build_expr.
+	(SymOffExp::toDt): Likewise.
+	(VarExp::toDt): Likewise.
+	(FuncExp::toDt): Likewise.
+	(VectorExp::toDt): Likewise.
+	* expr.cc (ExprVisitor::visit(SymbolExp)): Remove function.
+	(ExprVisitor::visit(SymOffExp)): New function.
+	(ExprVisitor::visit(VarExp)): New function.
+	(ExprVisitor::visit(StructLiteralExp)): Don't return static
+	initializer symbol if constant literal requested.
+
+2016-05-13  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (build_struct_literal): Maybe set TREE_CONSTANT or
+	TREE_STATIC on the returned constructor.
+	Allow building struct literals with initializer list out of order.
+	Add check and error when initializer overlaps previous field.
+	Don't explicitly set empty initializers for anonymous aggregates or
+	artificial fields.
+
+2016-05-12  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (build_array_from_val): New function.
+	* expr.cc (ExprVisitor::visit(StructLiteralExp)): Use it.
+
+2016-05-11  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (convert_expr): Use build_nop to cast between two
+	static arrays of the same size.
+	* d-todt.cc (IntegerExp::toDt): Update call to build_expr.
+	(RealExp::toDt): Likewise.
+	(ComplexExp::toDt): Likewise.
+	(StringExp::toDt): Likewise.
+	(NullExp::toDt): Use build_expr to generate initializer.
+	(ArrayLiteralExp::toDt): Likewise.
+	(CastExp::toDt): Likewise.
+	(ClassReferenceExp::toDt): Likewise.
+	(ClassReferenceExp::toDtI): Remove function.
+	* expr.cc (ExprVisitor::visit(CastExp)): Forward constp to the next
+	leaf expression in the tree.
+	(ExprVisitor::visit(AddrExp)): Likewise.
+	(ExprVisitor::visit(FuncExp)): Likewise.
+	(ExprVisitor::visit(ArrayLiteralExp)): Likewise.
+	(ExprVisitor::visit(StructLiteralExp)): Likewise.
+	(ExprVisitor::visit(VectorExp)): Likewise.
+	(ExprVisitor::visit(ClassReferenceExp)): Adjust reference for constp.
+
+2016-05-09  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-objfile.cc (get_unique_name): Remove function.
+	(build_artificial_decl): New function.
+	(d_finish_symbol): Use build_artificial_decl.
+	(build_moduleinfo): Likewise.
+	* d-decls.cc (StructLiteralExp::toSymbol): Likewise.
+	(ClassReferenceExp::toSymbol): Likewise.
+
+2016-05-07  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* expr.cc (ExprVisitor::visit(BinExp)): New function.
+	(ExprVisitor::visit(XorExp)): Remove function.
+	(ExprVisitor::visit(OrExp)): Likewise.
+	(ExprVisitor::visit(AndExp)): Likewise.
+	(ExprVisitor::visit(UshrExp)): Likewise.
+	(ExprVisitor::visit(ShrExp)): Likewise.
+	(ExprVisitor::visit(ShlExp)): Likewise.
+	(ExprVisitor::visit(ModExp)): Likewise.
+	(ExprVisitor::visit(DivExp)): Likewise.
+	(ExprVisitor::visit(MulExp)): Likewise.
+	(ExprVisitor::visit(MinExp)): Likewise.
+	(ExprVisitor::visit(AddExp)): Likewise.
+	(ExprVisitor::visit(BinAssignExp)): New function.
+	(ExprVisitor::visit(XorAssignExp)): Remove function.
+	(ExprVisitor::visit(OrAssignExp)): Likewise.
+	(ExprVisitor::visit(AndAssignExp)): Likewise.
+	(ExprVisitor::visit(ShrAssignExp)): Likewise.
+	(ExprVisitor::visit(ShlAssignExp)): Likewise.
+	(ExprVisitor::visit(ModAssignExp)): Likewise.
+	(ExprVisitor::visit(DivAssignExp)): Likewise.
+	(ExprVisitor::visit(MulAssignExp)): Likewise.
+	(ExprVisitor::visit(PowAssignExp)): Likewise.
+	(ExprVisitor::visit(MinAssignExp)): Likewise.
+	(ExprVisitor::visit(AddAssignExp)): Likewise.
+
+2016-05-06  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* expr.cc (ExprVisitor::ExprVisitor): Update signature.
+	(ExprVisitor::visit(AddrExp)): Handle constant expressions.
+	(ExprVisitor::visit(FuncExp)): Likewise.
+	(ExprVisitor::visit(ComplexExp)): Likewise.
+	(ExprVisitor::visit(StringExp)): Likewise.
+	(ExprVisitor::visit(ArrayLiteralExp)): Likewise.
+	(ExprVisitor::visit(StructLiteralExp)): Likewise.
+	(ExprVisitor::visit(NullExp)): Likewise.
+	(ExprVisitor::visit(ClassReferenceExp)): Likewise.
+	(build_expr): Update signature.
+
+2016-05-05  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* Make-lang.in (D_GLUE_OBJS): Add d/expr.o.
+	Remove d/d-elem.o
+	* d-codegen.cc (size_mult_expr): New function.
+	* d-tree.h (build_expr): New function, update all callers to toElem.
+	(build_expr_dtor): New function, update all callers to toElemDtor.
+	* expr.cc: New file.
+	* d-elem.cc: Remove file.
+
+2016-05-03  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-target.cc (Target::init): Target::realpad value should be size
+	minus precision.
+
+2016-04-29  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (finish_aggregate_type): Use SET_TYPE_ALIGN.
+	* types.cc (TypeVisitor::visit(TypeStruct)): Likewise.
+	* d-decls.cc (ClassDeclaration::toVtblSymbol): Use SET_DECL_ALIGN.
+	* d-objfile.cc (d_finish_symbol): Likewise.
+	* d-target.cc (Target::fieldalign): Likewise.
+
+2016-04-29  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-todt.cc (TypeSArray::toDtElem): Remove special handling for
+	arrays of vectors.
+
+2016-04-23  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-builtins.cc (build_dtype): Make function static.
+	* d-lang.cc (d_init_exceptions): Remove function.
+	* d-codegen.h: Move visitor declarations to ...
+	* d-tree.h: ... here.
+	(lang_decl): Remove `d_` prefix from fields.
+	(lang_type): Likewise.
+	* d-lang.cc (build_d_type_lang_specific): Rename to build_lang_type.
+	(build_d_decl_lang_specific): Rename to build_lang_decl.
+	* imports.cc: Update includes.
+
+2016-03-29  Johannes Pfau  <johannespfau@gmail.com>
+
+	* d-objfile.cc (d_comdat_linkage): Rewrite template duplicate
+	handling to generate only one backend tree for all duplicates.
+	(FuncDeclaration::toObjFile): Likewise.
+	(VarDeclaration::toObjFile): Likewise.
+	* d-decls.cc (FuncDeclaration::toSymbol): Likewise.
+	(VarDeclaration::toSymbol): Likewise.
+	* d-objfile.cc (get_template_storage_info): Extract function from
+	setup_symbol_storage.
+	(setup_symbol_storage): Likewise.
+	* d-tree.h (lang_identifier): Add field for Dsymbol.
+	(IDENTIFIER_LANG_SPECIFIC): New macro.
+	(IDENTIFIER_DSYMBOL): Likewise.
+
+2016-03-29  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (fill_alignment_field): Call layout_decl on field.
+	(finish_aggregate_type): Add assertion that TYPE_MODE is equal.
+
+2016-03-29  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (convert_expr): Replace call build_integer_cst with
+	size_int.
+	(convert_for_assignment): Likewise.
+	(build_struct_comparison): Likewise.
+	(d_assert_call): Likewise.
+	* d-elem.cc (IdentityExp::toElem): Likewise.
+	(AssignExp::toElem): Likewise.
+	(IndexExp::toElem): Likewise.
+	(SymbolExp::toElem): Likewise.
+	(NewExp::toElem): Likewise.
+	(ArrayLiteralExp::toElem): Likewise.
+	(AssocArrayLiteralExp::toElem): Likewise.
+
+2016-03-28  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-tree.h (CLASS_TYPE_P): New macro.
+	* d-codegen.cc (build_struct_literal): Check RECORD_OR_UNION_TYPE_P
+	before testing ANON_AGGR_TYPE_P.
+	(fill_alignment_field): New function.
+	(fill_alignment_holes): New function.
+	(finish_aggregate_type): Call fill_alignment_holes before computing
+	backend type mode.
+
+2016-03-28  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-tree.h (D_METHOD_CALL_EXPR): Removed `D_' prefix from macro,
+	updated all callers.
+	(D_TYPE_IMAGINARY_FLOAT): Likewise.
+	(D_LABEL_VARIABLE_CASE): Likewise.
+	* d-codegen.cc (build_delegate_cst): Always return valid constructor.
+	(get_object_method): Remove function.
+	(build_vindex_ref): New function.
+	* d-elem.cc (FuncExp::toElem): Use the real function pointer type when
+	converting to delegate.
+	(CallExp::toElem): Handle setting up virtual functions directly.
+	(DelegateExp::toElem): Likewise.
+	(DotVarExp::toElem): Remove handling of virtual functions.
+
+2016-03-28  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.h (lang_dtype): Remove function.
+	(lang_ddecl): Remove function.
+	* d-tree.h (TYPE_LANG_FRONTEND): New macro, replace all uses of
+	lang_dtype function.
+	(DECL_LANG_FRONTEND): New macro.
+	* d-attribs.c: Update includes.
+	* d-builtins.cc: Likewise.
+	* d-codegen.cc: Likewise.
+	* d-incpath.cc: Likewise.
+	* d-lang.cc: Likewise.
+	* d-objfile.cc: Likewise.
+
+2016-03-27  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.h (function_type_p): Remove function.
+	* d-codegen.cc (d_build_call): Use FUNC_OR_METHOD_P macro.
+	(build_bounds_condition): Update signature.
+	(d_assert_call): Likewise.
+	(insert_aggregate_field): Likewise.
+	* d-objfile.cc (get_linemap): Likewise.
+	* d-lang.h: Remove file, updated all includes.  Moved forward
+	declarations of types and functions to ...
+	* d-tree.h: ... here.
+
+2016-03-20  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (d_checked_index): Remove function.
+	(d_bounds_condition): Remove function.
+	(build_bounds_condition): New function.
+	* d-elem.cc (IndexExp::toElem): Use build_bounds_condition.
+	(SliceExp::toElem): Likewise.
+	(EqualExp::toElem): Convert expressions to dynamic arrays when
+	inlining comparison.  Don't pass zero length arrays to memcmp.
+
+2016-03-19  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (d_array_convert): New function overload.
+	* d-elem.cc (CatExp::toElem): Call new runtime function _d_arraycatnTX
+	when flattening multiple concatenations.
+	(NewExp::toElem): Update call construction for new signatures of
+	runtime functions _d_newarraymTX and _d_newarraymiTX.
+	* runtime.def (NEWARRAYMTX): Update signature.
+	(NEWARRAYMITX): Likewise,
+	(ARRAYCATNT): Remove runtime function.
+	(ARRAYCATNTX): New runtime function.
+
+2016-03-07  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* imports.cc (ImportVisitor::visit(Declaration)): Don't assume toSymbol
+	method will cache it's result.
+
+2016-03-06  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* dfrontend: Update root library to 2.068.
+	* Make-lang.in (D_DMD_OBJS): Add newdelete.o
+	* d-target.cc (Target::classinfosize): New variable, replaces all uses
+	of global CLASSINFO_SIZE.
+	(Target::init): Initialize it.
+	* d-decls.cc (ClassInfoDeclaration::toSymbol): Remove function.
+
+2016-03-05  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* dfrontend: Update to D front-end version 2.067.
+	* Make-lang.in (D_DMD_OBJS): Add new frontend sources.
+	* d-builtins.cc (d_build_builtins_module): Update signature.
+	(maybe_set_builtin): Rename to d_maybe_set_builtin, update signature.
+	(d_gcc_magic_module): Remove function.
+	* d-codegen.cc (expand_volatile_load): New function.
+	(expand_volatile_store): New function.
+	(expand_intrinsic): Handle volatileLoad and volatileStore intrinsics.
+	* d-decls.cc (Module::toModuleAssert): Remove function.
+	(Module::toModuleUnittest): Remove function.
+	(Module::toModuleArray): Remove function.
+	(TypeAArray::aaGetSymbol): Remove function.
+	* d-elem.cc (AssignExp::toElem): Call _d_arrayassign_{l,r} when
+	generating dynamic array assignment.
+	(IndexExp::toElem): Call _aaGetY when indexing an associative array.
+	(SliceExp::toElem): Use known CTFE result to check whether bounds
+	checks are necessary.
+	(DeleteExp::toElem): Call _d_delstruct when deleting a struct pointer.
+	(Expression::toElemDtor): Don't run cleanup of temporary if it's
+	constructor thrown an exception.
+	(NewExp::toElem): Handle special construction of new() arguments.
+	* d-glue.cc (Loc::Loc): Update signature.
+	(error): Likewise.
+	(toInitializer): New function.
+	* d-lang.cc (d_handle_option): Replace deprecated handlers.
+	(d_post_options): Set flag_max_errors.
+	(d_parse_file): Process any modules marked as builtin.
+	* d-objfile.cc (ClassDeclaration::toObjFile): Don't write out ctors
+	in the vtable marked @disable.
+	* d-target.cc (Target::loadModule): New function.
+	(Target::checkVectorType): New function.
+	* d-specs.c (lang_specific_driver): Handle -v option.
+	* lang-specs.h: Pass -v option to to frontend.
+
+2016-03-04  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* imports.cc: New file.
+	* d-decls.cc (Dsymbol::toImport): Remove function, update all callers
+	to use build_import_decl.
+
+2016-03-03  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-objfile.cc (gcc_attribute_p): New function.
+	(output_declaration_p): Inline into FuncDeclaration::ObjFile.
+	(unnest_function): Likewise.
+	(FuncDeclaration::toObjFile): Remove named parameter, update all
+	callers to ignore it.
+	(d_comdat_group): Use DECL_ASSEMBLER_NAME for the comdat group.
+	(d_comdat_linkage): Catch duplicate instantiations of templates, put
+	them in the same comdat group.
+	(setup_symbol_storage): Mark templates not to be written as abstract.
+	(d_finish_function): Don't send DECL_ABSTRACT_P functions to backend.
+	(d_finish_compilation): Mark all symbols as needed.
+
+	* d-objfile.cc: Remove redundant bool parameter from all lowering
+	routines for symbols, update all callers.
+
+2016-02-22  Eugene Wissner <belka@caraus.de>
+
+	* d-lang.cc (d_init): Remove short_double parameter from
+	build_common_tree_nodes.
+
+2016-02-20  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* intrinsics.def: Split signature macros into three groups.
+	Attributes, types, and helper generators.
+	* d-elem.cc (needsPostblit): Change signature to return boolean,
+	updated all callers.
+	(AssignExp::toElem): Don't assign destination to a temporary in
+	arraycopy call.
+	* toir.cc (IRVisior::visit(ThrowStatement)): Use NOP_EXPR cast to
+	convert thrown exception to Object.
+	(IRVisitor::visit(TryCatchStatement)): Use NOP_EXPR cast to convert
+	caught Object to thrown exception.
+	* d-codegen.cc (void_okay_p): Lazily build the convert to type.
+	* d-lang.cc (parse_int): Remove function.
+	(d_handle_option): Use integral_argument to parse numbers.
+
+	* d-codegen.cc (lower_struct_comparison): Built custom type if
+	lang_hooks.types.type_for_mode returns nothing.
+	* d-lang.cc (d_type_for_mode): Always support cent/ucent modes.
+	(d_type_for_size): Add support for cent/ucent precision types.
+	(d_signed_or_unsigned_type): Always support cent/ucent precisions.
+
+	* d-codegen.cc (d_build_call): Remove type promotion handling for
+	variadic arguments.
+	(expand_intrinsic_vaarg): Likewise.
+	* d-lang.cc (d_type_promotes_to): Likewise.
+
+	* d-elem.cc (AddrExp::toElem): Take address of the static const symbol
+	for the struct literal,  not the const constructor.
+	(CallExp::toElem): Don't pass generated static struct literal symbol
+	as the object parameter for DotVar call expressions.
+
+	* d-codegen.cc (type_va_array): New function.
+	(declaration_type_kind): Remove function.
+	(declaration_reference_p): New function, update all callers of
+	declaration_type_kind.
+	(argument_type_kind): Remove function.
+	(argument_reference_p): New function, update all callers of
+	argument_type_kind.
+	(build_address): Remove special handling of static array va_list.
+	* d-codegen.h (type_kind): Remove enum.
+
+2016-02-18  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (build_condition): New function.  Update all callers
+	that generate a COND_EXPR that returns a value to use it.
+	(build_vcondition): New function.  Update all callers that generate a
+	void COND_EXPR to use it.
+	* toir.cc (IRVisitor::visit(DoStatement)): Build a COND_EXPR instead
+	of an EXIT_EXPR to break from the loop.
+	(IRVisitor::visit(ForStatement)): Likewise.
+
+2016-02-14  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-elem.cc: Remove redundant IRState parameter from all lowering
+	routines for expressions, update all callers.
+
+2016-02-07  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (build_array_set): Use POSTINCREMENT_EXPR to adjust
+	array pointer.
+	(identity_compare_p): New function.
+	(build_struct_memcmp): Refactor into ...
+	(lower_struct_comparison): ... New function.
+	(build_struct_comparison): New function.
+	(build_array_struct_comparison): New function.
+	* d-elem.cc (IdentityExp::toElem): Use build_struct_comparison for
+	RECORD_TYPE values.
+	(EqualExp::toElem): Likewise.
+	Use memcmp for array of structs that pass test for identity_compare_p,
+	or fallback to build_array_struct_comparison.
+	(NewExp::toElem): Remove setting of StructLiteralExp::fillHoles.
+	(StructLiteralExp::toElem): Ignore StructLiteralExp::fillHoles, unless
+	building a union literal.
+
+2016-02-03  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-elem.cc (AssignExp::toElem): Pass parameters for arraycopy and
+	arrayassign in the correct order.
+
+2016-01-31  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* longdouble.h (longdouble): Use one contiguous array for the
+	real_value data payload.
+
+2016-01-23  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* toir.cc (IRVisitor::visit (ExtAsmStatement): Do validation of input
+	and output constraints, marking operands as addressable if requested.
+
+2016-01-10  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (empty_aggregate_p): New function.
+	(d_build_call): Don't pass empty aggregates by value.
+	(build_struct_memcmp): Don't compare empty aggregates by value.
+	* d-elem.cc (IdentityExp::toElem): Likewise.
+	(EqualExp::toElem): Likewise.
+	* (StructLiteralExp::toElem): Don't create temporaries or initialize
+	holes for empty	aggregates.
+	* d-lang.cc (empty_modify_p): New function.
+	(d_gimplify_expr): Remove assignments that involve empty aggregates.
+
+2016-01-09  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-builtins.cc (d_builtin_type): Define DEF_FUNCTION_TYPE_9,
+	DEF_FUNCTION_TYPE_10, and DEF_FUNCTION_TYPE_11.
+	(d_init_builtins): Likewise.
+	* d-longdouble.cc (machineMode): Remove function.
+	(longdouble::init): Don't use initialize real format by reference.
+	(longdouble::operator+): Use real_arithmetic instead of
+	REAL_ARITHMETIC.
+	(longdouble::operator-): Likewise.
+	(longdouble::operator*): Likewise.
+	(longdouble::operator/): Likewise.
+	(longdouble::operator%): Likewise.
+	* d-port.cc (Port::isSignallingNan): Use REAL_VALUE_ISSIGNALING_NAN.
+	(Port::fequal): Use real_identical instead of REAL_VALUES_IDENTICAL.
+	* d-target.cc: Include stor-layout.h header.
+	* lang.opt: Remove documentation for switches defined elsewhere.
+
+2016-01-09  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (get_libcall): Use set_call_expr_flags to apply runtime
+	function attributes.
+	* d-codegen.h (LibCallFlag): Remove type.
+	* runtime.def: Replace LibCallFlag with ECF everywhere.
+
+
+Copyright (C) 2016 Free Software Foundation, Inc.
+
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
