parse.c (decode_statement): Suppress "Unclassifiable statement" error if previous...
[official-gcc.git] / gcc / d / ChangeLog-2014
blobcf8c8ac2c064e24acd97d469f16231018bbcf0aa
1 2014-12-14  Iain Buclaw  <ibuclaw@gdcproject.org>
3         * Make-lang.in (check_gdc_parallelize): Update for testsuite changes.
4         * d-convert.cc (d_convert_basic): Avoid stack overflow when converting
5         from pointer to integer.
6         * d-objfile.cc (FuncDeclaration::toObjFile): Emit correct frame
7         information for closures rather than generic void pointers.
9 2014-11-10  Iain Buclaw  <ibuclaw@gdcproject.org>
11         * d-elem.cc (CatExp::toElem): Split dynamic arrays when passing as
12         varargs to arraycatT and arraycatnT.
14 2014-11-09  Iain Buclaw  <ibuclaw@gdcproject.org>
16         * d-codegen.cc (build_vthis): Handle getting static chain for nested
17         templated structs.
19 2014-09-07  Iain Buclaw  <ibuclaw@gdcproject.org>
21         * d-elem.cc (ArrayLiteralExp::toElem): Remove special handling for
22         immutable arrays.
24 2014-08-03  Iain Buclaw  <ibuclaw@gdcproject.org>
26         * d-longdouble.cc (longdouble::formatHex): Convert buffer to uppercase
27         for use in mangling templates.
29 2014-07-29  Iain Buclaw  <ibuclaw@gdcproject.org>
31         * d-elem.cc (NewExp::toElem): Check for opaque structs before
32         continuing to generate the new expression.
34         * d-lang.h.cc (d_vtbl_ptr_type_node): Renamed to vtbl_ptr_type_node.
35         (d_boolean_type_node): Renamed to bool_type_node.
36         (d_char_type_node): Renamed to char8_type_node.
37         (d_wchar_type_node): Renamed to char16_type_node.
38         (d_dchar_type_node): Renamed to char32_type_node.
39         (d_ifloat_type_node): Renamed to ifloat_type_node.
40         (d_idouble_type_node): Renamed to idouble_type_node.
41         (d_ireal_type_node): Renamed to ireal_type_node.
42         (byte_type_node, ubyte_type_node): New macros for fixed integral
43         types in D.
44         (short_type_node, ushort_type_node): Likewise.
45         (int_type_node, uint_type_node): Likewise.
46         (long_type_node, ulong_type_node): Likewise.
47         (cent_type_node, ucent_type_node): Likewise.
48         * d-builtins.c (d_init_builtins): Initialise all D specific type nodes.
49         * d-codegen.cc (d_bounds_condition): Use D-specific type macros instead
50         of backend C types.
51         (layout_aggregate_type): Likewise.
52         (build_integer_cst): Likewise.
53         (build_boolop): Likewise.
54         * d-convert.cc (d_build_truthvalue_op): Likewise.
55         (d_truthvalue_conversion): Likewise.
56         * d-ctype.cc (Type::toCtype): Likewise.
57         * d-decls.cc (FuncDeclaration::toSymbol): Likewise.
58         * d-elem.cc (CmpExp::toElem): Likewise.
59         (OrOrExp::toElem): Likewise.
60         (NotExp::toElem): Likewise.
61         * d-lang.cc (d_type_for_mode): Likewise.
62         (d_type_for_size): Likewise.
63         (d_signed_or_unsigned_type): Likewise.
65 2014-07-23  Iain Buclaw  <ibuclaw@gdcproject.org>
67         * d-ctype.cc (TypeFunction::toCtype): Only check for ref return for
68         functions returning non-void.
70 2014-07-21  Iain Buclaw  <ibuclaw@gdcproject.org>
72         * d-objfile.cc (output_declaration_p): Don't emit any declarations from
73         the gcc.attribute module.
74         (StructDeclaration::toObjFile): Call output_declaration_p.
75         * d-glue.cc (verror): Only call vasprintf on the initial format string.
77 2014-07-17  Iain Buclaw  <ibuclaw@gdcproject.org>
79         * d-lang.cc (d_init_options_struct): Set flag_wrapv as on by default.
81 2014-07-14  Iain Buclaw  <ibuclaw@gdcproject.org>
83         * d-elem.cc (NewExp::toElem): Don't initialise a new'd struct at the
84         caller.  The callee ensures this is done.
86 2014-07-13  Iain Buclaw  <ibuclaw@gdcproject.org>
88         * d-objfile.cc (d_finish_symbol): Always set TREE_STATIC for symbols
89         being sent to the backend here.
91 2014-07-12  Iain Buclaw  <ibuclaw@gdcproject.org>
93         * d-objfile.cc (d_finish_symbol): Don't set DECL_INITIAL if the
94         initialiser is all zeros.
96 2014-07-10  Iain Buclaw  <ibuclaw@gdcproject.org>
98         * d-builtins.cc (lookup_ctype_name): Remove function.
99         (string_type_node): Move to static declaration from d_global_trees.
100         (const_string_type_node): Likewise.
101         (wint_type_node): Likewise.
102         (intmax_type_node): Likewise.
103         (uintmax_type_node): Likewise.
104         (signed_size_type_node): Likewise.
105         (d_init_builtins): Update.
106         * d-lang.cc (d_type_for_mode): Return only fixed size types.
107         (d_type_for_size): Likewise.
108         (d_signed_or_unsigned_type): Likewise.
109         (d_unsigned_type): Remove duplicated code from
110         d_signed_or_unsigned_type.
111         (d_signed_type): Likewise.
113 2014-07-03  Iain Buclaw  <ibuclaw@gdcproject.org>
115         * d-objfile.cc (finish_thunk): Use set_decl_section_name, copy the
116         implicit section flag.
117         (setup_symbol_storage): Use decl_default_tls_model.
119 2014-06-26  Iain Buclaw  <ibuclaw@gdcproject.org>
121         * d-codegen.h (d_types_compatible): Remove function.
122         (d_types_same): Use more conservative approach to type equality.
123         * d-codegen.cc (get_libcall): Allow backend to be able to optimise
124         closure memory allocations.
125         (convert_for_assignment): Use d_types_same.
126         * d-elem.cc (CatExp::toElem): Likewise.
127         (BinExp::toElemBin): Likewise.
128         (CatAssignExp::toElem): Likewise.
129         (StructLiteralExp::toElem): Likewise.
131 2014-06-14  Iain Buclaw  <ibuclaw@gdcproject.org>
133         * d-elem.cc (CondExp::toElem): Handle void type condition expressions.
134         (AssignExp::toElem): Use ismemset to test for initialising arrays with
135         a single value.
136         (StructLiteralExp::toElem): Build static initialiser if a symbol was
137         created by the front-end.
138         * d-codegen.h (d_types_compatible): First check equality of types, then
139         implicit compatibility.
140         * d-convert.cc (d_default_conversion): Remove function, fold
141         implementation into...
142         (d_truthvalue_conversion): ... here.
144 2014-06-12  Iain Buclaw  <ibuclaw@gdcproject.org>
146         * d-convert.cc (d_scalar_conversion): Remove function.
147         (d_build_truthvalue_op): Update.
148         (d_truthvalue_conversion): Update.
150         * d-codegen.cc (get_frame_for_symbol): Remove glue-specific error
151         messages and refactor.
152         (build_vthis): Likewise.
153         (get_framedecl): Likewise.
154         * d-elem.cc (AssignExp::toElem): Update call to build_vthis.
155         (NewExp::toElem): Likewise.
156         (StructLiteralExp::toElem): Likewise.
157         * d-objfile.cc (Dsymbol::toObjFile): Fix build warning.
159         * d-codegen.cc (d_decl_context): Always return parent context for
160         functions nested in functions.
161         (is_degenerate_closure): Remove function.
162         (needs_static_chain): Remove function.
163         * d-decls.cc (FuncDeclaration::toSymbol): Remove workaround for cgraph
164         nesting structure, saving the original context decl.
165         * d-lang.h (D_DECL_STATIC_CHAIN): Remove macro.
166         * d-objfile.cc (Symbol::Symbol): Remove ScontextDecl field.
167         (FuncDeclaration::toObjFile): Remove workaround for cgraph nesting
168         structure, restoring the original context decl.  Delay building the
169         cgraph node until...
170         (d_finish_function): ... here, where the function is unnested.
172 2014-06-11  Iain Buclaw  <ibuclaw@gdcproject.org>
174         * d-objfile.cc (d_finish_function): Update the callgraph to reflect
175         unnesting of the function, as unravelling has already been handled by
176         the frontend.  Do not delay calling cgraph_finalize_function.
178 2014-06-09  Iain Buclaw  <ibuclaw@gdcproject.org>
180         * d-objfile.cc (d_comdat_group): Return a decl.
181         * d-decl.cc (FuncDeclaration::toThunkSymbol): Don't set comdat group.
182         * d-elem.cc (EqualExp::toElem): Always store temporaries when comparing
183         two dynamic arrays.
185 2014-06-08  Iain Buclaw  <ibuclaw@gdcproject.org>
187         * d-decls.cc (TypeInfoDeclaration::toSymbol): Add assert that Error
188         types never reach the backend.
189         * d-typinf.cc (Type::getTypeInfo): Likewise.
191 2014-06-08  Iain Buclaw  <ibuclaw@gdcproject.org>
193         * dfrontend: Update to D front-end version 2.065.
195         * d-codegen.cc (d_build_call): Evaluate side effects of the object
196         parameter for method or delegate calls before passing.
197         (libcall_ids): Rename _d_array_bounds to _d_arraybounds.
198         (get_libcall): Update parameter types for _d_arraycopy.
199         (finish_aggregate_type): Update for frontend UDA changes.
200         * d-ctype.cc (TypeTypedef::toCtype): Update for frontend UDA changes.
201         (TypeEnum::toCtype): Likewise.
202         (TypeStruct::toCtype): Likewise.
203         (TypeClass::toCtype): Likewise.
204         * d-elem.cc (BoolExp::toElem): New function.
205         * d-lang.cc (rootmodule): New declaration for frontend entrypoint
206         changes.
207         (genCmain): Update for frontend entrypoint changes.
208         (d_handle_option): Don't duplicate memory for argument values.
209         (d_parse_file): Don't duplicate memory for source filenames.
210         * d-objfile.cc (VarDeclaration::toObjFile): Don't emit instantiated
211         manifest constants to debug.
212         (TemplateInstance::toObjFile): Update for frontend changes.
213         (output_template_p): Remove function.
214         (output_declaration_p): Update for frontend changes.
215         (setup_symbol_storage): Update for frontend UDA changes.
216         * d-target.cc (Target::reverseCppOverloads): New declaration.
217         * d-typinf.cc (Type::getInternalTypeInfo): Update for frontend changes.
218         (Type::getTypeInfo, Type::getTypeInfoDeclaration): Likewise.
219         (TypeTypedef::getTypeInfoDeclaration): Likewise.
220         (TypePointer::getTypeInfoDeclaration): Likewise.
221         (TypeDArray::getTypeInfoDeclaration): Likewise.
222         (TypeSArray::getTypeInfoDeclaration): Likewise.
223         (TypeAArray::getTypeInfoDeclaration): Likewise.
224         (TypeStruct::getTypeInfoDeclaration): Likewise.
225         (TypeClass::getTypeInfoDeclaration): Likewise.
226         (TypeVector::getTypeInfoDeclaration): Likewise.
227         (TypeEnum::getTypeInfoDeclaration): Likewise.
228         (TypeFunction::getTypeInfoDeclaration): Likewise.
229         (TypeDelegate::getTypeInfoDeclaration): Likewise.
230         (TypeTuple::getTypeInfoDeclaration): Likewise.
231         (createTypeInfoArray): Likewise.
233         * d-intrinsics.def: New file for declaring D intrinsics.
235         * d-builtins.cc (std_intrinsic_module, std_math_module)
236         (core_math_module, va_arg_template, va_arg2_template)
237         (va_start_template): Remove declarations.
238         (is_intrinsic_module_p, is_math_module_p, is_builtin_va_arg_p)
239         (is_builtin_va_start_p, d_gcc_magic_stdarg_check)
240         (d_gcc_magic_stdarg_module): Remove functions.
241         (d_gcc_magic_builtins_module): Rename to d_build_builtins_module.
242         (d_gcc_magic_libbuiltins_module): Rename to maybe_set_builtin.
243         (d_gcc_magic_libbuiltins_check): Rename to maybe_set_builtin_1.
244         (gcc_type_to_d_type): Rename to build_dtype.
245         (gcc_cst_to_d_expr): Rename to build_expression.
246         (d_gcc_eval_builtin): Remove function.
247         (eval_builtin): Moved to...
248         * d-glue.cc (eval_builtin): New function, updated for glue changes.
249         (FuncDeclaration::isBuiltin): New function to determine whether a
250         given function symbol is a compiler intrinsic.
251         * d-codegen.cc (maybe_expand_builtin): Rename to expand_intrinsic.
252         (Intrinsic): Remove enum declaration, replaced with...
253         (intrinsic_code): New enum for compiler intrinsics.
254         (intrinsic_decls): New declaration for store intrinsic information.
255         (expand_intrinsic_bt): Update signature.
256         (maybe_set_intrinsic): New function to replace...
257         (maybe_set_builtin_frontend): Remove function.
258         * d-decls.cc (FuncDeclaration::toSymbol): Update for glue changes.
260         * d-builtins.c: Rename to d-builtins.cc
261         * d-gt.c: Rename to d-gt.cc
262         * d-spec.c: Rename to d-spec.cc
264         * d-toir.cc: Renamed to toir.cc
265         * toir.cc: New file, re-implement toIR methods as a visitor.
267         * d-codegen.cc (insert_type_modifiers): Handle MODwildconst modifiers.
268         (build_ir): New function.
269         * d-objfile.cc (FuncDeclaration::toObjFile): Use build_ir to walk
270         front-end IR trees.
271         * d-decls.cc (VarDeclaration::toSymbol): Mark compiler temporaries as
272         DECL_ARTIFICIAL.
273         (ClassDeclaration::toVtblSymbol): Update for front-end changes.
274         * d-builtins.c (gcc_type_to_d_type): Likewise.
275         * d-elem.cc (CatAssignExp::toElem): Likewise.
276         (ArrayLiteralExp::toElem): Likewise.
277         (BoolExp::toElem): Remove function.
278         (ComExp::toElem): Assert that unhandled array operations no longer
279         leak from the front-end.
280         (NegExp::toElem): Likewise.
281         * d-glue.cc (Global::init): Initialise new member run_noext.
282         * d-incpath (add_import_path): Update for front-end changes.
283         * d-lang.cc (d_add_builtin_version): Likewise.
284         * d-todt.cc (StructDeclaration::toDt): Likewise.
285         * d-toir.cc (LabelStatement::toIR): Don't delete forward references.
286         (GotoStatement::toIR): Assert that undefined labels no longer leak
287         from the front-end.
289 2014-05-31  Iain Buclaw  <ibuclaw@gdcproject.org>
291         * d-todt.cc (dt_container): Properly handle zero length static arrays.
292         * d-codegen.h (build_dtype): Rename to lang_dtype.
293         (build_ddecl): Rename to lang_ddecl.
295 2014-05-21  Iain Buclaw  <ibuclaw@gdcproject.org>
297         * d-builtins.c (d_init_builtins): Use void_node instead of
298         d_void_zero_node.
299         * d-lang.h (d_void_zero_node): Remove.
300         * d-elem.cc (AndAndExp::toElem): Adjust.
301         (OrOrExp::toElem): Likewise.
302         (AssertExp::toElem): Likewise.
303         (TupleExp::toElem): Likewise.
305         * d-builtins.c (d_init_builtins): Use null_pointer_node instead of
306         d_null_pointer.
307         * d-lang.h (d_null_pointer): Remove.
308         * d-codegen.cc (convert_expr): Adjust.
309         (get_frame_for_symbol): Likewise.
310         (build_vthis): Likewise.
311         (get_framedecl): Likewise.
312         * d-elem.cc (DeleteExp::toElem): Likewise.
313         (CallExp::toElem): Likewise.
314         (AssertExp::toElem): Likewise.
315         (NewExp::toElem): Likewise.
316         (ArrayLiteralExp::toElem): Likewise.
317         (NullExp::toElem): Likewise.
318         * d-objfile.cc (ClassDeclaration::toObjFile): Likewise.
319         (InterfaceDeclaration::toObjFile): Likewise.
320         (FuncDeclaration::toObjFile): Likewise.
321         (build_moduleinfo): Likewise.
322         * d-todt.cc (TypeInfoTypedefDeclaration::toDt): Likewise.
323         (TypeInfoEnumDeclaration::toDt): Likewise.
324         (TypeInfoStructDeclaration::toDt): Likewise.
326 2014-05-18  Iain Buclaw  <ibuclaw@gdcproject.org>
328         * d-longdouble.cc (longdouble::from_shwi): Rename to from_int.
329         (longdouble::from_uhwi): Rename to from_uint.
330         (longdouble::to_shwi): Rename to to_int.
331         (longdouble::to_uhwi): Rename to to_uint.
332         (longdouble::set): Adjust.
333         (longdouble::operator): Likewise.
335         * d-lang.cc (alloc_binding_level): Adjust.
336         (build_d_type_lang_specific): Likewise.
337         (build_d_decl_lang_specific): Likewise.
338         * d-lang.h (lang_type): Don't use variable_size gty attribute.
339         * d-codegen.cc (cst_to_hwi): Remove function.
340         * d-codegen.cc (tree_to_hwi): Remove function.
341         * d-builtins.c (gcc_type_to_d_type): Adjust.
342         (gcc_cst_to_d_expr): Likewise.
343         * d-convert.cc (d_truthvalue_conversion): Use integer_zerop.
344         (get_nonnull_operand): Use tree_fits_uhwi_p.
345         * d-longdouble.cc (longdouble::from_int): Adjust.
346         (longdouble::from_uint): Likewise.
347         (longdouble::to_int): Likewise.
349 2014-04-30  Johannes Pfau  <johannespfau@gmail.com>
351         * d-lang.cc (d_init): Define GNU_SEH_Exceptions and
352         GNU_DWARF2_Exceptions versions.
354 2014-04-21  Iain Buclaw  <ibuclaw@gdcproject.org>
356         * d-lang.cc (d_init_options): Default deprecation warnings to off.
357         * d-ctype.cc (TypeDelegate::toCtype): Propogate TREE_ADDRESSABLE from
358         the base function to the delegatised copy.
360 2014-04-15  Johannes Pfau  <johannespfau@gmail.com>
362         * d-lang.cc (d_handle_noclone_attribute): New function to handle
363         noclone attribute. noclone is required by the naked attribute.
364         * d-elem.cc (SymbolExp::toElem): Convert symbols to the expression
365         type.
367 2014-04-13  Iain Buclaw  <ibuclaw@gdcproject.org>
369         * d-codegen.cc (get_frameinfo): Don't copy the node for frame record.
370         * d-irstate.cc (IRState::endCatches): Rebuild the STATEMENT_LIST of
371         catches in a TRY_CATCH_EXPR if it gets optimised away by
372         IRState::popStatement.
373         * d-codegen.cc (d_attribute_p): Provide access to target attributes.
375 2014-03-31  Iain Buclaw  <ibuclaw@gdcproject.org>
377         * d-codegen.cc (error_mark_p): Removed function, replace uses with
378         error_operand_p.
379         (error_mark): Removed function, replace uses with error_mark_node.
380         * d-ctype.cc (Type::toCtype): Return d_unknown_type_node for frontend
381         error types.
382         * d-objfile.cc (VarDeclaration::toObjFile): Don't build CONST_DECLs for
383         non-scalar manifests.
385 2014-03-23  Iain Buclaw  <ibuclaw@gdcproject.org>
387         * d-decls.cc (Dsymbol::toImport): Prevent GC from collecting
388         IMPORTED_DECL nodes whilst front-end compilation in progress.
390 2014-03-19  Iain Buclaw  <ibuclaw@gdcproject.org>
392         * d-codegen.cc (AggLayout::visit): Rename to layout_aggregate_type.
393         (AggLayout::doFields, AggLayout::doInterfaces): Remove function and
394         move implementation into layout_aggregate_type.
395         (AggLayout::addField): Rename to insert_aggregate_field.
396         (AggLayout::finish): Rename to finish_aggregate_type.
397         * d-codegen.h (AggLayout): Update definition.
398         * d-ctype.cc (TypeStruct::toCtype): Update for glue changes.
399         (TypeFunction::toCtype): Fix ICE on generic function types.
400         (TypeClass::toCtype): Move generation of vptr and monitor fields into
401         layout_aggregate_type.  Moved generation of TYPE_METHODS from ...
402         * d-objfile.cc (FuncDeclaration::toObjFile): ... here into
403         TypeClass::toCtype.  Don't build up TYPE_METHODS on a per-function
404         basis, generate the entire vtable.
406 2014-03-18  Iain Buclaw  <ibuclaw@gdcproject.org>
408         * d-decls.cc (Dsymbol::toSymbolX): Set the symbol prettyIdent.
409         (Dsymbol::toImport): Emit packages as their fully qualified names.
410         (ClassDeclaration::toSymbol): Distinguish between the classinfo
411         assembler and decl name.
412         (InterfaceDeclaration::toSymbol): Likewise for interface symbol.
413         (Module::toSymbol): Likewise for moduleinfo symbol.
414         (ClassDeclaration::toVtblSymbol): Likewise for class vtable symbol.
415         (AggregateDeclaration::toInitializer)
416         (TypedefDeclaration::toInitializer, EnumDeclaration::toInitializer):
417         Likewise for default initialisers.
418         * d-objfile.cc (Module::genobjfile): Don't set-up moduleinfo symbol
419         storage twice.
421 2014-03-17  Iain Buclaw  <ibuclaw@gdcproject.org>
423         * d-codegen.cc (d_decl_context): Fix null pointer dereference.
424         * d-objfile.cc (FuncDeclaration::toObjFile): Don't override the setting
425         of DECL_CONTEXT on the declaration here.
426         (d_finish_symbol): Likewise.
427         * d-objfile.cc (VarDeclaration::toObjFile): Move the generation of
428         manifest constants to ...
429         * d-decls.cc (VarDeclaration::toSymbol): ... here, and emit them as
430         CONST_DECLs.  Set the DECL_CONTEXT for all variable symbols.
432         * d-builtins.cc (d_gcc_magic_builtins_module): Don't store compiler
433         generated builtins in Symbol::isym, use Symbol::csym instead.
434         (d_gcc_magic_libbuiltins_check): Likewise.
435         * d-codegen.cc (d_decl_context): Return the imported symbol tree of
436         modules where the NAMESPACE_DECL is now stored.
437         (d_build_module): Remove function.  Move implementation to ...
438         * d-decls.cc (Dsymbol::toImport): ... here.  Build an IMPORTED_DECL for
439         all imported declarations.
440         (FuncDeclaration::toSymbol): Remove special handling of Symbol::isym.
441         (Module::toSymbol): Remove call to d_build_module.
442         * d-objfile.cc (Dsymbol::toObjFile): Handle emission of IMPORTED_DECL
443         symbols to debug.
445 2014-03-16  Iain Buclaw  <ibuclaw@gdcproject.org>
447         * d-codegen.cc (build_attributes): Ensure D-specific attributes have
448         their value interpreted through CTFE.
450 2014-02-21  Iain Buclaw  <ibuclaw@gdcproject.org>
452         * d-codegen.cc (d_build_module): Update signature to accept a Loc
453         location to the module declaration.
454         * d-decls.cc (Module::toSymbol): Update call to d_build_module.
455         Set TREE_PUBLIC/DECL_EXTERNAL to distingush which modules are being
456         compiled.
457         * d-objfile.cc (Dsymbol::toObjFile): Handle Import symbols, and emit
458         debug information for imported modules.
459         (ImportStatement::toIR): Likewise.
460         (set_input_location): New function to implement the equivalent of
461         set_decl_location, but instead sets input_location.
463 2014-02-19  Johannes Pfau  <johannespfau@gmail.com>
465         * d-objfile.cc (build_call_function): Call set_input_location
466         to set debug info correctly
468 2014-02-18  Iain Buclaw  <ibuclaw@gdcproject.org>
470         * d-objfile.cc (VarDeclaration::toObjFile): Remove toplevel check.
471         DECL_CONTEXT is never set on manifest constants.
472         (d_finish_compilation): Remove fancy check on force outputting
473         symbols to object file.
474         (build_type_decl): Don't emit the qualified identifier in debug
475         information.  The fully qualified name is now determined through the
476         NAMESPACE_DECL context chain.
477         * d-ctype.cc (TypeEnum::toCtype): Likewise for enum members.
478         (VarDeclaration::toSymbol): Likewise for static variables.
479         (FuncDeclaration::toSymbol): Likewise for functions.
481         * d-decls.cc (FuncDeclaration::toSymbol): Don't emit the 'D main'
482         symbol to debug as plain 'main'.
483         * d-objfile.cc (VarDeclaration::toObjFile): Don't emit the qualified
484         identifier of manifest constants in debug information.
486 2014-02-17  Iain Buclaw  <ibuclaw@gdcproject.org>
488         * d-codegen.cc (d_build_module): New function.
489         * d-decls.cc (Module::toSymbol): Use d_build_module to build up the
490         qualified module namespace.
492         * d-codegen.cc (expand_intrinsic_op, expand_intrinsic_op2): New
493         functions to build a call to a builtin code.
494         (expand_intrinsic_bsr, expand_intrinsic_bt): New functions to expand a
495         BUILTIN_FRONTEND call to core.bitop intrinsics.
496         (expand_intrinsic_vaarg, expand_intrinsic_vastart): New functions to
497         expand a BUILTIN_FRONTEND call to core.vararg intrinsics.
498         (maybe_expand_builtin): Update.
500 2014-02-16  Iain Buclaw  <ibuclaw@gdcproject.org>
502         * d-decls.cc (Module::toSymbol): Build a NAMESPACE_DECL to populate the
503         DECL_CONTEXT of toplevel functions.
504         * d-codegen.cc (d_decl_context): Return the enclosing module
505         NAMESPACE_DECL as the decl context only when the symbol is extern(D)
506         and not D main.
508 2014-02-15  Iain Buclaw  <ibuclaw@gdcproject.org>
510         * d-decls.cc (VarDeclaration::toSymbol): Don't call
511         setup_symbol_storage until after SET_DECL_ASSEMBLER_NAME has been set.
513         * d-decls.cc (VarDeclaration::toSymbol): Give prettyIdent precedence
514         for the DECL_NAME over the simple identifier.
515         (FuncDeclaration::toSymbol): Likewise.
516         * d-objfile.cc (d_finish_symbol): Remove setting DECL_NAME as
517         prettyIdent, this has already been done in Declaration::toSymbol.
518         (d_finish_function): Likewise.
520         * d-decls.cc (VarDeclaration::toSymbol): Call set_user_assembler_name
521         if pragma(mangle) was seen.
522         (FuncDeclaration::toSymbol): Likewise.
524 2014-02-12  Johannes Pfau  <johannespfau@gmail.com>
526         * d-decls.cc (FuncDeclaration::toSymbol): Do not set TREE_NOTHROW on
527         nothrow functions.
528         * d-decls.cc (TypeInfoDeclaration::toSymbol): Call relayout_decl after
529         changing the type.
531 2014-02-03  Iain Buclaw  <ibuclaw@gdcproject.org>
534         * d-codegen.cc (d_build_call): Remove special handling of
535         flag_split_darrays switch.
536         (maybe_expand_builtin): Likewise.
537         * d-elem.cc (CatExp::toElem): Likewise.
538         * lang.opt (fsplit-dynamic-arrays): Remove.
540 2014-02-02  Iain Buclaw  <ibuclaw@gdcproject.org>
542         * d-glue.cc (readFile, writeFile, ensurePathToNameExists): Define.
543         * d-incpath.cc (add_import_path): Update for frontend changes.
544         (add_fileimp_path): Likewise.
545         * d-lang.cc (deps_write): Likewise.
546         (d_parse_file): Likewise.
547         * d-todt.cc (Dts): Update define for frontend changes.
548         * d-decls.cc (ClassDeclaration::toVtblSymbol): Don't mark __vtbl
549         symbols as virtual.  They are global static symbols.
551 2014-01-12  Iain Buclaw  <ibuclaw@gdcproject.org>
553         * d-decls.cc (EnumDeclaration::toDebug): Build TYPE_DECL only for
554         enumeral types.
556 2014-01-06  Iain Buclaw  <ibuclaw@gdcproject.org>
558         * d-ctype.cc (TypeClass::toCtype): Don't add __monitor field for
559         extern(C++) classes.
561         * d-builtins.c (d_gcc_magic_module): Remove tdata.
562         * d-codegen.cc (build_interface_binfo): Likewise.
563         * d-ctype.cc (TypeEnum::toCtype): Likewise.
564         (TypeClass::toCtype): Likewise.
565         * d-lang.cc (deps_write): Likewise.
567 2014-01-05  Iain Buclaw  <ibuclaw@gdcproject.org>
569         * d-ctype.cc (TypeEnum::toCtype): Don't push CONST_DECLs into current
570         function.
571         * d-decls.cc (FuncDeclaration::toThunkSymbol): Don't mark symbol as
572         TREE_PRIVATE, just TREE_PUBLIC as false.
573         (StructLiteralExp::toSymbol): Likewise.
574         (ClassReferenceExp::toSymbol): Likewise.
575         * d-objfile.cc (d_comdat_linkage): Likewise.
576         (d_finish_symbol): Likewise.
577         (build_moduleinfo): Likewise.
579         * config-lang.in: Add d-lang.cc to gtfiles.
580         * d-irstate.h (IRState::varsInScope): Change from Array to vec<> type.
581         (IRState::statementList_): Likewise.
582         (IRState::scopes_): Likewise.
583         (IRState::loops_): Likewise.
584         (IRState::labels_): Likewise.
585         * d-lang.h (d_bi_builtin_func): Remove declaration.
586         (d_bi_builtin_type): Likewise.
587         (d_keep_list): Likewise.
588         * d-objfile.h (Symbol::thunks): Change from Array to vec<> type.
589         (ModuleInfo::classes): Likewise.
590         (ModuleInfo::ctors): Likewise.
591         (ModuleInfo::dtors): Likewise.
592         (ModuleInfo::ctorgates): Likewise.
593         (ModuleInfo::sharedctors): Likewise.
594         (ModuleInfo::shareddtors): Likewise.
595         (ModuleInfo::sharedctorgates): Likewise.
596         (ModuleInfo::unitTests): Likewise.
597         (build_simple_function): Remove declaration.
598         (build_call_function): Likewise.
599         (build_ctor_function): Likewise.
600         (build_dtor_function): Likewise.
601         (build_unittest_function): Likewise.
602         * d-builtins.c (bi_fn_list): Rename to gcc_builtins_functions.
603         (bi_lib_list): Rename to gcc_builtins_libfuncs.
604         (bi_type_list): Rename to gcc_builtins_types.
605         (builtin_converted_types): Remove.
606         (builtin_converted_decls): Change from Array to vec<> type.
607         (gcc_type_to_d_type): Update.
608         (d_bi_builtin_func): Remove and move to d_builtin_function.
609         (d_bi_builtin_type): Remove and move to d_register_builtin_type.
610         (d_gcc_magic_builtins_module): Update.
611         * d-ctype.cc (TypeClass::toCtype): Remove unused var.
612         * d-decls.cc (FuncDeclaration::toThunkSymbol): Update for change to
613         vec<> type.
614         * d-elem.cc (CatExp::toElem): Change stashed vars from Array to vec<>.
615         (Expression::toElemDtor): Update for change to vec<> type.
616         * d-irstate.cc (IRState::startFunction): Likewise.
617         (IRState::endFunction): Likewise.
618         (IRState::addExp): Likewise.
619         (IRState::pushStatementList): Likewise.
620         (IRState::popStatementList): Likewise.
621         (IRState::getLabelBlock): Likewise.
622         (IRState::getLoopForLabel): Likewise.
623         (IRState::beginFlow): Likewise.
624         (IRState::endFlow): Likewise.
625         (IRState::startScope): Likewise.
626         (IRState::pushLabel): Likewise.
627         (IRState::checkGoto): Likewise.
628         (IRState::checkPreviousGoto): Change from Array to Blocks type.
629         * d-lang.cc (global_declarations): Change from Array to vec<> type.
630         (d_add_global_declaration): Update for change to vec<> type.
631         (d_write_global_declarations): Likewise.
632         (d_keep_list): Make static to source file.
633         * d-objfile.cc (static_ctor_list): Change from Array to vec<> type.
634         (static_dtor_list): Likewise.
635         (Module::genobjfile): Update for change to vec<> type.
636         (d_finish_module): Likewise.
637         (d_finish_function): Likewise.
638         (deferred_thunks): Change from ArrayBase<> to vec<> type.
639         (write_deferred_thunks): Update for change to vec<> type.
640         (use_thunk): Likewise.
641         (build_simple_function): Make static to source file.
642         (build_call_function): Likewise.
643         (build_ctor_function): Likewise.
644         (build_dtor_function): Likewise.
645         (build_unittest_function): Likewise.
647 2014-01-02  Iain Buclaw  <ibuclaw@gdcproject.org>
649         * d-objfile.cc (setup_symbol_storage): Use output_module_p on template
650         instantiating module to determine if symbol is externally compiled.
651         (d_finish_function): Set function local if function body was compiled.
652         * d-decls.cc (Dsymbol::toSymbolX): Use unsigned integer format for the
653         prefix string length.
656 Copyright (C) 2014 Free Software Foundation, Inc.
658 Copying and distribution of this file, with or without modification,
659 are permitted in any medium without royalty provided the copyright
660 notice and this notice are preserved.