| 2017-12-23 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * intrinsics.def (INTRINSIC_MULUI): Declare. | |
| 2017-12-19 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-codegen.cc (build_target_expr): Update signature. | |
| (force_target_expr): New function. | |
| (build_address): Use force_target_expr to store temporary. | |
| (d_build_call): Likewise. | |
| * d-lang.cc (d_gimplify_expr): Likewise. | |
| * d-tree.h (language_function): Update type for vars_in_scope from | |
| vec<VarDeclaration*> to vec<tree>. | |
| (force_target_expr): Declare. | |
| * decl.cc (DeclVisitor::visit(VarDeclaration)): Put vars with scope | |
| destructors into a TARGET_EXPR, setting its cleanup. | |
| (declare_local_var): Don't push vars with scope destructors into the | |
| function binding level. | |
| * expr.cc (ExprVisitor::visit(DeclarationExp)): Don't handle scope | |
| destructors. | |
| (ExprVisitor::visit(CallExp)): Handle calling constructors using | |
| temporary objects. | |
| (build_dtor_list): Remove function. | |
| (build_expr_dtor): Put result into a CLEANUP_POINT_EXPR if any new | |
| temporaries needing destruction were added to scope. | |
| (build_return_dtor): Likewise. | |
| * toir.cc (add_stmt): Set CLEANUP_POINT_EXPR type as void. | |
| 2017-12-19 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-attribs.c (attr_noreturn_exclusions): New array. | |
| (attr_returns_twice_exclusions, attr_const_pure_exclusions): Likewise. | |
| (attr_inline_exclusions, attr_noinline_exclusions): Likewise. | |
| (d_langhook_common_attribute_table): Swap affects_identity and handler | |
| fields. Initialize new member of struct attribute_spec. | |
| (d_langhook_attribute_table): Likewise. | |
| (handle_weakref_attribute): Remove function. | |
| 2017-12-17 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-codegen.cc (stabilize_expr): Handle assignment expressions. | |
| (get_frame_for_symbol): Adjust the 'this' field of frames of | |
| overridden interface functions. | |
| * d-diagnostic.cc (expand_format): Rewrite '%X' format as '%x'. | |
| * decl.cc (DeclVisitor::visit(ClassDeclaration)): Handle future | |
| attribute. | |
| * expr.cc (ExprVisitor::binop_assignment): Ensure RHS is evaluated | |
| before LHS. | |
| (ExprVisitor::visit(SliceExp)): Always save lower bounds if upper has | |
| any side effects. | |
| * typeinfo.cc (TypeInfoVisitor::TypeInfoClassDeclaration): Use | |
| ClassDeclaration::isAbstract. | |
| (TypeInfoVisitor::visit(TypeInfoTupleDeclaration)): Mark internal | |
| reference as public and hidden. | |
| 2017-12-10 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-codegen.cc (build_alignment_field): Set DECL_PADDING_P and | |
| DECL_FIELD_CONTEXT on generated fields. | |
| (build_struct_literal): Use build_zero_cst to generate padding. | |
| * decl.cc (build_type_decl): Set public and decl assembler name. | |
| 2017-12-10 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * types.cc (TypeVisitor::visit(TypeClass)): Check for duplicate | |
| declarations before adding method. | |
| 2017-12-09 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * expr.cc (ExprVisitor::visit(AddrExp)): Build internal struct literal | |
| symbol before generating its initializer. | |
| 2017-12-09 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-lang.cc (d_parse_file): Set first_global_object_name. | |
| 2017-12-09 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * lang.opt (fmodule-filepath=): Rename to fmodule-file. | |
| * d-lang.cc (d_handle_option): Update case for OPT_fmodule_file_. | |
| 2017-12-09 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-tree.h (CALL_EXPR_ARGS_ORDERED): Define. | |
| * d-codegen.cc (d_build_call): Set CALL_EXPR_ARGS_ORDERED for | |
| functions with D linkage. | |
| * d-lang.cc (d_gimplify_expr): Handle CALL_EXPR_ARGS_ORDERED. | |
| 2017-12-09 Eugene Wissner <belka@caraus.de> | |
| * toir.cc (IRVisitor::visit(SwitchStatement)): Set SWITCH_ALL_CASES_P on | |
| switch statements. Set SWITCH_BREAK_LABEL_P on the artificial label | |
| created for break statements from a switch. | |
| 2017-12-04 Eugene Wissner <belka@caraus.de> | |
| * toir.cc (IRVisitor::visit(SwitchStatement)): Build SWITCH_EXPR using build2 instead | |
| of build3. | |
| 2017-11-14 Eugene Wissner <belka@caraus.de> | |
| * decl.cc (finish_thunk): Drop frequency argument from | |
| symbol_table::create_edge. | |
| * d-lang.cc (d_post_options): Set default value of | |
| -Wreturn-type to false. | |
| 2017-11-11 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-codegen.cc (build_float_cst): Remove float rounding check. | |
| * d-longdouble.cc (longdouble::to_int): Don't round floats before int | |
| conversion. | |
| * expr.cc (ExprVisitor::binary_op): Handle excess precision. | |
| (ExprVisitor::visit(NegExp)): Likwise. | |
| 2017-10-31 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-codegen.cc (build_address): Store CST nodes into a TARGET_EXPR | |
| before taking its address. | |
| 2017-10-08 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * Make-lang.in (D_FRONTEND_OBJS): Remove newdelete.o. | |
| * d-incpath.cc (add_globalpaths): Handle NULL target path. | |
| 2017-10-01 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * typeinfo.cc (TypeInfoVisitor::visit(TypeInfoClassDeclaration)): | |
| Properly check base classes for pointers. | |
| 2017-09-28 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * expr.cc (ExprVisitor::visit(StringExp)): Add extra null terminator | |
| onto string type, not the literal. | |
| 2017-09-26 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * types.cc (make_array_type): Move checking of void static arrays | |
| here. | |
| 2017-09-24 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-attribs.c: Add include for attribs.h. | |
| * d-codegen.cc (copy_aggregate_type): Remove TYPE_METHODS. | |
| (lower_struct_comparison): Use opt_scalar_int_mode. | |
| * d-target.cc (Target::_init): Use TYPE_MAX_VALUE instead of | |
| TYPE_MAXVAL. | |
| (Target::isVectorTypeSupported): Update call to | |
| scalar_mode_supported_p. | |
| * decl.cc (DeclVisitor::visit(Import)): Pass false as new argument to | |
| the imported_module_or_decl hook. | |
| * types.cc (TypeVisitor::visit(TypeClass)): Remove TYPE_METHODS. | |
| 2017-09-14 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * Make-lang.in (D_FRONTEND_OBJS): Add blockexit.o, initsem.o, | |
| inlinecost.o, safe.o, staticcond.o, and typesem.o. | |
| * d-attribs.c (uda_attribute_p): Use get_identifier to compare | |
| strings. | |
| (build_attributes): Handle empty string expressions. | |
| * d-builtins.cc (build_frontend_type): Use static create methods to | |
| 'new' front-end types, expressions, and declarations. | |
| (d_eval_constant_expression): Likewise. | |
| (build_alias_declaration): Likewise. | |
| (d_build_builtins_module): Likewise. | |
| * d-codegen.cc (declaration_type): Likewise. | |
| (type_passed_as): Likewise. | |
| (get_frame_for_symbol): Remove dependency on id.h. | |
| (get_frameinfo): Don't overwrite FRAMEINFO_CREATES_FRAME if function | |
| has nested frame references. | |
| * d-convert.cc (convert_for_assignment): Allow static arrays to be | |
| initialized with a zero integer value. | |
| * d-frontend.cc (genCmain): Remove dependency on id.h. | |
| * d-frontend.h (initializerToExpression): Add declaration. | |
| (gendocfile): Add declaration. | |
| (initTraitsStringTable): Remove. | |
| * d-lang.cc (deps_write): Remove dependency on id.h. | |
| (deps_add_target): Don't call StringTables's destructor. | |
| (d_init): Remove calls to deleted front-end initialize functions. | |
| * decl.cc (DeclVisitor::visit(PragmaDeclaration)): Remove dependency | |
| on id.h. | |
| (DeclVisitor::visit(VarDeclaration)): Call initializerToExpression to | |
| get the initializer of decl. | |
| (build_decl_tree): Remove dependency on id.h. | |
| (layout_class_initializer): Use static create method to 'new' | |
| front-end expression. | |
| * expr.cc (ExprVisitor::visit(AssignExp)): Handle static array | |
| assignment where RHS is integer zero. | |
| (ExprVisitor::visit(VarExp)): Remove dependency on id.h. | |
| (ExprVisitor::visit(StringExp)): Handle empty string expressions. | |
| * modules.cc (get_internal_fn): Use FuncDeclaration::genCfunc to | |
| create function decl. | |
| (build_module_tree): Remove dependency on id.h. | |
| * toir.cc (IRVisitor::visit(ExtAsmStatement)): Handle empty string | |
| expressions. | |
| * typeinfo.cc (make_frontend_typeinfo): Use static create methods to | |
| 'new' front-end declarations. | |
| (create_tinfo_types): Remove dependency on id.h. | |
| (get_cpp_typeinfo_decl): Likewise. | |
| (create_typeinfo): Likewise. | |
| 2017-08-23 Johannes Pfau <johannespfau@gmail.com> | |
| * typeinfo.cc (TypeInfoVisitor::visit(TypeInfoStructDeclaration)): Do | |
| not send member functions to backend here. | |
| 2017-08-19 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-convert.cc (convert_expr): Use build_zero_cst for casts from | |
| typeof(null). | |
| 2017-08-13 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-target.cc (Target::isVectorOpSupported): Disallow vectors in | |
| conditional and logical operators. | |
| 2017-08-08 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * intrinsics.cc (maybe_expand_intrinsic): Handle isNaN(), isInfinity() | |
| and isFinite() intrinsics. | |
| * intrinsics.def: Add INTRINSIC_ISNAN, INTRINSIC_ISINFINITY, and | |
| INTRINSIC_ISFINITE. | |
| 2017-08-08 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * intrinsics.cc (expand_intrinsic_popcnt): New function. | |
| (maybe_expand_intrinsic): Handle INTRINSIC_POPCNT. | |
| * intrinsics.def (INTRINSIC_POPCNT): Declare. | |
| 2017-08-06 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-frontend.cc (isBuiltin): Remove restriction on builtins. | |
| (eval_builtin): Check DECL_INTRINSIC_CODE. | |
| * d-tree.h (intrinsic_code): Add enum declaration. | |
| (lang_decl): Add intrinsic field. | |
| (DECL_INTRINSIC_CODE): New macro. | |
| (DECL_BUILT_IN_CTFE): New macro. | |
| * decls.cc (get_symbol_decl): Initialize DECL_INTRINSIC_CODE. | |
| * intrinsics.cc (intrinsic_decl): Add ctfeonly field. | |
| (maybe_set_intrinsic): Set frontend builtin flag only if the function | |
| is CTFE-able. Set BUILT_IN_FRONTEND if function has no body. | |
| (clear_intrinsic_flag): Clear DECL_INTRINSIC_CODE instead of frontend | |
| builtin flag. | |
| (maybe_expand_intrinsic): Handle INTRINSIC_TAN intrinsics. | |
| Call clear_intrinsic_flag on CTFE built-ins if semantic has finished. | |
| * intrinsics.def: Add INTRINSIC_TAN. | |
| (DEF_D_BUILTIN): New macro. | |
| (DEF_CTFE_BUILTIN): New macro. | |
| 2017-08-06 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * decl.cc (DeclVisitor::visit): Don't set input_location. | |
| (build_decl_tree): Handle set and restore of input_location. | |
| (declare_local_var): Don't set input_location. | |
| * expr.cc (build_expr): Handle set and restore of input_location. | |
| * imports.cc (build_import_decl): Likewise. | |
| * modules.cc (get_dso_registry_fn): Use UNKNOWN_LOCATION for | |
| declaration of _d_dso_registry. | |
| * runtime.cc (build_libcall_decl): Use UNKNOWN_LOCATION for | |
| declaration of library functions. | |
| * toir.cc (IRVisitor::visit): Don't set input_location. | |
| (IRVisitor::build_stmt): New function. | |
| (IRVisitor::do_jump): Update signature. | |
| (build_function_body): Use IRVisitor::build_stmt. | |
| * typeinfo.cc (layout_classinfo_interfaces): Don't set input_location. | |
| * types.cc (layout_aggregate_members): Likewise. | |
| (layout_aggregate_type): Likewise. | |
| 2017-08-05 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-codegen.cc (build_boolop): Handle VECTOR_TYPE comparisons. | |
| * d-target.cc (Target::checkVectorType): Rename to | |
| Target::isVectorTypeSupported. | |
| (Target::isVectorOpSupported): New function. | |
| * expr.cc (ExprVisitor::visit(IdentityExp)): Don't memcmp floating | |
| point vectors. | |
| (ExprVisitor::visit(CmpExp)): Handle always true or always false | |
| vector comparisons. | |
| 2017-08-02 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * typeinfo.cc (SpeculativeTypeVisitor::visit(TypeClass)): Don't emit | |
| typeinfo for speculative class types. | |
| 2017-07-29 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-lang.cc (build_lang_decl): Handle compiler generated typeinfo that | |
| also appear in code. | |
| * d-tree.h (lang_identifier): Add decl_tree. | |
| (IDENTIFIER_DECL_TREE): New macro. | |
| * decl.cc (declare_extern_var): Re-use already generated decl if | |
| called with the same identifier twice. | |
| 2017-07-29 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * decl.cc (d_finish_decl): Replace ENABLE_TREE_CHECKING macro with | |
| flag_checking. | |
| 2017-07-28 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-tree.h (D_DECL_ONE_ONLY): Remove macro accessor. | |
| * decl.cc (DeclVisitor::visit(StructDeclaration)): Move call to | |
| d_comdat_linkage here. | |
| (DeclVisitor::visit(ClassDeclaration)): Likewise. | |
| (DeclVisitor::visit(InterfaceDeclaration)): Likewise. | |
| (DeclVisitor::visit(EnumDeclaration)): Likewise. | |
| (get_symbol_decl): Move call to mark_needed here. | |
| (declare_extern_var): Mark compiler generated symbols as needed. | |
| (make_thunk): Remove copy of D_DECL_ONE_ONLY. | |
| (get_vtable_decl): Don't call d_comdat_linkage. | |
| (aggregate_initializer_decl): Likewise. | |
| (enum_initializer_decl): Likewise. | |
| * modules.cc (d_finish_compilation): Don't call mark_needed. | |
| * typeinfo.cc (get_classinfo_decl): Don't call d_comdat_linkage. | |
| 2017-07-28 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-spec.c (lang_specific_driver): Always add `-o' option when | |
| compiling D sources. | |
| 2017-07-28 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-frontend.cc (genCmain): Don't error if entrypoint not found. | |
| 2017-07-18 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-lang.cc (d_types_compatible_p): Check that both types are | |
| RECORD_TYPE before using record-specific flag comparison. | |
| 2017-07-15 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-builtins.cc (d_build_d_type_nodes): Set TYPE_DYNAMIC_ARRAY on | |
| array_type_node. | |
| * d-codegen.cc (build_delegate_cst): Set TYPE_DELEGATE on internal | |
| delegate constant types. | |
| * d-frontend.h (cppTypeInfoMangle): Remove declaration. | |
| (toCppMangleItanium): Add declaration. | |
| (cppTypeInfoMangleItanium): Add declaration. | |
| * d-lang.cc (d_types_compatible_p): Use type flags to determine | |
| compatibility. Return false instead of doing size comparison. | |
| * d-target.cc (Target::toCppMangle): New function. | |
| (Target::cppTypeInfoMangle): New function. | |
| (Target::cppTypeMangle): New function. | |
| (Target::systemLinkage): New function. | |
| * d-tree.h (TYPE_DYNAMIC_ARRAY): New macro. | |
| (TYPE_DELEGATE): New macro. | |
| (TYPE_ASSOCIATIVE_ARRAY): New macro. | |
| * typeinfo.cc (layout_cpp_typeinfo): Use Target::cppTypeInfoMangle. | |
| * types.cc (TypeVisitor::visit(TypeDArray)): Set TYPE_DYNAMIC_ARRAY. | |
| (TypeVisitor::visit(TypeAArray)): Set TYPE_ASSOCIATIVE_ARRAY. | |
| (TypeVisitor::visit(TypeDelegate)): Set TYPE_DELEGATE. | |
| 2017-07-11 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-target.cc (Target::loadModule): Check module identifier if a | |
| declaration doesn't exist. | |
| * typeinfo.cc (make_frontend_typeinfo): Use module location instead if | |
| a declaration doesn't exist. | |
| 2017-06-28 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-frontend.cc (CTFloat::hash): New function. | |
| 2017-06-25 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-codegen.cc (d_array_string): Remove function. | |
| (d_assert_call): Inline implementation of d_array_string here. | |
| * d-tree.h (d_array_string): Remove declaration. | |
| * typeinfo.cc (TypeInfoVisitor::layout_string): New function. | |
| (TypeInfoVisitor::visit): Update calls to d_array_string to use | |
| layout_string instead. | |
| 2017-06-25 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * toir.cc (IRVisitor::visit(ExtAsmStatement)): Set ASM_VOLATILE_P only | |
| if statement is not marked with pure attribute. | |
| 2017-06-25 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-lang.cc (d_parse_file): Print all predefined version identifiers | |
| if verbose. | |
| 2017-06-24 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-frontend.cc (Global::_init): Remove memset for global.params. | |
| 2017-06-24 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * Make-lang.in (D_ALL_OBJS): Add D_TARGET_OBJS. | |
| * d-builtins.cc (d_add_builtin_version): Move here from d-lang.cc. | |
| (d_init_versions): New function. | |
| * d-lang.cc (d_init): Call d_init_versions. | |
| * d-target-def.h: New file. | |
| * d-target.cc (Target::critsecsize): Replace with call to | |
| targetdm.critsec_size. | |
| * d-target.def: New file. | |
| * d-target.h: New file. | |
| * d-tree.h (d_init_versions): Add declaration. | |
| 2017-06-20 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * expr.cc (ExprVisitor::visit(BinAssignExp)): Strip promotions from | |
| both signed and unsigned rshift assignments. | |
| 2017-06-17 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-diagnostic.cc (expand_format): New function. | |
| (d_diagnostic_report_diagnostic): New function. | |
| (error, verror): Update format attributes. Use function | |
| d_diagnostic_report_diagnostic instead of xvasprintf. | |
| (errorSupplemental, verrorSupplemental): Likewise. | |
| (warning, vwarning): Likewise. | |
| (warningSupplemental, vwarningSupplemental): Likewise. | |
| (deprecation, vdeprecation): Likewise. | |
| (deprecationSupplemental, vdeprecationSupplemental): Likewise. | |
| 2017-06-15 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * expr.cc (ExprVisitor::visit(AssertExp)): Don't call invariant on | |
| interface objects. | |
| 2017-06-12 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * expr.cc (ExprVisitor::visit(DelegateExp)): Convert object to right | |
| type before using it. | |
| 2017-06-12 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-decls.cc (get_decl_tree): Find the first parent member function | |
| before constructing non-local `this' decl. | |
| 2017-06-10 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-builtins.cc (build_frontend_type): Allow all vector types to be | |
| included in builtins module. | |
| 2017-06-09 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * types.cc (TypeVisitor::visit(TypeStruct)): Let struct alignment | |
| override the alignsize. | |
| 2017-06-09 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-codegen.cc (d_decl_context): Use origin template declaration as | |
| context for instantiated type symbols. | |
| 2017-06-08 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-attribs.c (d_handle_weak_attribute): Use quoted string format. | |
| * decls.cc (finish_thunk): Update call to create_edge for new API. | |
| 2017-06-08 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * expr.cc (ExprVisitor::visit(StringExp)): Create string type that is | |
| same length as string value literal. | |
| 2017-05-27 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * Make-lang.in (D_FRONTEND_OBJS): Rename object.o to rootobject.o. | |
| 2017-05-26 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * decl.cc: Remove include for dumpfile.h. | |
| (finish_function): Use dump_function to for dumping original ASTs. | |
| 2017-05-24 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * config-lang.in (gtfiles): Add typeinfo.cc. | |
| * d-codegen.cc (d_build_call_list): Remove function. | |
| (d_build_call_nary): Remove function. | |
| (build_binary_op): Remove function. | |
| (build_binop_assignment): Remove function. | |
| (build_vthis_type): Rename to build_vthis_function. | |
| (create_field_decl): Move to decl.cc. | |
| * d-lang.cc (genCmain): Moved to d-frontend.cc. | |
| (builtin_modules): Declare static. | |
| (d_add_builtin_module): New function. | |
| (d_add_entrypoint_module): New function. | |
| * expr.cc (ExprVisitor::binary_op): New function. | |
| (ExprVisitor::binop_assignment): New function. | |
| * intrinsic.cc (expand_intrinsic): Rename to maybe_expand_intrinsic. | |
| * runtime.cc (build_libcall): Updated signature. | |
| * types.cc (make_two_field_type): Remove function. | |
| (make_struct_type): New function. | |
| 2017-05-22 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * Make-lang.in (D_OBJS): Add intrinsics.o and runtime.o. | |
| * d-codegen.h: Remove file. | |
| * intrinsics.cc: New file. | |
| * runtime.cc: New file. | |
| 2017-05-21 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-codegen.cc: Remove include for d-dmd-gcc.h. | |
| * d-dmd-gcc.h: Rename to d-frontend.h. Update all includes. | |
| * d-frontend.cc (Global::_init): Remove unnecessary initialization. | |
| * expr.cc: Remove include for d-dmd-gcc.h. | |
| 2017-05-21 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-attribs.c (handle_sentinel_attribute): Remove function. | |
| (ignore_attribute): Remove function. | |
| (d_langhook_common_attribute_table): Remove sentinel and tm regparm | |
| from common attribute table. | |
| (d_langhook_format_attribute_table): Remove variable. | |
| * d-lang.cc (LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE): Remove macro. | |
| (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Remove macro. | |
| (d_post_options): Don't set flag_unit_at_a_time. | |
| (d_nametype): Remove function. | |
| * types.cc (TypeVisitor::visit(TypeBasic)): Set TYPE_NAME. | |
| (TypeVisitor::visit(TypeVector)): Likewise. | |
| 2017-05-20 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * Make-lang.in (D_OBJS): Remove d-objfile.o. Add modules.o. | |
| * d-codegen.cc (get_linemap): Move function here. | |
| * d-objfile.cc: Remove file. | |
| * d-objfile.h: Remove header. | |
| * d-tree.h (GDC_PREFIX): New macro. | |
| * decl.cc (make_internal_name): Rename to mangle_internal_decl. | |
| (DeclVisitor): Move class here. | |
| (gcc_attribute_p): Move function here. | |
| (build_decl_tree): Likewise. | |
| (d_finish_decl): Likewise. | |
| (start_function): Likewise. | |
| (finish_function): Likewise. | |
| (mark_needed): Likewise. | |
| (base_vtable_offset): Likewise. | |
| (build_artificial_decl): Likewise. | |
| (build_type_decl): Likewise. | |
| (d_comdat_group): Likewise. | |
| (d_comdat_linkage): Likewise. | |
| (add_moduleinfo_field): Move to modules.cc | |
| (layout_moduleinfo_fields): Likewise. | |
| (get_moduleinfo_decl): Likewise. | |
| * modules.cc: New file. | |
| 2017-05-10 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * imports.cc (ImportVisitor::visit(Import)): New function. | |
| 2017-05-06 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-objfile.cc (DeclVisitor::visit(Module)): Set input_location before | |
| walking module members. | |
| (get_linemap): Return input_location if no filename set. | |
| (set_input_location): Remove function. Update all callers to set | |
| input_location directly. | |
| (set_decl_location): Remove function. Update all callers to pass | |
| get_linemap to build_decl, or use input_location. | |
| * types.cc (insert_aggregate_field): Update signature. | |
| 2017-04-30 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-objfile.cc (start_function): Update signature. | |
| (finish_function): Update signature. | |
| (DeclVisitor::visit(FuncDeclaration)): Move function construction to | |
| start_function. Move function finalization to finish_function. | |
| (set_function_end_locus): Remove function. | |
| (d_finish_function): Remove function. | |
| (build_simple_function_decl): Don't set frontend body. | |
| (build_simple_function): Update signature. Use start/finish function | |
| to compile the body. | |
| (emit_dso_registry_cdtor): Likewise. | |
| * expr.cc (ExprVisitor::visit(WrappedExp)): Remove function. | |
| 2017-04-29 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-diagnostic.cc (verror): Use xvasprintf. | |
| (verrorSupplemental): Likewise. | |
| (vwarning): Likewise. | |
| (vwarningSupplemental): Likewise. | |
| (vdeprecation): Likewise. | |
| (vdeprecationSupplemental): Likewise. | |
| 2017-04-24 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-tree.h (d_tree_index): Add DTI_VTABLE_ENTRY_TYPE, | |
| DTI_VTBL_INTERFACE_TYPE, DTI_ARRAY_TYPE, and DTI_NULL_ARRAY. | |
| (vtable_entry_type): New macro. | |
| (vtbl_interface_type_node): New macro. | |
| (array_type_node): New macro. | |
| (null_array_node): New macro. | |
| * d-builtins.cc (d_build_d_type_nodes): Initialize new trees. | |
| * d-codegen.cc (build_struct_literal): Allow NULL index when | |
| looking for next field to initialize. | |
| (copy_aggregate_type): New function. | |
| * d-target.cc (Target::loadModule): Look for object module, | |
| call create_tinfo_types. | |
| * decl.cc (TypeInfoDeclVisitor): Move to typeinfo.cc. | |
| (get_typeinfo_decl): Likewise. | |
| (copy_struct): Remove function. Updated callers to use | |
| copy_aggregate_type. | |
| (layout_classinfo_interfaces): Move to typeinfo.cc. | |
| (get_classinfo_decl): Likewise. | |
| (get_cpp_typeinfo_decl): Likewise. | |
| * typeinfo.cc (tinfo_kind): New enum. | |
| (tinfo_types): New static variable. | |
| (get_typeinfo_kind): New function. | |
| (make_internal_typeinfo): New function. | |
| (make_frontend_typeinfo): New function. | |
| (create_tinfo_types): New function. | |
| (TypeInfoVisitor::set_field): Remove function. | |
| Update all callers to use layout_field. | |
| (TypeInfoVisitor::layout_vtable): Remove function. | |
| Update all callers to use layout_base. | |
| (TypeInfoVisitor::layout_field): New function. | |
| (TypeInfoVisitor::layout_base): New function. | |
| (builtin_typeinfo_p): New function. | |
| (genTypeInfo): Rename to create_typeinfo. | |
| (isSpeculativeType): Rename to speculative_type_p. | |
| 2017-04-23 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-tree.h (d_function_chain): Declare macro. Update all uses of | |
| `cfun->language' to use it. | |
| 2017-04-22 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-decls.cc: Rename to decl.cc. | |
| (get_symbol_decl): Handle typeinfo declarations. | |
| (declare_extern_var): New function. | |
| (declare_local_var): New function. | |
| (get_moduleinfo_decl): Call declare_extern_var. | |
| (get_classinfo_decl): Likewise. | |
| (get_vtable_decl): Likewise. | |
| (get_cpp_typeinfo_decl): Likewise. | |
| (aggregate_initializer_decl): Likewise. | |
| (enum_initializer_decl): Likewise. | |
| * Make-lang.in (D_OBJS): Update. | |
| * d-codegen.cc (build_local_var): Remove function. | |
| Updated all callers to use declare_local_var. | |
| (build_local_temp): Move to decl.cc. | |
| (get_decl_tree): Likewise. | |
| (expand_decl): Remove function. | |
| (build_closure): Inline expand_decl here. | |
| 2017-04-20 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-codegen.cc (pop_binding_label): Move to toir.cc. | |
| (pop_label): Likewise. | |
| (push_binding_level): Likewise | |
| (pop_binding_level): Likewise. | |
| (push_stmt_list): Likewise. | |
| (add_stmt): Likewise. | |
| (check_goto): Move to toir.cc, make it a member of IRVisitor. | |
| (check_previous_goto): Likewise. | |
| (lookup_label): Likewise. | |
| (lookup_bc_label): Likewise. | |
| (define_label): Likewise. | |
| * toir.cc (build_ir): Rename to build_function_body. | |
| 2017-04-19 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-target.cc: Update includes. | |
| 2017-04-19 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * lang-specs.h: Remove capitalized D source suffixes. | |
| 2017-04-19 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * lang-specs.h: Add rule for forwarding -iprefix and -imultilib to the | |
| compiler proper. | |
| 2017-04-19 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * lang-specs.h: Remove cc1d spec. | |
| 2017-04-19 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * lang-specs.h: Remove +e handling. | |
| 2017-04-18 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-diagnostic.cc: New file. | |
| * d-frontend.cc: New file. | |
| * d-glue.cc: Remove file. | |
| * d-port.cc: Remove file. | |
| * d-longdouble.h (template<typename T> operator): Remove operators. | |
| 2017-04-17 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-incpath.cc (add_env_var_paths): Rename to add_environment_paths. | |
| (make_absolute): Remove function. | |
| (add_import_path): Rename to add_globalpaths. | |
| (add_fileimp_path): Rename to add_filepaths. | |
| 2017-04-17 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-codegen.h (d_types_same): Renamed to same_type_p. | |
| Moved to types.cc. | |
| (build_object_type): Renamed to get_object_type. Moved to types.cc. | |
| * d-codegen.cc (type_va_array): Renamed to valist_array_p. | |
| Moved to types.cc. | |
| (d_array_type): Renamed to make_array_type. Moved to types.cc. | |
| (insert_type_modifiers): Moved to types.cc. | |
| (build_two_field_type): Likewise. | |
| (empty_aggregate_p): Likewise. | |
| (fixup_anonymous_offset): Likewise. | |
| (layout_aggregate_members): Likewise. | |
| (layout_aggregate_type): Likewise. | |
| (insert_aggregate_field): Likewise. | |
| (finish_aggregate_type): Likewise. | |
| 2017-04-17 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * Make-lang.in (D_FRONTEND_OBJS): Update to match new source names. | |
| 2017-04-11 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * gdc.texi: Rewrite documentation for manpages. | |
| 2017-04-08 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-objfile.cc (DeclVisitor::visit(FuncDeclaration)): Remove logic | |
| that parent needs to be compiled before nested. | |
| 2017-04-08 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-lang.cc (d_post_options): Don't overwrite in_fnames. | |
| (d_parse_file): Don't error about not being able to use stdin. | |
| Implement support for reading source code from stdin. | |
| 2017-04-08 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-lang.cc (d_parse_file): Remove invalid file name checks. | |
| 2017-04-08 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-glue.cc (Global::_init): Set global.stdmsg to stderr. | |
| 2017-04-07 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-codgen.h (current_module_decl): Moved to d-objfile.cc. | |
| * d-objfile.h (current_module_info): Likewise. | |
| (ModuleInfoFlags): Likewise. | |
| (ModuleInfo): Likewise. | |
| * d-objfile.cc (start_function): Move updating ModuleInfo structure to | |
| ... | |
| (DeclVisitor::visit(FuncDeclaration)): ... here. Set it after | |
| finishing off the function. | |
| 2017-04-07 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-objfile.cc (DeclVisitor::visit(FuncDeclaration)): Use | |
| push_function_decl for storing current state when switching to nested | |
| functions. Remove handling of deferred functions. | |
| * d-tree.h (language_function): Remove deferred_fns. | |
| * expr.cc (ExprVisitor::visit(DelegateExp)): Don't defer compiling | |
| the delegate lambda. | |
| (ExprVisitor::visit(FuncExp)): Likewise for function literals. | |
| (ExprVisitor::visit(VarExp)): Likewise. | |
| 2017-04-07 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-codegen.cc (start_function): Move to d-objfile.cc, make it static. | |
| (end_function): Likewise. Renamed to finish_function. | |
| 2017-04-05 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-codegen.cc (d_convert): Move to d-convert.cc. | |
| (convert_expr): Likewise. | |
| (convert_for_assignment): Likewise. | |
| (convert_for_argument): Likewise. | |
| (convert_for_condition): Likewise. | |
| (d_array_convert): Likewise. | |
| 2017-04-04 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-builtins.c (d_global_trees): Move to d-lang.cc. | |
| (build_dtype): Rename to build_frontend_type. | |
| Updated all callers. | |
| (build_expression): Rename to d_eval_constant_expression. | |
| Updated all callers. | |
| (build_alias_declaration): New function. | |
| (d_build_c_type_nodes): New function. | |
| (d_build_d_type_nodes): New function. | |
| (d_define_builtins): New function. | |
| 2017-04-04 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-attribs.c (insert_type_attribute): Use | |
| build_type_attribute_variant. | |
| (insert_decl_attribute): Use build_decl_attribute_variant. | |
| (uda_attribute_p): Remove string table, use Identifier comparison for | |
| looking up table attributes. | |
| (build_attributes): Make unknown attribute a warning, use quoted | |
| strings in diagnostic messages. | |
| 2017-04-01 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-lang.cc (d_handle_option): Handle -fdump-d-original. | |
| (d_parse_file): Likewise. | |
| * d-target.cc (Target::maxStaticDataSize): New variable. | |
| (Target::_init): Initialize maxStaticDataSize. | |
| * lang.opt (fdump-d-original): Declare. | |
| 2017-04-01 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * Make-lang.in (D_GLUE_OBJS): Remove d-todt.cc. | |
| * d-objfile.cc (build_moduleinfo_symbol): Build initializer for | |
| ModuleInfo directly from inferred type fields. | |
| (d_finish_symbol): Remove handling of DECL_LANG_INITIAL. | |
| * d-todt.cc: Remove file. | |
| * d-tree.h (lang_decl): Remove initial field. | |
| (DECL_LANG_INITIAL): Remove macro. | |
| 2017-03-31 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-objfile.cc (DeclVisitor::visit(VarDeclaration)): Use build_expr to | |
| generate the static initializer. | |
| * d-todt.cc (Initializer::toDt): Remove function and all overrides. | |
| * expr.cc (ExprVisitor::visit(VarExp)): Use build_expr to get the | |
| constant initializer of a constant variable. | |
| 2017-03-29 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-decls.cc (aggregate_initializer): Renamed to | |
| aggregate_initializer_decl. Updated all callers. | |
| (enum_initializer): Renamed to enum_initializer_decl. | |
| Updated all callers. | |
| (layout_class_initializer): New function. | |
| (layout_struct_initializer): New function. | |
| * d-todt.cc (ClassDeclaration::toDt): Remove function. | |
| (StructDeclaration::toDt): Remove function. | |
| 2017-03-27 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-objfile.cc (DeclVisitor::visit(Module)): New function. | |
| (Module::genobjfile): Remove function. | |
| Updated all callers to use build_decl_tree. | |
| (layout_moduleinfo): New function. | |
| (Module::genmoduleinfo): Remove function. | |
| Update all callers to use layout_moduleinfo. | |
| 2017-03-26 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-objfile.cc (base_vtable_offset): New function. | |
| (ClassDeclaration::baseVtblOffset): Remove function. | |
| Updated all callers to use base_vtable_offset. | |
| 2017-03-26 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-objfile.cc (DeclVisitor): New visitor interface to supercede the | |
| toObjFile methods. | |
| (build_decl_tree): New function. | |
| (Dsymbol::toObjFile): Remove function and overrides. | |
| Updated all callers to use build_decl_tree. | |
| 2017-03-20 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-decls.cc (get_cpp_typeinfo_decl): New function. | |
| * d-lang.cc (d_build_eh_type_type): Return classinfo for | |
| __cpp_type_info_ptr when generating catch for C++ classes. | |
| * runtime.def (CXA_BEGIN_CATCH): Define. | |
| (CXA_END_CATCH): Define. | |
| * toir.cc (IRVisitor::visit(TryCatchStatement)): Support catching | |
| classes thrown from C++. | |
| * typeinfo.cc (layout_cpp_typeinfo): New function. | |
| 2017-03-20 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-builtins.cc (d_build_builtins_module): Always mark gcc builtins as | |
| nothrow functions. | |
| 2017-03-11 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-longdouble.cc (CTFloat::zero): New variable. | |
| (CTFloat::one): New variable. | |
| (CTFloat::minusone): New variable. | |
| (CTFloat::half): New variable. | |
| (longdouble::set): Remove float and double overloads. | |
| (longdouble::operator float): Remove function. | |
| (longdouble::operator double): Remove function. | |
| * d-target.cc (Target::_init): Initialize floating point constants. | |
| 2017-03-11 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-lang.cc (d_init): Replace calls to init with _init. | |
| * d-glue.cc (Global::init): Renamed to Global::_init. | |
| * d-target.cc (Target::init): Renamed to Target::_init. | |
| 2017-03-11 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-longdouble.cc (longdouble::format): Remove function. | |
| (longdouble::formatHex): Remove function. | |
| (longdouble::dump): Remove function. | |
| (CTFloat::sprint): Inline implementation of format and formatHex here. | |
| 2017-03-11 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-lang.cc (d_init): Remove calls to Port::init and longdouble::init. | |
| * d-longdouble.cc (real_limits): Remove variable. | |
| (longdouble::init): Remove function. | |
| (CTFloat::parse): Update to use Target::RealProperties. | |
| * d-port.cc (Port::ldbl_nan): Remove variable. | |
| (Port::snan): Remove variable. | |
| (Port::ldbl_infinity): Remove variable. | |
| (Port::ldbl_max): Remove variable. | |
| (Port::init): Remove function. | |
| (Port::isFloat32LiteralOutOfRange): Update to use | |
| Target::RealProperties. | |
| (Port::isFloat64LiteralOutOfRange): Likewise. | |
| * d-target.cc (Target::FPTypeProperties<T>::max): Define. | |
| (Target::FPTypeProperties<T>::min_normal): Define. | |
| (Target::FPTypeProperties<T>::nan): Define. | |
| (Target::FPTypeProperties<T>::snan): Define. | |
| (Target::FPTypeProperties<T>::infinity): Define. | |
| (Target::FPTypeProperties<T>::epsilon): Define. | |
| (Target::FPTypeProperties<T>::dig): Define. | |
| (Target::FPTypeProperties<T>::mant_dig): Define. | |
| (Target::FPTypeProperties<T>::max_exp): Define. | |
| (Target::FPTypeProperties<T>::min_exp): Define. | |
| (Target::FPTypeProperties<T>::max_10_exp): Define. | |
| (Target::FPTypeProperties<T>::min_10_exp): Define. | |
| (define_float_constants): New function. | |
| (Target::init): Initialize compile-time floating point properties. | |
| * longdouble.h (Mode): Remove type declaration. | |
| (real_properties): Remove type declaration. | |
| 2017-03-10 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-longdouble.cc (CTFloat::fabs): New function. | |
| (CTFloat::isIdentical): New function. | |
| (CTFloat::isNaN): New function. | |
| (CTFloat::isSNaN): New function. | |
| (CTFloat::isInfinity): New function. | |
| (CTFloat::parse): New function. | |
| (CTFloat::sprint): New function. | |
| * d-port.cc (Port::isNan): Remove function. | |
| (Port::isSignallingNan): Remove function. | |
| (Port::isInfinity): Remove function. | |
| (Port::fequal): Remove function. | |
| (Port::strtof): Remove function. | |
| (Port::strtod): Remove function. | |
| (Port::strtold): Remove function. | |
| (Port::isFloat32LiteralOutOfRange): New function. | |
| (Port::isFloat64LiteralOutOfRange): New function. | |
| * longdouble.h (ld_sprint): Remove function. | |
| 2017-03-06 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-glue.cc (verror): Update to handle -Wspeculative. | |
| (verrorSupplemental): Likewise. | |
| * d-lang.cc (d_init_options): Initialize module alias array. | |
| (d_init_options): Handle -fmodule-filepath= and -Wspeculative. | |
| * d-port.cc (Port::stricmp): Remove function. | |
| (Port::writelongLE): New function. | |
| (Port::writelongBE): New function. | |
| * lang.opt (Wspeculative): Declare. | |
| (fmodule-filepath=): Declare. | |
| 2017-03-06 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-lang.cc (d_handle_option): Handle -ftransition=dip1000 | |
| * lang.opt (ftransition=dip1000): Declare. | |
| (ftransition=safe): Make alias for -ftransition=dip1000 | |
| 2017-03-04 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-codegen.cc (get_decl_tree): Handle chaining over many levels of | |
| nesting functions to get to the right parent for the 'this' field. | |
| 2017-03-04 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-decls.cc (get_symbol_decl): Move generation of DECL_ARGUMENTS for | |
| empty body declarations to ... | |
| (make_thunk): ... here. Also set-up DECL_RESULT. | |
| (finish_thunk): Mark DECL_UNINLINEABLE on external functions. | |
| 2017-03-04 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-decls.cc (make_thunk): Don't build thunks for functions that | |
| failed to compile. | |
| 2017-03-04 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-objfile.cc (emit_dso_registry_hooks): Set DECL_PRESERVE_P. | |
| 2017-02-26 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-codegen.cc (build_frame_type): Update condition for scope | |
| destruction error. | |
| * d-port.cc (Port::valcpy): New function. | |
| * expr.cc (ExprVisitor::visit(CallExp)): Generate cast of 'this' | |
| object to the right handle type before indexing. | |
| 2017-02-24 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-glue.cc (warningSupplemental): New function. | |
| (vwarningSupplemental): New function. | |
| (deprecationSupplemental): New function. | |
| (vdeprecationSupplemental): New function. | |
| 2017-02-23 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * imports.cc (ImportVisitor::visit(OverDeclaration)): New function. | |
| (ImportVisitor::visit(FuncAliasDeclaration)): New function. | |
| 2017-02-21 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-lang.cc (d_handle_option): Handle -X and -Xf options. | |
| (d_parse_file): Update. | |
| * lang-specs.h: Add rules for -X style options. | |
| * lang.opt (X): Declare. | |
| (Xf): Declare. | |
| (fXf=): Make alias for -Xf. | |
| 2017-02-21 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * lang.opt (fd-vgc): Comment out help test. | |
| (fd-verbose): Likewise. | |
| (fd-vtls): Likewise. | |
| (femit-modules): Likewise. | |
| 2017-02-20 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-target.cc (Target::fieldalign): Adjust. | |
| 2017-02-19 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-lang.cc (d_option_data): Add fields to support other -M options. | |
| (d_init_options): Initialize them. | |
| (deps_add_target): New function. | |
| (deps_write): Support multiple targets and phony rules. | |
| (d_handle_option): Handle gcc -M style options. | |
| (d_parse_file): Likewise. | |
| * lang-specs.h: Add rules for -M style options. | |
| * lang.opt: Declare -M style options. | |
| 2017-02-19 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-lang.cc (is_system_module): Remove. | |
| (deps_write): Always ignore entrypoint module. | |
| 2017-02-19 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-lang.cc (write_one_dep): Remove. | |
| (deps_write): Update signature. | |
| 2017-02-19 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-lang.cc (iprefix_dir): Remove. | |
| (imultilib_dir): Remove. | |
| (std_inc): Remove. | |
| (d_option_data): New struct. | |
| (d_option): Declare. | |
| (d_init_options): Initialize d_option. | |
| (d_init): Update to use d_option. | |
| (d_handle_option): Likewise. | |
| (d_parse_file): Likewise. | |
| (deps_write): Update signature. | |
| 2017-02-19 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-lang.cc (d_handle_option): Call D_handle_option_auto. | |
| * lang.opt (Wunknown-pragmas): Turn on warning with -Wall. | |
| 2017-02-18 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-lang.cc (d_handle_option): Replace -fin with -fpreconditions; | |
| -fout with -fpostconditions. Handle -fswitch-errors. | |
| (d_post_options): Move setting of release code flags here. | |
| * lang.opt (fassert): Declare flag_assert. | |
| (fin): Make alias for -fpreconditions. | |
| (finvariants): Declare flag_invariants. | |
| (fout): Make alias for -fpostconditions. | |
| (fpostconditions): Declare. | |
| (fpreconditions): Declare. | |
| (fswitch-errors): Declare. | |
| 2017-02-18 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-objfile.cc (PragmaDeclaration::toObjFile): Warn about unknown | |
| pragmas only if -Wunknown-pragmas. | |
| 2017-02-18 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-glue.cc (Global::init): Initialize errorLimit to flag_max_errors. | |
| (verror): Don't halt program after invocation limit. | |
| * d-lang.cc (d_handle_option): Remove handling -fmax-error-messages. | |
| * lang.opt (fmax-error-messages): Remove option. | |
| 2017-02-18 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-decls.cc (get_symbol_decl): Handle -Wtemplates. | |
| * d-lang.cc (d_init_options): Remove setting flag_emit_templates. | |
| (d_handle_option): Replace handling -femit-templates with | |
| -fall-instantiations. | |
| (d_pushdecl): Remove checking for flag_emit_templates. | |
| * d-tree.h (D_DECL_IS_TEMPLATE): Remove macro. | |
| * lang.opt (flag_emit_templates): Remove variable. | |
| (fall-instantiations): Declare. | |
| (femit-templates): Make alias for -fall-instantiations. | |
| (Wtemplates): Declare. | |
| 2017-02-18 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * lang.opt (fassert): Update help text. | |
| (fin): Likewise. | |
| (finvariants): Likewise. | |
| (fout): Likewise. | |
| 2017-02-11 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-objfile.cc (VarDeclaration::toObjFile): Error if a variable covers | |
| more than half the address space. | |
| 2017-02-04 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-objfile.cc (Module::genmoduleinfo): Ignore symbol visibility when | |
| looking up module DSO symbols. | |
| 2017-01-29 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-lang.cc (d_handle_option): Handle -ftransition=all. | |
| * lang.opt (ftransition=all): Add compiler option. | |
| 2017-01-29 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-lang.cc (d_handle_option): Handle -ftransition=checkimports. | |
| * lang.opt (ftransition=checkimports): Add compiler option. | |
| 2017-01-28 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-lang.cc (d_handle_option): Handle -ftransition=import. | |
| * lang.opt (ftransition=import): Add compiler option. | |
| 2017-01-25 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * imports.cc (ImportVisitor::visit(EnumDeclaration)): New function. | |
| (ImportVisitor::visit(AggregateDeclaration)): New function. | |
| (ImportVisitor::visit(ClassDeclaration)): New function. | |
| (ImportVisitor::make_import): New function. | |
| (ImportVisitor::visit(AliasDeclaration)): Get decl for type alias. | |
| 2017-01-22 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * expr.cc (ExprVisitor::visit(EqualExp)): Don't use memcmp on arrays | |
| of structs that define xopEquals. | |
| 2017-01-15 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-spec.cc (lang_specific_driver): Add missing break. | |
| 2017-01-13 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-codegen.cc (build_class_instance): Don't check for void | |
| initialized fields. | |
| * expr.cc (ExprVisitor::visit(StructLiteralExp)): Likewise. | |
| 2017-01-11 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * typeinfo.cc (layout_classinfo): Use placement new to initialize | |
| typeinfo class declaration. | |
| 2017-01-02 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-codegen,cc (get_frame_for_symbol): Use fully qualified name in | |
| error message. | |
| (build_frame_type): Always add parameters to closure vars if the | |
| function has a contract function. | |
| (get_frameinfo): Likewise, always create a frame. | |
| * expr.cc (ExprVisitor::needs_dtor): New function. | |
| (ExprVisitor::lvalue_p): New function. | |
| (ExprVisitor::visit(AssignExp)): Check for dtor in array assignments. | |
| (ExprVisitor::visit(TypeidExp)): Cast result to expression type. | |
| Copyright (C) 2017 Free Software Foundation, Inc. | |
| Copying and distribution of this file, with or without modification, | |
| are permitted in any medium without royalty provided the copyright | |
| notice and this notice are preserved. |