+2021-10-05 Iain Sandoe <iain@sandoe.co.uk>
+
+ * d-spec.cc (lang_specific_driver): Push the -static-libstdc++
+ option back onto the command line for targets without support
+ for -Bstatic/dynamic.
+
+2021-10-04 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ PR d/102574
+ * d-spec.cc (lang_specific_driver): Link libstdc++ statically if
+ -static-libstdc++ was given on command-line.
+
+2021-10-04 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ * d-attribs.cc (d_handle_optimize_attribute): Save target node before
+ calling parse_optimize_options in case it changes.
+
+2021-09-12 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ PR d/102185
+ * d-builtins.cc (d_eval_constant_expression): Don't include
+ terminating null pointer in string expression conversion.
+
+2021-08-29 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ * d-codegen.cc: Include dmd/module.h.
+ (build_filename_from_loc): New function.
+ (d_assert_call): Rename to...
+ (build_assert_call): ...this.
+ (build_array_bounds_call): Call arrayboundsp variant of the array
+ bounds failure callback.
+ (build_bounds_condition): Rename to...
+ (build_bounds_index_condition): ...this. Update signature.
+ (build_bounds_slice_condition): New function.
+ (checkaction_trap_p): New function.
+ (d_assert_call): Call assertp variant of assert failure callback.
+ * d-tree.h (class IndexExp): Declare.
+ (class SliceExp): Declare.
+ (build_bounds_condition): Remove.
+ (build_assert_call): Declare.
+ (build_bounds_index_condition): Declare.
+ (build_bounds_slice_condition): Declare.
+ (checkaction_trap_p): Declare.
+ (d_assert_call): Remove.
+ * expr.cc (ExprVisitor::visit(IndexExp *)): Call
+ build_bounds_index_condition.
+ (ExprVisitor::visit(SliceExp *)): Call build_bounds_slice_condition.
+ (ExprVisitor::visit(AssertExp *)): Update setting of libcall.
+ * runtime.cc (enum d_libcall_type): Add LCT_IMMUTABLE_CHARPTR.
+ (get_libcall_type): Handle LCT_IMMUTABLE_CHARPTR.
+ * runtime.def (ASSERT): Rename to...
+ (ASSERTP): ...this. Update signature.
+ (UNITTEST): Rename to...
+ (UNITTESTP): ...this. Update signature.
+ (ARRAY_BOUNDS): Rename to...
+ (ARRAYBOUNDSP): ...this. Updates signature.
+ * toir.cc (IRVisitor::visit(SwitchErrorStatement *)): Update call.
+
+2021-08-29 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ * typeinfo.cc (class TypeInfoVisitor::layout_base): Update comment.
+
+2021-08-29 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ * typeinfo.cc (TypeInfoVisitor::visit(TypeInfoClassDeclaration *)):
+ Use int to store type flags.
+ (TypeInfoVisitor::visit(TypeInfoStructDeclaration *)): Likewise.
+
+2021-08-29 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ * types.cc (TypeVisitor::visit(TypeEnum*)): Get wchar_t type from
+ build_frontend_type.
+
+2021-08-29 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ * d-convert.cc (convert_for_rvalue): Convert switch statement into if
+ condition.
+
+2021-08-29 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ * d-builtins.cc (d_init_versions): Use POINTER_SIZE for testing
+ whether to predefine D_LP64.
+
+2021-08-29 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ PR d/102094
+ * d-codegen.cc (build_frame_type): Set TYPE_CXX_ODR_P.
+
+2021-08-25 Lewis Hyatt <lhyatt@gmail.com>
+
+ PR other/93067
+ * d-lang.cc (d_input_charset_callback): New function.
+ (d_init): Call new function
+ diagnostic_initialize_input_context().
+
+2021-07-30 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ * expr.cc (binary_op): Remove dead code.
+
+2021-07-30 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ * typeinfo.cc (TypeInfoVisitor::visit (TypeInfoClassDeclaration *)):
+ Always layout initializer for the m_RTInfo field.
+
+2021-07-30 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ * expr.cc (ExprVisitor::visit (AssertExp *)): Don't generate
+ PREDICT_EXPR.
+
+2021-07-30 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ * expr.cc (ExprVisitor::visit (AssignExp *)): Clarify comment
+ for generating static array assignment with literal.
+
+2021-07-30 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ * decl.cc (enum_initializer_decl): Only handle named enums.
+
+2021-07-30 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ * decl.cc (make_thunk): Set COMDAT and visibility of thunks only if
+ they are public.
+
+2021-07-30 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ * decl.cc (DeclVisitor::visit (StructDeclaration *)): Don't use sinit
+ for declaration directly.
+ (DeclVisitor::visit (ClassDeclaration *)): Likewise.
+ (aggregate_initializer_decl): Likewise. Set sinit after creating.
+
+2021-07-30 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ * d-builtins.cc (build_frontend_type): Use Identifier::idPool to
+ generate anonymous field name.
+
+2021-07-30 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ * types.cc (layout_aggregate_type): Call hasMonitor.
+ * typeinfo.cc (TypeInfoVisitor::layout_base): Likewise.
+ (layout_cpp_typeinfo): Likewise. Don't emit vtable unless
+ have_typeinfo_p.
+
+2021-07-30 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ * d-lang.cc (deps_add_target): Insert null terminator in buffer.
+ (deps_write): Likewise.
+ (d_parse_file): Likewise.
+
+2021-07-30 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ * d-builtins.cc (build_frontend_type): Restore builtin_converted_decls
+ length on conversion failure.
+
+2021-07-30 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ * d-codegen.cc (d_nested_class): Rename to ...
+ (get_outer_function): ... this. Handle all aggregate declarations.
+ (d_nested_struct): Remove.
+ (find_this_tree): Use get_outer_function.
+ (get_framedecl): Likewise.
+
+2021-07-29 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ PR d/101672
+ * typeinfo.cc (make_frontend_typeinfo): Generate Object class if it
+ doesn't exist.
+ (check_typeinfo_type): Don't warn if there's no location.
+
+2021-07-29 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ PR d/101664
+ * expr.cc (ExprVisitor::visit (CallExp *)): Use object expression as
+ result for C++ constructor calls.
+
+2021-07-29 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ PR d/96435
+ * d-convert.cc (convert_for_rvalue): New function.
+ * d-tree.h (convert_for_rvalue): Declare.
+ * expr.cc (ExprVisitor::visit (CastExp *)): Use convert_for_rvalue.
+ (build_return_dtor): Likewise.
+
+2021-07-29 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ PR d/101657
+ * d-lang.cc (d_parse_file): Remove generated D header files on error.
+
+2021-07-29 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ PR d/101656
+ * d-diagnostic.cc (escape_d_format): Don't escape quoted format
+ strings.
+
+2021-07-28 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ PR d/101640
+ * expr.cc (binary_op): Use build2 instead of fold_build2.
+
+2021-07-28 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ PR d/101490
+ * dmd/MERGE: Merge upstream dmd 27e388b4c.
+ * d-codegen.cc (build_array_index): Handle void arrays same as byte.
+ * d-convert.cc (convert_expr): Handle converting to zero-sized arrays.
+
+2021-07-28 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ PR d/101441
+ * dmd/MERGE: Merge upstream dmd f8c1ca928.
+
+2021-07-28 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ PR d/101127
+ * d-builtins.cc (d_builtin_function_ext_scope): New function.
+ * d-lang.cc (LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE): Define.
+ * d-tree.h (d_builtin_function_ext_scope): Declare.
+
+2021-07-28 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ PR d/101619
+ * dmd/MERGE: Merge upstream dmd 1d8386a63.
+
+2021-07-03 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ PR d/101273
+ * toir.cc (IRVisitor::visit (ReturnStatement *)): Detect returns that
+ use a temporary, and replace with return value.
+
+2021-07-02 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ PR d/101282
+ * d-codegen.cc (build_assign): Force target_expr on RHS for non-POD
+ assignment expressions.
+
2021-06-11 Iain Buclaw <ibuclaw@gdcproject.org>
PR d/100999