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.
