Use checking forms of DECL_FUNCTION_CODE (PR 91421)
[gcc.git] / gcc / d / ChangeLog
1 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
2
3 PR middle-end/91421
4 * intrinsics.cc (maybe_set_intrinsic): Use set_decl_built_in_function.
5
6 2019-08-11 Iain Buclaw <ibuclaw@gdcproject.org>
7
8 PR d/90601
9 * d-convert.cc (convert_expr): Don't convert an expression to its
10 original front-end type before converting to its target type.
11
12 2019-08-10 Iain Buclaw <ibuclaw@gdcproject.org>
13
14 PR d/91238
15 * d-codegen.cc (build_address): If taking the address of a CALL_EXPR,
16 wrap it in a TARGET_EXPR.
17
18 2019-08-10 Iain Buclaw <ibuclaw@gdcproject.org>
19
20 PR d/90893
21 * runtime.cc (enum libcall_type): Rename to...
22 (enum d_libcall_type): ...this.
23 (get_libcall_type): Use d_libcall_type.
24 (build_libcall_decl): Likewise.
25
26 2019-06-16 Iain Buclaw <ibuclaw@gdcproject.org>
27
28 PR d/90559
29 * d-target.cc (Target::_init): Reduce max static data size to INT_MAX.
30
31 2019-06-16 Iain Buclaw <ibuclaw@gdcproject.org>
32
33 PR d/90651
34 * typeinfo.cc (object_module): New variable.
35 (make_frontend_typeinfo): Update signature. Set temporary on
36 generated TypeInfo classes.
37 (create_tinfo_types): Set object_module. Move generation of front-end
38 typeinfo into ...
39 (create_frontend_tinfo_types): ... New function.
40 (layout_typeinfo): Call create_frontend_tinfo_types.
41 (layout_classinfo): Likewise.
42 (layout_cpp_typeinfo): Likewise.
43 (create_typeinfo): Likewise.
44
45 2019-06-11 Richard Biener <rguenthe@suse.de>
46
47 d/90778
48 * toir.cc (pop_label): Only queue labels in a vector.
49 (cmp_labels): Label decl comparator.
50 (pop_binding_level): Pop labels in DECL_UID order to avoid
51 debug info differences.
52
53 2019-05-24 Nathan Sidwell <nathan@acm.org>
54
55 * types.cc (fixup_anonymous_offset): Use IDENTIFIER_ANON_P.
56 (layout_aggregate_members): Use make_anon_name.
57
58 2019-05-16 Martin Sebor <msebor@redhat.com>
59
60 * d-builtins.cc (d_init_builtins): Quote keywords, operators,
61 and types in diagnostics.
62 * d-codegen.cc (get_array_length): Same. Replace can't with cannot.
63 * d-convert.cc (convert_expr): Same.
64 * d-frontend.cc (getTypeInfoType): Quote an option name in
65 a diagnostic.
66 * d-lang.cc (d_handle_option): Same.
67 (d_parse_file): Same.
68 * decl.cc: Remove a trailing period from a diagnostic.
69 * expr.cc: Use a directive for an apostrophe.
70 * toir.cc: Quote keywords, operators, and types in diagnostics.
71 * typeinfo.cc (build_typeinfo): Quote an option name in a diagnostic.
72
73 2019-04-25 Johannes Pfau <johannespfau@gmail.com>
74
75 * config-lang.in: Do not add target_libs if phobos is disabled.
76
77 2019-04-23 Iain Buclaw <ibuclaw@gdcproject.org>
78 Robin Dapp <rdapp@linux.ibm.com>
79
80 * typeinfo.cc (create_typeinfo): Write typeinfo flags as uint.
81
82 2019-04-23 Iain Buclaw <ibuclaw@gdcproject.org>
83
84 * d-builtins.cc (d_init_versions): Add D_BetterC, D_ModuleInfo,
85 D_Exceptions, D_TypeInfo as predefined version conditions.
86 * d-codegen.cc (build_bounds_condition): Generate trap if D asserts
87 are turned off.
88 * d-frontend.cc (getTypeInfoType): Add error when -fno-rtti is set.
89 * d-lang.cc (d_init_options): Initialize new front-end options.
90 (d_handle_option): Handle -fdruntime, -fexceptions, and -frtti.
91 (d_post_options): Turn off D runtime features if -fno-druntime is set.
92 * d-spec.cc (lang_specific_driver): Handle -fdruntime.
93 * d-tree.h (have_typeinfo_p): Add prototype.
94 (build_typeinfo): Update prototype.
95 * decl.cc (DeclVisitor::visit(StructDeclaration)): Create typeinfo
96 only if TypeInfo exists.
97 (DeclVisitor::visit(ClassDeclaration)): Likewise.
98 (DeclVisitor::visit(InterfaceDeclaration)): Likewise.
99 (DeclVisitor::visit(EnumDeclaration)): Likewise.
100 * expr.cc: Update all calls to build_typeinfo.
101 * gdc.texi (Runtime Options): Document -fdruntime and -frtti.
102 * lang.opt: Add -fdruntime and -frtti.
103 * modules.cc (build_module_tree): Create module info only if
104 ModuleInfo exists.
105 * toir.cc (IRVisitor::visit(ThrowStatement)): Update test for
106 -fno-exceptions.
107 * typeinfo.cc (create_tinfo_types): Build internal typeinfo classes
108 only if Object exists.
109 (have_typeinfo_p): New function.
110 (class TypeInfoVisitor): Update all calls to build_typeinfo.
111 (build_typeinfo): Add error when -fno-rtti is set.
112
113 2019-04-21 Iain Buclaw <ibuclaw@gdcproject.org>
114
115 * decl.cc (DeclVisitor::visit(Import)): Set semanticRun after
116 completion, guard against being called more than once.
117 (DeclVisitor::visit(StructDeclaration)): Likewise.
118 (DeclVisitor::visit(ClassDeclaration)): Likewise.
119 (DeclVisitor::visit(InterfaceDeclaration)): Likewise.
120 (DeclVisitor::visit(VarDeclaration)): Likewise.
121 (DeclVisitor::visit(TypeInfoDeclaration)): Likewise.
122
123 2019-04-21 Iain Buclaw <ibuclaw@gdcproject.org>
124
125 * modules.cc (register_module_decl): Don't register unittests against
126 the ModuleInfo symbol for -fbuilding-libphobos-tests.
127
128 2019-04-17 Iain Buclaw <ibuclaw@gdcproject.org>
129
130 * d-system.h (POSIX): Define unix as POSIX.
131 (INT32_MAX, INT32_MIN, INT64_MIN, UINT32_MAX, UINT64_MAX): Provide
132 fallback definitions.
133
134 2019-04-16 Iain Buclaw <ibuclaw@gdcproject.org>
135
136 * Make-lang.in (d.mostyclean): Clean idgen and impcvgen.
137 (d/idgen): Rename to d/idgen$(build_exeext), add BUILD_LIBDEPS.
138 (d/impcvgen): Rename to d/impcvgen$(build_exeext), add BUILD_LIBDEPS.
139 (d/id.c): Call idgen$(build_exeext).
140 (d/impcnvtab.c): Call impcvgen$(build_exeext).
141
142 2019-04-14 Johannes Pfau <johannespfau@gmail.com>
143 PR d/87799
144 * d-system.h (_mkdir): Forward _mkdir on MinGW to mkdir in system.h.
145
146 2019-04-12 Iain Buclaw <ibuclaw@gdcproject.org>
147
148 * d-tree.h (DECL_IN_UNITTEST_CONDITION_P): Define.
149 * decl.cc (DeclVisitor): Add in_version_unittest_ field.
150 (DeclVisitor::visit(ConditionalDeclaration)): New override.
151 (DeclVisitor::visit(FuncDeclaration)): Set
152 DECL_IN_UNITTEST_CONDITION_P.
153 * lang.opt (-fbuilding-libphobos-tests): Add option.
154 * modules.cc (current_testing_module): New static variable.
155 (build_module_tree): Generate second moduleinfo symbol to hold
156 reference to unittests if flag_building_libphobos_tests.
157 (register_module_decl): Check DECL_IN_UNITTEST_CONDITION_P to decide
158 which moduleinfo the decl should be registered against.
159
160 2019-03-31 Iain Buclaw <ibuclaw@gdcproject.org>
161
162 PR d/88462
163 * modules.cc (layout_moduleinfo_fields): Properly align ModuleInfo,
164 instead of forcing alignment to be 1.
165
166 2019-03-21 Iain Buclaw <ibuclaw@gdcproject.org>
167
168 PR d/89017
169 * d-codegen.cc (d_decl_context): Skip over template instances when
170 finding the context.
171 * decl.cc (DeclVisitor::visit(TemplateDeclaration)): New override.
172 (build_type_decl): Include parameters in name of template types.
173
174 2019-03-13 Iain Buclaw <ibuclaw@gdcproject.org>
175
176 PR d/88957
177 * expr.cc (ExprVisitor::visit(VectorArrayExp)): New override.
178
179 2019-03-12 Iain Buclaw <ibuclaw@gdcproject.org>
180
181 PR d/87866
182 * d-system.h (realpath): Redefine as lrealpath.
183
184 2019-03-12 Iain Buclaw <ibuclaw@gdcproject.org>
185
186 * d-lang.cc (d_init_options): Set global.params.cplusplus to C++14.
187 * d-target.cc (Target::cppFundamentalType): New method.
188
189 2019-03-09 Iain Buclaw <ibuclaw@gdcproject.org>
190
191 PR d/89041
192 * d-codegen.cc (get_frame_for_symbol): Delegate literals defined in
193 global scope don't have a frame pointer.
194
195 2019-03-01 Iain Buclaw <ibuclaw@gdcproject.org>
196
197 * d-builtins.cc (d_init_versions): Add CppRuntime_Gcc as predefined
198 version condition.
199
200 2019-02-14 Maya Rashish <coypu@sdf.org>
201
202 * d-system.h: NetBSD is POSIX.
203
204 2019-02-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
205
206 PR d/87864
207 * lang.opt (dstartfiles): New option.
208 * d-spec.cc (need_spec): New variable.
209 (lang_specific_driver) <OPT_dstartfiles>: Enable need_spec.
210 (lang_specific_pre_link): Also load libgphobos.spec if need_spec.
211
212 2019-01-26 Iain Buclaw <ibuclaw@gdcproject.org>
213
214 PR d/89042
215 * decl.cc (DeclVisitor::visit(VarDeclaration)): Don't assert if
216 handling a void initialized manifest constant.
217
218 2019-01-21 Iain Buclaw <ibuclaw@gdcproject.org>
219
220 * d-frontend.cc (Compiler::paintAsType): Update for new signature.
221
222 2019-01-20 Iain Buclaw <ibuclaw@gdcproject.org>
223
224 * d-builtins.cc (d_init_versions): Check value of
225 STACK_GROWS_DOWNWARD.
226
227 2019-01-20 Iain Buclaw <ibuclaw@gdcproject.org>
228
229 * d-codegen.cc (identity_compare_p): Return false if seen built-in
230 type with padding.
231 (build_float_identity): Moved here from expr.cc.
232 (lower_struct_comparison): Handle real and complex types.
233 * d-tree.h (build_float_identity): New.
234 * expr.cc (build_float_identity): Move to d-codegen.cc.
235
236 2019-01-20 Johannes Pfau <johannespfau@gmail.com>
237
238 * expr.cc (build_float_identity): New function.
239 (ExprVisitor::visit(IdentityExp)): Add support for complex types.
240
241 2019-01-16 Iain Buclaw <ibuclaw@gdcproject.org>
242
243 PR d/87824
244 * d-lang.cc (d_post_options): Disable implicit
245 -forder-blocks-and-partition.
246
247 2019-01-16 Iain Buclaw <ibuclaw@gdcproject.org>
248
249 * d-codegen.cc (build_typeof_null_value): New function.
250 * d-tree.h (build_typeof_null_value): Declare.
251 * d-convert.cc (convert_expr): Use build_typeof_null_value.
252 * expr.cc (ExprVisitor::visit(NullExp)): Likewise.
253
254 2019-01-15 Richard Sandiford <richard.sandiford@arm.com>
255
256 PR inline-asm/52813
257 * lang.opt (Wdeprecated): Reference common.opt instead of c.opt.
258
259 2019-01-12 Iain Buclaw <ibuclaw@gdcproject.org>
260
261 * README.gcc: New file.
262
263 2019-01-01 Jakub Jelinek <jakub@redhat.com>
264
265 Update copyright years.
266
267 * gdc.texi: Bump @copyrights-d year.
268 \f
269 Copyright (C) 2019 Free Software Foundation, Inc.
270
271 Copying and distribution of this file, with or without modification,
272 are permitted in any medium without royalty provided the copyright
273 notice and this notice are preserved.