Mercurial > hg > CbC > CbC_gcc
diff gcc/d/ChangeLog-2013 @ 145:1830386684a0
gcc-9.2.0
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 11:34:05 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gcc/d/ChangeLog-2013 Thu Feb 13 11:34:05 2020 +0900 @@ -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.