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.
