| 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. |