Daily bump.
[platform/upstream/gcc.git] / gcc / d / ChangeLog
1 2020-06-02  Iain Buclaw  <ibuclaw@gdcproject.org>
2
3         * decl.cc (DeclVisitor::build_dsymbol): New function.
4         (DeclVisitor::visit (TupleDeclaration *)): Use build_dsymbol to
5         traverse AST instead of accept.
6         (DeclVisitor::visit (AttribDeclaration *)): Likewise.
7         (DeclVisitor::visit (Nspace *)): Likewise.
8         (DeclVisitor::visit (TemplateDeclaration *)): Likewise.
9         (DeclVisitor::visit (TemplateInstance *)): Likewise.
10         (DeclVisitor::visit (TemplateMixin *)): Likewise.
11         (DeclVisitor::visit (StructDeclaration *)): Likewise.
12         (DeclVisitor::visit (ClassDeclaration *)): Likewise.
13         (DeclVisitor::visit (InterfaceDeclaration *)): Likewise.
14         (DeclVisitor::visit (VarDeclaration *)): Likewise.
15         (build_decl_tree): Likewise.
16
17 2020-06-02  Iain Buclaw  <ibuclaw@gdcproject.org>
18
19         * d-builtins.cc (build_frontend_type): Handle struct fields with NULL
20         DECL_NAME.  Use byte_position to get the real field offset.
21
22 2020-05-06  Iain Buclaw  <ibuclaw@gdcproject.org>
23
24         PR d/94970
25         * d-codegen.cc (force_target_expr): Move create_temporary_var
26         implementation inline here.
27         (create_temporary_var): Remove.
28         (maybe_temporary_var): Remove.
29         (bind_expr): Remove.
30         * d-convert.cc (d_array_convert): Use build_local_temp to generate
31         temporaries, and generate its assignment.
32         * d-tree.h (create_temporary_var): Remove.
33         (maybe_temporary_var): Remove.
34         (d_array_convert): Remove vars argument.
35         * expr.cc (ExprVisitor::visit (CatExp *)): Use build_local_temp to
36         generate temporaries, don't wrap them in a BIND_EXPR.
37         (ExprVisitor::visit (NewExp *)): Likewise.
38
39 2020-04-30  Iain Buclaw  <ibuclaw@gdcproject.org>
40
41         * gdc.texi (Options for Linking): Clarify usage of -defaultlib= and
42         -debuglib= options.
43
44 2020-04-29  Iain Buclaw  <ibuclaw@gdcproject.org>
45
46         * d-codegen.cc (d_decl_context): Don't include module in the name of
47         class and struct types that aren't extern(D).
48
49 2020-04-27  Iain Buclaw  <ibuclaw@gdcproject.org>
50
51         PR d/94777
52         * d-builtins.cc (build_frontend_type): Set parent for generated
53         fields of built-in types.
54         * d-codegen.cc (argument_reference_p): Rename to ...
55         (parameter_reference_p): ... this.
56         (type_passed_as): Rename to ...
57         (parameter_type): ... this.  Make TREE_ADDRESSABLE types restrict.
58         (d_build_call): Move handling of non-POD types here from ...
59         * d-convert.cc (convert_for_argument): ... here.
60         * d-tree.h (argument_reference_p): Rename declaration to ...
61         (parameter_reference_p): ... this.
62         (type_passed_as): Rename declaration to ...
63         (parameter_type): ... this.
64         * types.cc (TypeVisitor::visit (TypeFunction *)): Update caller.
65
66 2020-04-26  Iain Buclaw  <ibuclaw@gdcproject.org>
67
68         * decl.cc (get_symbol_decl): Set DECL_DECLARED_INLINE_P or
69         DECL_UNINLINABLE for declarations with pragma(inline).
70         * toir.cc (IRVisitor::visit (GccAsmStatement *)): Set ASM_INLINE_P if
71         in function decorated with pragma(inline).
72
73 2020-04-25  Iain Buclaw  <ibuclaw@gdcproject.org>
74
75         * intrinsics.cc (expand_intrinsic_toprec): New function.
76         (maybe_expand_intrinsic): Handle toPrec intrinsics.
77         * intrinsics.def (TOPRECF, TOPREC, TOPRECL): Add toPrec intrinsics.
78
79 2020-04-24  Iain Buclaw  <ibuclaw@gdcproject.org>
80
81         * d-spec.cc (need_phobos): Remove.
82         (lang_specific_driver): Replace need_phobos with phobos_library.
83         Reorder -debuglib and -defaultlib to have precedence over libphobos.
84         (lang_specific_pre_link): Remove test for need_phobos.
85
86 2020-04-19  Iain Buclaw  <ibuclaw@gdcproject.org>
87
88         PR d/94609
89         * d-codegen.cc (argument_reference_p): Don't check TREE_ADDRESSABLE.
90         (type_passed_as): Build reference type if TREE_ADDRESSABLE.
91         * d-convert.cc (convert_for_argument): Build explicit TARGET_EXPR if
92         needed for arguments passed by invisible reference.
93         * types.cc (TypeVisitor::visit (TypeStruct *)): Mark all structs that
94         are not POD as TREE_ADDRESSABLE.
95
96 2020-04-13  Iain Buclaw  <ibuclaw@gdcproject.org>
97
98         * Make-lang.in (D_FRONTEND_OBJS): Remove d/argtypes.o.
99         * d-target.cc (Target::toArgTypes): New function.
100
101 2020-04-10  Iain Buclaw  <ibuclaw@gdcproject.org>
102
103         * d-spec.cc (LIBDRUNTIME): Remove.
104         (LIBDRUNTIME_PROFILE): Remove.
105         (lang_specific_driver): Don't link in libgdruntime.
106
107 2020-04-07  Iain Buclaw  <ibuclaw@gdcproject.org>
108
109         PR d/94425
110         * toir.cc (IRVisitor::visit (GccAsmStatement *)): Set ASM_VOLATILE_P
111         on all asm statements.
112
113 2020-04-01  Iain Buclaw  <ibuclaw@gdcproject.org>
114
115         PR d/90136
116         * d-attribs.cc: Include dmd/attrib.h.
117         (build_attributes): Redeclare as static.
118         (apply_user_attributes): New function.
119         * d-tree.h (class UserAttributeDeclaration): Remove.
120         (build_attributes): Remove.
121         (apply_user_attributes): Declare.
122         (finish_aggregate_type): Remove attrs argument.
123         * decl.cc (get_symbol_decl): Merge declaration prototypes with
124         definitions.  Use apply_user_attributes.
125         * modules.cc (layout_moduleinfo_fields): Remove last argument to
126         finish_aggregate_type.
127         * typeinfo.cc (layout_classinfo_interfaces): Likewise.
128         * types.cc (layout_aggregate_members): Likewise.
129         (finish_aggregate_type): Remove attrs argument.
130         (TypeVisitor::visit (TypeEnum *)): Use apply_user_attributes.
131         (TypeVisitor::visit (TypeStruct *)): Remove last argument to
132         finish_aggregate_type.  Use apply_user_attributes.
133         (TypeVisitor::visit (TypeClass *)): Likewise.
134
135 2020-03-31  Iain Buclaw  <ibuclaw@gdcproject.org>
136
137         * d-attribs.cc (d_langhook_common_attribute_table): Add always_inline.
138         (handle_always_inline_attribute): New function.
139
140 2020-03-31  Iain Buclaw  <ibuclaw@gdcproject.org>
141
142         PR d/94424
143         * d-codegen.cc (build_alignment_field): Remove.
144         (build_struct_literal): Don't insert alignment padding.
145         * expr.cc (ExprVisitor::visit (AssignExp *)): Call memset before
146         assigning struct literals.
147
148 2020-03-31  Iain Buclaw  <ibuclaw@gdcproject.org>
149
150         * typeinfo.cc (TypeInfoVisitor::internal_reference): Call
151         d_comdat_linkage on generated decl.
152
153 2020-03-22  Iain Buclaw  <ibuclaw@gdcproject.org>
154
155         PR d/93038
156         * d-lang.cc (deps_write): Generate phony targets for content imported
157         files.
158
159 2020-03-22  Iain Buclaw  <ibuclaw@gdcproject.org>
160
161         PR d/93038
162         * d-lang.cc (deps_write): Add content imported files to the make
163         dependency list.
164
165 2020-03-21  Iain Buclaw  <ibuclaw@gdcproject.org>
166
167         PR d/94240
168         * typeinfo.cc (class TypeInfoVisitor): Replace type_ field with decl_.
169         (TypeInfoVisitor::TypeInfoVisitor): Set decl_.
170         (TypeInfoVisitor::result): Update.
171         (TypeInfoVisitor::internal_reference): New function.
172         (TypeInfoVisitor::layout_string): Use internal_reference.
173         (TypeInfoVisitor::visit (TypeInfoTupleDeclaration *)): Likewise.
174         (layout_typeinfo): Construct TypeInfoVisitor with typeinfo decl.
175         (layout_classinfo): Likewise.
176
177 2020-03-20  Iain Buclaw  <ibuclaw@gdcproject.org>
178
179         PR lto/91027
180         * d-tree.h (struct GTY): Add daggregate field.
181         (IDENTIFIER_DAGGREGATE): Define.
182         (d_mangle_decl): Add declaration.
183         * decl.cc (mangle_decl): Remove static linkage, rename to...
184         (d_mangle_decl): ...this, update all callers.
185         * types.cc (merge_aggregate_types): New function.
186         (TypeVisitor::visit (TypeStruct *)): Call merge_aggregate_types, set
187         IDENTIFIER_DAGGREGATE and TYPE_CXX_ODR_P.
188         (TypeVisitor::visit (TypeClass *)): Likewise.
189
190 2020-03-18  Jakub Jelinek  <jakub@redhat.com>
191
192         * expr.cc (ExprVisitor::visit (CatAssignExp *)): Fix up duplicated
193         word issue in a comment.
194         * d-target.cc (Target::FPTypeProperties<T>::max): Likewise.
195
196 2020-03-16  Iain Buclaw  <ibuclaw@gdcproject.org>
197
198         PR d/92309
199         * types.cc (fixup_anonymous_offset): Don't set DECL_FIELD_OFFSET on
200         anonymous fields.
201
202 2020-03-16  Iain Buclaw  <ibuclaw@gdcproject.org>
203
204         PR d/92216
205         * decl.cc (make_thunk): Don't set TREE_PUBLIC on thunks if the target
206         function is external to the current compilation.
207
208 2020-01-01  Jakub Jelinek  <jakub@redhat.com>
209
210         Update copyright years.
211
212         * gdc.texi: Bump @copyrights-d year.
213 \f
214 Copyright (C) 2020 Free Software Foundation, Inc.
215
216 Copying and distribution of this file, with or without modification,
217 are permitted in any medium without royalty provided the copyright
218 notice and this notice are preserved.