| 2021-04-08 Release Manager |
| |
| * GCC 10.3.0 released. |
| |
| 2021-03-03 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| Backported from master: |
| 2021-03-03 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| PR d/99337 |
| * dmd/dmodule.c (checkModFileAlias): Don't read past buffer in |
| comparison. |
| |
| 2021-02-02 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| Backported from master: |
| 2021-02-02 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| PR d/98921 |
| * dmd/dmangle.c (Mangler::visit (TypeSArray *)): Use buf->print |
| to format integer value. |
| (Mangler::visit (TypeIdentifier *)): Likewise. |
| (Mangler::toBuffer): Likewise. |
| (Mangler::visit (IntegerExp *)): Likewise. |
| (Mangler::visit (StringExp *)): Likewise. |
| (Mangler::visit (ArrayLiteralExp *)): Likewise. |
| (Mangler::visit (AssocArrayLiteralExp *)): Likewise. |
| (Mangler::visit (StructLiteralExp *)): Likewise. |
| * dmd/root/outbuffer.c (OutBuffer::print): New function. |
| * dmd/root/outbuffer.h (OutBuffer::print): Declare. |
| |
| 2020-12-15 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| Backported from master: |
| 2020-12-15 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| PR d/98277 |
| * decl.cc (DeclVisitor::visit (VarDeclaration *)): Move setting of |
| DECL_INITIAL for manifest constants to ... |
| (get_symbol_decl): ... here. |
| |
| 2020-11-22 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| Backported from master: |
| 2020-11-22 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| PR d/97889 |
| * expr.cc (ExprVisitor::visit (CatAssignExp *)): Enforce LTR order of |
| evaluation on left and right hand side expressions. |
| |
| 2020-11-18 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| Backported from master: |
| 2020-11-18 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| PR d/97843 |
| * d-codegen.cc (build_assign): Evaluate TARGET_EXPR before use in |
| the right hand side of an assignment. |
| * expr.cc (ExprVisitor::visit (CatAssignExp *)): Force a TARGET_EXPR |
| on the element to append if it is a CALL_EXPR. |
| |
| 2020-11-18 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| Backported from master: |
| 2020-11-18 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| PR d/97842 |
| * dmd/cond.c (StaticIfCondition::include): Return error if condition |
| expression is unset. |
| * dmd/mtype.c (TypeTypeof::resolve): Return error if scope is unset. |
| |
| 2020-11-18 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| Backported from master: |
| 2020-11-13 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| * intrinsics.cc (expand_intrinsic_copysign): Explicitly determine |
| which built-in copysign function to call. |
| |
| 2020-11-18 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| Backported from master: |
| 2020-10-27 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| * dmd/dtemplate.c (TemplateInstance::semantic): Propagate the root |
| module where the instantiated template should belong from the instance |
| to all member scopes. |
| |
| 2020-10-12 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| Backported from master: |
| 2020-10-12 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| * dmd/declaration.c (AliasDeclaration::aliasSemantic): Apply storage |
| class and protection attributes. |
| |
| 2020-09-04 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| Backported from master: |
| 2020-09-04 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| PR d/96924 |
| * expr.cc (ExprVisitor::visit (CatAssignExp *)): Don't force |
| temporaries needlessly. |
| |
| 2020-08-30 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| Backported from master: |
| 2020-08-26 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| PR d/96157 |
| * d-codegen.cc (d_build_call): Handle TREE_ADDRESSABLE static arrays. |
| * types.cc (make_array_type): Propagate TREE_ADDRESSABLE from base |
| type to static array. |
| |
| 2020-08-30 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| Backported from master: |
| 2020-08-26 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| * dmd/globals.h (Global): Add recursionLimit. |
| * dmd/dmacro.c (Macro::expand): Limit recursive expansion to |
| global.recursionLimit. |
| * dmd/dtemplate.c (deduceType): Likewise. |
| (TemplateInstance::tryExpandMembers): Likewise. |
| (TemplateInstance::trySemantic3): Likewise. |
| (TemplateMixin::semantic): Likewise. |
| * dmd/expressionsem.c (ExpressionSemanticVisitor::visit): Likewise. |
| * dmd/mtype.c (Type::noMember): Likewise. |
| (TypeFunction::semantic): Likewise. |
| * dmd/optimize.c (Expression_optimize): Likewise. |
| |
| 2020-08-30 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| Backported from master: |
| 2020-08-26 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| * d-lang.cc (d_parse_file): Use read() to load contents from stdin, |
| allow the front-end to free the memory after parsing. |
| * dmd/func.c (FuncDeclaration::semantic): Use module filename if |
| searchPath returns NULL. |
| |
| 2020-08-20 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| PR d/96250 |
| * dmd/expressionsem.c (ExpressionSemanticVisitor::visit(TypeExp)): |
| Fix cast from Expression to VarExp. |
| |
| 2020-08-20 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| PR d/96250 |
| * dmd/dstruct.c (StructDeclaration::semantic): Error if redefinition |
| of struct exists in compilation. |
| * dmd/expressionsem.c (ExpressionSemanticVisitor::visit(TypeExp)): |
| Rewrite resolved field variables as 'this.var' before semantic. |
| * dmd/parse.c (Parser::parseUnaryExp): Mark '(type) una_exp' as a |
| parenthesized expression. |
| |
| 2020-08-20 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| Backported from master: |
| 2020-08-20 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| * dmd/ctfeexpr.c (isCtfeValueValid): Return true for array literals as |
| well as structs. |
| * dmd/dinterpret.c: Don't reinterpret static arrays into dynamic. |
| |
| 2020-08-20 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| Backported from master: |
| 2020-08-03 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| PR d/96254 |
| * d-codegen.cc (error_no_frame_access): New. |
| (get_frame_for_symbol): Use fdparent name in error message. |
| (get_framedecl): Replace call to assert with error. |
| * d-tree.h (error_no_frame_access): Declare. |
| * decl.cc (get_decl_tree): Detect recursion and error. |
| |
| 2020-08-18 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| Backported from master: |
| 2020-08-18 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| PR d/96301 |
| * decl.cc (DeclVisitor::visit (FuncDeclaration *)): Only return |
| non-trivial structs by invisible reference. |
| |
| 2020-08-01 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| Backported from master: |
| 2020-07-30 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| PR d/96140 |
| * intrinsics.cc (expand_intrinsic_vaarg): Handle ref parameters as |
| arguments to va_arg(). |
| (expand_intrinsic_vastart): Handle ref parameters as arguments to |
| va_start(). |
| |
| 2020-07-23 Release Manager |
| |
| * GCC 10.2.0 released. |
| |
| 2020-06-28 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| Backported from master: |
| 2020-06-28 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| * dmd/cond.c (lowerArrayAggregate): Directly use the elements of the |
| array for TupleExp creation. |
| (lowerNonArrayAggregate): Inline creation of foreach range indexes. |
| |
| 2020-06-26 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| Backported from master: |
| 2020-06-25 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| PR d/95250 |
| * dmd/expressionsem.c (class ExpressionSemanticVisitor): Return early |
| if error occurred during semantic of DivExp. |
| |
| 2020-06-26 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| Backported from master: |
| 2020-06-25 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| PR d/95173 |
| * d-attribs.cc (uda_attribute_p): Don't search target attribute table |
| if NULL. |
| |
| 2020-06-02 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| * d-builtins.cc (build_frontend_type): Handle struct fields with NULL |
| DECL_NAME. Use byte_position to get the real field offset. |
| |
| 2020-05-17 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| Backport from mainline |
| 2020-05-06 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| PR d/94970 |
| * d-codegen.cc (force_target_expr): Move create_temporary_var |
| implementation inline here. |
| (create_temporary_var): Remove. |
| (maybe_temporary_var): Remove. |
| (bind_expr): Remove. |
| * d-convert.cc (d_array_convert): Use build_local_temp to generate |
| temporaries, and generate its assignment. |
| * d-tree.h (create_temporary_var): Remove. |
| (maybe_temporary_var): Remove. |
| (d_array_convert): Remove vars argument. |
| * expr.cc (ExprVisitor::visit (CatExp *)): Use build_local_temp to |
| generate temporaries, don't wrap them in a BIND_EXPR. |
| (ExprVisitor::visit (NewExp *)): Likewise. |
| |
| 2020-05-07 Release Manager |
| |
| * GCC 10.1.0 released. |
| |
| 2020-04-30 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| * gdc.texi (Options for Linking): Clarify usage of -defaultlib= and |
| -debuglib= options. |
| |
| 2020-04-29 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| * d-codegen.cc (d_decl_context): Don't include module in the name of |
| class and struct types that aren't extern(D). |
| |
| 2020-04-27 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| PR d/94777 |
| * d-builtins.cc (build_frontend_type): Set parent for generated |
| fields of built-in types. |
| * d-codegen.cc (argument_reference_p): Rename to ... |
| (parameter_reference_p): ... this. |
| (type_passed_as): Rename to ... |
| (parameter_type): ... this. Make TREE_ADDRESSABLE types restrict. |
| (d_build_call): Move handling of non-POD types here from ... |
| * d-convert.cc (convert_for_argument): ... here. |
| * d-tree.h (argument_reference_p): Rename declaration to ... |
| (parameter_reference_p): ... this. |
| (type_passed_as): Rename declaration to ... |
| (parameter_type): ... this. |
| * types.cc (TypeVisitor::visit (TypeFunction *)): Update caller. |
| |
| 2020-04-26 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| * decl.cc (get_symbol_decl): Set DECL_DECLARED_INLINE_P or |
| DECL_UNINLINABLE for declarations with pragma(inline). |
| * toir.cc (IRVisitor::visit (GccAsmStatement *)): Set ASM_INLINE_P if |
| in function decorated with pragma(inline). |
| |
| 2020-04-25 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| * intrinsics.cc (expand_intrinsic_toprec): New function. |
| (maybe_expand_intrinsic): Handle toPrec intrinsics. |
| * intrinsics.def (TOPRECF, TOPREC, TOPRECL): Add toPrec intrinsics. |
| |
| 2020-04-24 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| * d-spec.cc (need_phobos): Remove. |
| (lang_specific_driver): Replace need_phobos with phobos_library. |
| Reorder -debuglib and -defaultlib to have precedence over libphobos. |
| (lang_specific_pre_link): Remove test for need_phobos. |
| |
| 2020-04-19 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| PR d/94609 |
| * d-codegen.cc (argument_reference_p): Don't check TREE_ADDRESSABLE. |
| (type_passed_as): Build reference type if TREE_ADDRESSABLE. |
| * d-convert.cc (convert_for_argument): Build explicit TARGET_EXPR if |
| needed for arguments passed by invisible reference. |
| * types.cc (TypeVisitor::visit (TypeStruct *)): Mark all structs that |
| are not POD as TREE_ADDRESSABLE. |
| |
| 2020-04-13 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| * Make-lang.in (D_FRONTEND_OBJS): Remove d/argtypes.o. |
| * d-target.cc (Target::toArgTypes): New function. |
| |
| 2020-04-10 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| * d-spec.cc (LIBDRUNTIME): Remove. |
| (LIBDRUNTIME_PROFILE): Remove. |
| (lang_specific_driver): Don't link in libgdruntime. |
| |
| 2020-04-07 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| PR d/94425 |
| * toir.cc (IRVisitor::visit (GccAsmStatement *)): Set ASM_VOLATILE_P |
| on all asm statements. |
| |
| 2020-04-01 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| PR d/90136 |
| * d-attribs.cc: Include dmd/attrib.h. |
| (build_attributes): Redeclare as static. |
| (apply_user_attributes): New function. |
| * d-tree.h (class UserAttributeDeclaration): Remove. |
| (build_attributes): Remove. |
| (apply_user_attributes): Declare. |
| (finish_aggregate_type): Remove attrs argument. |
| * decl.cc (get_symbol_decl): Merge declaration prototypes with |
| definitions. Use apply_user_attributes. |
| * modules.cc (layout_moduleinfo_fields): Remove last argument to |
| finish_aggregate_type. |
| * typeinfo.cc (layout_classinfo_interfaces): Likewise. |
| * types.cc (layout_aggregate_members): Likewise. |
| (finish_aggregate_type): Remove attrs argument. |
| (TypeVisitor::visit (TypeEnum *)): Use apply_user_attributes. |
| (TypeVisitor::visit (TypeStruct *)): Remove last argument to |
| finish_aggregate_type. Use apply_user_attributes. |
| (TypeVisitor::visit (TypeClass *)): Likewise. |
| |
| 2020-03-31 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| * d-attribs.cc (d_langhook_common_attribute_table): Add always_inline. |
| (handle_always_inline_attribute): New function. |
| |
| 2020-03-31 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| PR d/94424 |
| * d-codegen.cc (build_alignment_field): Remove. |
| (build_struct_literal): Don't insert alignment padding. |
| * expr.cc (ExprVisitor::visit (AssignExp *)): Call memset before |
| assigning struct literals. |
| |
| 2020-03-31 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| * typeinfo.cc (TypeInfoVisitor::internal_reference): Call |
| d_comdat_linkage on generated decl. |
| |
| 2020-03-22 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| PR d/93038 |
| * d-lang.cc (deps_write): Generate phony targets for content imported |
| files. |
| |
| 2020-03-22 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| PR d/93038 |
| * d-lang.cc (deps_write): Add content imported files to the make |
| dependency list. |
| |
| 2020-03-21 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| PR d/94240 |
| * typeinfo.cc (class TypeInfoVisitor): Replace type_ field with decl_. |
| (TypeInfoVisitor::TypeInfoVisitor): Set decl_. |
| (TypeInfoVisitor::result): Update. |
| (TypeInfoVisitor::internal_reference): New function. |
| (TypeInfoVisitor::layout_string): Use internal_reference. |
| (TypeInfoVisitor::visit (TypeInfoTupleDeclaration *)): Likewise. |
| (layout_typeinfo): Construct TypeInfoVisitor with typeinfo decl. |
| (layout_classinfo): Likewise. |
| |
| 2020-03-20 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| PR lto/91027 |
| * d-tree.h (struct GTY): Add daggregate field. |
| (IDENTIFIER_DAGGREGATE): Define. |
| (d_mangle_decl): Add declaration. |
| * decl.cc (mangle_decl): Remove static linkage, rename to... |
| (d_mangle_decl): ...this, update all callers. |
| * types.cc (merge_aggregate_types): New function. |
| (TypeVisitor::visit (TypeStruct *)): Call merge_aggregate_types, set |
| IDENTIFIER_DAGGREGATE and TYPE_CXX_ODR_P. |
| (TypeVisitor::visit (TypeClass *)): Likewise. |
| |
| 2020-03-18 Jakub Jelinek <jakub@redhat.com> |
| |
| * expr.cc (ExprVisitor::visit (CatAssignExp *)): Fix up duplicated |
| word issue in a comment. |
| * d-target.cc (Target::FPTypeProperties<T>::max): Likewise. |
| |
| 2020-03-16 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| PR d/92309 |
| * types.cc (fixup_anonymous_offset): Don't set DECL_FIELD_OFFSET on |
| anonymous fields. |
| |
| 2020-03-16 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| PR d/92216 |
| * decl.cc (make_thunk): Don't set TREE_PUBLIC on thunks if the target |
| function is external to the current compilation. |
| |
| 2020-01-01 Jakub Jelinek <jakub@redhat.com> |
| |
| Update copyright years. |
| |
| * gdc.texi: Bump @copyrights-d year. |
| |
| Copyright (C) 2020 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. |