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.

