aboutsummaryrefslogtreecommitdiff
path: root/gcc/d/ChangeLog-2014
blob: cf8c8ac2c064e24acd97d469f16231018bbcf0aa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
2014-12-14  Iain Buclaw  <ibuclaw@gdcproject.org>

	* Make-lang.in (check_gdc_parallelize): Update for testsuite changes.
	* d-convert.cc (d_convert_basic): Avoid stack overflow when converting
	from pointer to integer.
	* d-objfile.cc (FuncDeclaration::toObjFile): Emit correct frame
	information for closures rather than generic void pointers.

2014-11-10  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-elem.cc (CatExp::toElem): Split dynamic arrays when passing as
	varargs to arraycatT and arraycatnT.

2014-11-09  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (build_vthis): Handle getting static chain for nested
	templated structs.

2014-09-07  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-elem.cc (ArrayLiteralExp::toElem): Remove special handling for
	immutable arrays.

2014-08-03  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-longdouble.cc (longdouble::formatHex): Convert buffer to uppercase
	for use in mangling templates.

2014-07-29  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-elem.cc (NewExp::toElem): Check for opaque structs before
	continuing to generate the new expression.

	* d-lang.h.cc (d_vtbl_ptr_type_node): Renamed to vtbl_ptr_type_node.
	(d_boolean_type_node): Renamed to bool_type_node.
	(d_char_type_node): Renamed to char8_type_node.
	(d_wchar_type_node): Renamed to char16_type_node.
	(d_dchar_type_node): Renamed to char32_type_node.
	(d_ifloat_type_node): Renamed to ifloat_type_node.
	(d_idouble_type_node): Renamed to idouble_type_node.
	(d_ireal_type_node): Renamed to ireal_type_node.
	(byte_type_node, ubyte_type_node): New macros for fixed integral
	types in D.
	(short_type_node, ushort_type_node): Likewise.
	(int_type_node, uint_type_node): Likewise.
	(long_type_node, ulong_type_node): Likewise.
	(cent_type_node, ucent_type_node): Likewise.
	* d-builtins.c (d_init_builtins): Initialise all D specific type nodes.
	* d-codegen.cc (d_bounds_condition): Use D-specific type macros instead
	of backend C types.
	(layout_aggregate_type): Likewise.
	(build_integer_cst): Likewise.
	(build_boolop): Likewise.
	* d-convert.cc (d_build_truthvalue_op): Likewise.
	(d_truthvalue_conversion): Likewise.
	* d-ctype.cc (Type::toCtype): Likewise.
	* d-decls.cc (FuncDeclaration::toSymbol): Likewise.
	* d-elem.cc (CmpExp::toElem): Likewise.
	(OrOrExp::toElem): Likewise.
	(NotExp::toElem): Likewise.
	* d-lang.cc (d_type_for_mode): Likewise.
	(d_type_for_size): Likewise.
	(d_signed_or_unsigned_type): Likewise.

2014-07-23  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-ctype.cc (TypeFunction::toCtype): Only check for ref return for
	functions returning non-void.

2014-07-21  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-objfile.cc (output_declaration_p): Don't emit any declarations from
	the gcc.attribute module.
	(StructDeclaration::toObjFile): Call output_declaration_p.
	* d-glue.cc (verror): Only call vasprintf on the initial format string.

2014-07-17  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-lang.cc (d_init_options_struct): Set flag_wrapv as on by default.

2014-07-14  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-elem.cc (NewExp::toElem): Don't initialise a new'd struct at the
	caller.  The callee ensures this is done.

2014-07-13  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-objfile.cc (d_finish_symbol): Always set TREE_STATIC for symbols
	being sent to the backend here.

2014-07-12  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-objfile.cc (d_finish_symbol): Don't set DECL_INITIAL if the
	initialiser is all zeros.

2014-07-10  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-builtins.cc (lookup_ctype_name): Remove function.
	(string_type_node): Move to static declaration from d_global_trees.
	(const_string_type_node): Likewise.
	(wint_type_node): Likewise.
	(intmax_type_node): Likewise.
	(uintmax_type_node): Likewise.
	(signed_size_type_node): Likewise.
	(d_init_builtins): Update.
	* d-lang.cc (d_type_for_mode): Return only fixed size types.
	(d_type_for_size): Likewise.
	(d_signed_or_unsigned_type): Likewise.
	(d_unsigned_type): Remove duplicated code from
	d_signed_or_unsigned_type.
	(d_signed_type): Likewise.

2014-07-03  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-objfile.cc (finish_thunk): Use set_decl_section_name, copy the
	implicit section flag.
	(setup_symbol_storage): Use decl_default_tls_model.

2014-06-26  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.h (d_types_compatible): Remove function.
	(d_types_same): Use more conservative approach to type equality.
	* d-codegen.cc (get_libcall): Allow backend to be able to optimise
	closure memory allocations.
	(convert_for_assignment): Use d_types_same.
	* d-elem.cc (CatExp::toElem): Likewise.
	(BinExp::toElemBin): Likewise.
	(CatAssignExp::toElem): Likewise.
	(StructLiteralExp::toElem): Likewise.

2014-06-14  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-elem.cc (CondExp::toElem): Handle void type condition expressions.
	(AssignExp::toElem): Use ismemset to test for initialising arrays with
	a single value.
	(StructLiteralExp::toElem): Build static initialiser if a symbol was
	created by the front-end.
	* d-codegen.h (d_types_compatible): First check equality of types, then
	implicit compatibility.
	* d-convert.cc (d_default_conversion): Remove function, fold
	implementation into...
	(d_truthvalue_conversion): ... here.

2014-06-12  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-convert.cc (d_scalar_conversion): Remove function.
	(d_build_truthvalue_op): Update.
	(d_truthvalue_conversion): Update.

	* d-codegen.cc (get_frame_for_symbol): Remove glue-specific error
	messages and refactor.
	(build_vthis): Likewise.
	(get_framedecl): Likewise.
	* d-elem.cc (AssignExp::toElem): Update call to build_vthis.
	(NewExp::toElem): Likewise.
	(StructLiteralExp::toElem): Likewise.
	* d-objfile.cc (Dsymbol::toObjFile): Fix build warning.

	* d-codegen.cc (d_decl_context): Always return parent context for
	functions nested in functions.
	(is_degenerate_closure): Remove function.
	(needs_static_chain): Remove function.
	* d-decls.cc (FuncDeclaration::toSymbol): Remove workaround for cgraph
	nesting structure, saving the original context decl.
	* d-lang.h (D_DECL_STATIC_CHAIN): Remove macro.
	* d-objfile.cc (Symbol::Symbol): Remove ScontextDecl field.
	(FuncDeclaration::toObjFile): Remove workaround for cgraph nesting
	structure, restoring the original context decl.  Delay building the
	cgraph node until...
	(d_finish_function): ... here, where the function is unnested.

2014-06-11  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-objfile.cc (d_finish_function): Update the callgraph to reflect
	unnesting of the function, as unravelling has already been handled by
	the frontend.  Do not delay calling cgraph_finalize_function.

2014-06-09  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-objfile.cc (d_comdat_group): Return a decl.
	* d-decl.cc (FuncDeclaration::toThunkSymbol): Don't set comdat group.
	* d-elem.cc (EqualExp::toElem): Always store temporaries when comparing
	two dynamic arrays.

2014-06-08  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-decls.cc (TypeInfoDeclaration::toSymbol): Add assert that Error
	types never reach the backend.
	* d-typinf.cc (Type::getTypeInfo): Likewise.

2014-06-08  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dfrontend: Update to D front-end version 2.065.

	* d-codegen.cc (d_build_call): Evaluate side effects of the object
	parameter for method or delegate calls before passing.
	(libcall_ids): Rename _d_array_bounds to _d_arraybounds.
	(get_libcall): Update parameter types for _d_arraycopy.
	(finish_aggregate_type): Update for frontend UDA changes.
	* d-ctype.cc (TypeTypedef::toCtype): Update for frontend UDA changes.
	(TypeEnum::toCtype): Likewise.
	(TypeStruct::toCtype): Likewise.
	(TypeClass::toCtype): Likewise.
	* d-elem.cc (BoolExp::toElem): New function.
	* d-lang.cc (rootmodule): New declaration for frontend entrypoint
	changes.
	(genCmain): Update for frontend entrypoint changes.
	(d_handle_option): Don't duplicate memory for argument values.
	(d_parse_file): Don't duplicate memory for source filenames.
	* d-objfile.cc (VarDeclaration::toObjFile): Don't emit instantiated
	manifest constants to debug.
	(TemplateInstance::toObjFile): Update for frontend changes.
	(output_template_p): Remove function.
	(output_declaration_p): Update for frontend changes.
	(setup_symbol_storage): Update for frontend UDA changes.
	* d-target.cc (Target::reverseCppOverloads): New declaration.
	* d-typinf.cc (Type::getInternalTypeInfo): Update for frontend changes.
	(Type::getTypeInfo, Type::getTypeInfoDeclaration): Likewise.
	(TypeTypedef::getTypeInfoDeclaration): Likewise.
	(TypePointer::getTypeInfoDeclaration): Likewise.
	(TypeDArray::getTypeInfoDeclaration): Likewise.
	(TypeSArray::getTypeInfoDeclaration): Likewise.
	(TypeAArray::getTypeInfoDeclaration): Likewise.
	(TypeStruct::getTypeInfoDeclaration): Likewise.
	(TypeClass::getTypeInfoDeclaration): Likewise.
	(TypeVector::getTypeInfoDeclaration): Likewise.
	(TypeEnum::getTypeInfoDeclaration): Likewise.
	(TypeFunction::getTypeInfoDeclaration): Likewise.
	(TypeDelegate::getTypeInfoDeclaration): Likewise.
	(TypeTuple::getTypeInfoDeclaration): Likewise.
	(createTypeInfoArray): Likewise.

	* d-intrinsics.def: New file for declaring D intrinsics.

	* d-builtins.cc (std_intrinsic_module, std_math_module)
	(core_math_module, va_arg_template, va_arg2_template)
	(va_start_template): Remove declarations.
	(is_intrinsic_module_p, is_math_module_p, is_builtin_va_arg_p)
	(is_builtin_va_start_p, d_gcc_magic_stdarg_check)
	(d_gcc_magic_stdarg_module): Remove functions.
	(d_gcc_magic_builtins_module): Rename to d_build_builtins_module.
	(d_gcc_magic_libbuiltins_module): Rename to maybe_set_builtin.
	(d_gcc_magic_libbuiltins_check): Rename to maybe_set_builtin_1.
	(gcc_type_to_d_type): Rename to build_dtype.
	(gcc_cst_to_d_expr): Rename to build_expression.
	(d_gcc_eval_builtin): Remove function.
	(eval_builtin): Moved to...
	* d-glue.cc (eval_builtin): New function, updated for glue changes.
	(FuncDeclaration::isBuiltin): New function to determine whether a
	given function symbol is a compiler intrinsic.
	* d-codegen.cc (maybe_expand_builtin): Rename to expand_intrinsic.
	(Intrinsic): Remove enum declaration, replaced with...
	(intrinsic_code): New enum for compiler intrinsics.
	(intrinsic_decls): New declaration for store intrinsic information.
	(expand_intrinsic_bt): Update signature.
	(maybe_set_intrinsic): New function to replace...
	(maybe_set_builtin_frontend): Remove function.
	* d-decls.cc (FuncDeclaration::toSymbol): Update for glue changes.

	* d-builtins.c: Rename to d-builtins.cc
	* d-gt.c: Rename to d-gt.cc
	* d-spec.c: Rename to d-spec.cc

	* d-toir.cc: Renamed to toir.cc
	* toir.cc: New file, re-implement toIR methods as a visitor.

	* d-codegen.cc (insert_type_modifiers): Handle MODwildconst modifiers.
	(build_ir): New function.
	* d-objfile.cc (FuncDeclaration::toObjFile): Use build_ir to walk
	front-end IR trees.
	* d-decls.cc (VarDeclaration::toSymbol): Mark compiler temporaries as
	DECL_ARTIFICIAL.
	(ClassDeclaration::toVtblSymbol): Update for front-end changes.
	* d-builtins.c (gcc_type_to_d_type): Likewise.
	* d-elem.cc (CatAssignExp::toElem): Likewise.
	(ArrayLiteralExp::toElem): Likewise.
	(BoolExp::toElem): Remove function.
	(ComExp::toElem): Assert that unhandled array operations no longer
	leak from the front-end.
	(NegExp::toElem): Likewise.
	* d-glue.cc (Global::init): Initialise new member run_noext.
	* d-incpath (add_import_path): Update for front-end changes.
	* d-lang.cc (d_add_builtin_version): Likewise.
	* d-todt.cc (StructDeclaration::toDt): Likewise.
	* d-toir.cc (LabelStatement::toIR): Don't delete forward references.
	(GotoStatement::toIR): Assert that undefined labels no longer leak
	from the front-end.

2014-05-31  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-todt.cc (dt_container): Properly handle zero length static arrays.
	* d-codegen.h (build_dtype): Rename to lang_dtype.
	(build_ddecl): Rename to lang_ddecl.

2014-05-21  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-builtins.c (d_init_builtins): Use void_node instead of
	d_void_zero_node.
	* d-lang.h (d_void_zero_node): Remove.
	* d-elem.cc (AndAndExp::toElem): Adjust.
	(OrOrExp::toElem): Likewise.
	(AssertExp::toElem): Likewise.
	(TupleExp::toElem): Likewise.

	* d-builtins.c (d_init_builtins): Use null_pointer_node instead of
	d_null_pointer.
	* d-lang.h (d_null_pointer): Remove.
	* d-codegen.cc (convert_expr): Adjust.
	(get_frame_for_symbol): Likewise.
	(build_vthis): Likewise.
	(get_framedecl): Likewise.
	* d-elem.cc (DeleteExp::toElem): Likewise.
	(CallExp::toElem): Likewise.
	(AssertExp::toElem): Likewise.
	(NewExp::toElem): Likewise.
	(ArrayLiteralExp::toElem): Likewise.
	(NullExp::toElem): Likewise.
	* d-objfile.cc (ClassDeclaration::toObjFile): Likewise.
	(InterfaceDeclaration::toObjFile): Likewise.
	(FuncDeclaration::toObjFile): Likewise.
	(build_moduleinfo): Likewise.
	* d-todt.cc (TypeInfoTypedefDeclaration::toDt): Likewise.
	(TypeInfoEnumDeclaration::toDt): Likewise.
	(TypeInfoStructDeclaration::toDt): Likewise.

2014-05-18  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-longdouble.cc (longdouble::from_shwi): Rename to from_int.
	(longdouble::from_uhwi): Rename to from_uint.
	(longdouble::to_shwi): Rename to to_int.
	(longdouble::to_uhwi): Rename to to_uint.
	(longdouble::set): Adjust.
	(longdouble::operator): Likewise.

	* d-lang.cc (alloc_binding_level): Adjust.
	(build_d_type_lang_specific): Likewise.
	(build_d_decl_lang_specific): Likewise.
	* d-lang.h (lang_type): Don't use variable_size gty attribute.
	* d-codegen.cc (cst_to_hwi): Remove function.
	* d-codegen.cc (tree_to_hwi): Remove function.
	* d-builtins.c (gcc_type_to_d_type): Adjust.
	(gcc_cst_to_d_expr): Likewise.
	* d-convert.cc (d_truthvalue_conversion): Use integer_zerop.
	(get_nonnull_operand): Use tree_fits_uhwi_p.
	* d-longdouble.cc (longdouble::from_int): Adjust.
	(longdouble::from_uint): Likewise.
	(longdouble::to_int): Likewise.

2014-04-30  Johannes Pfau  <johannespfau@gmail.com>

	* d-lang.cc (d_init): Define GNU_SEH_Exceptions and
	GNU_DWARF2_Exceptions versions.

2014-04-21  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-lang.cc (d_init_options): Default deprecation warnings to off.
	* d-ctype.cc (TypeDelegate::toCtype): Propogate TREE_ADDRESSABLE from
	the base function to the delegatised copy.

2014-04-15  Johannes Pfau  <johannespfau@gmail.com>

	* d-lang.cc (d_handle_noclone_attribute): New function to handle
	noclone attribute. noclone is required by the naked attribute.
	* d-elem.cc (SymbolExp::toElem): Convert symbols to the expression
	type.

2014-04-13  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (get_frameinfo): Don't copy the node for frame record.
	* d-irstate.cc (IRState::endCatches): Rebuild the STATEMENT_LIST of
	catches in a TRY_CATCH_EXPR if it gets optimised away by
	IRState::popStatement.
	* d-codegen.cc (d_attribute_p): Provide access to target attributes.

2014-03-31  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (error_mark_p): Removed function, replace uses with
	error_operand_p.
	(error_mark): Removed function, replace uses with error_mark_node.
	* d-ctype.cc (Type::toCtype): Return d_unknown_type_node for frontend
	error types.
	* d-objfile.cc (VarDeclaration::toObjFile): Don't build CONST_DECLs for
	non-scalar manifests.

2014-03-23  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-decls.cc (Dsymbol::toImport): Prevent GC from collecting
	IMPORTED_DECL nodes whilst front-end compilation in progress.

2014-03-19  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (AggLayout::visit): Rename to layout_aggregate_type.
	(AggLayout::doFields, AggLayout::doInterfaces): Remove function and
	move implementation into layout_aggregate_type.
	(AggLayout::addField): Rename to insert_aggregate_field.
	(AggLayout::finish): Rename to finish_aggregate_type.
	* d-codegen.h (AggLayout): Update definition.
	* d-ctype.cc (TypeStruct::toCtype): Update for glue changes.
	(TypeFunction::toCtype): Fix ICE on generic function types.
	(TypeClass::toCtype): Move generation of vptr and monitor fields into
	layout_aggregate_type.  Moved generation of TYPE_METHODS from ...
	* d-objfile.cc (FuncDeclaration::toObjFile): ... here into
	TypeClass::toCtype.  Don't build up TYPE_METHODS on a per-function
	basis, generate the entire vtable.

2014-03-18  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-decls.cc (Dsymbol::toSymbolX): Set the symbol prettyIdent.
	(Dsymbol::toImport): Emit packages as their fully qualified names.
	(ClassDeclaration::toSymbol): Distinguish between the classinfo
	assembler and decl name.
	(InterfaceDeclaration::toSymbol): Likewise for interface symbol.
	(Module::toSymbol): Likewise for moduleinfo symbol.
	(ClassDeclaration::toVtblSymbol): Likewise for class vtable symbol.
	(AggregateDeclaration::toInitializer)
	(TypedefDeclaration::toInitializer, EnumDeclaration::toInitializer):
	Likewise for default initialisers.
	* d-objfile.cc (Module::genobjfile): Don't set-up moduleinfo symbol
	storage twice.

2014-03-17  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (d_decl_context): Fix null pointer dereference.
	* d-objfile.cc (FuncDeclaration::toObjFile): Don't override the setting
	of DECL_CONTEXT on the declaration here.
	(d_finish_symbol): Likewise.
	* d-objfile.cc (VarDeclaration::toObjFile): Move the generation of
	manifest constants to ...
	* d-decls.cc (VarDeclaration::toSymbol): ... here, and emit them as
	CONST_DECLs.  Set the DECL_CONTEXT for all variable symbols.

	* d-builtins.cc (d_gcc_magic_builtins_module): Don't store compiler
	generated builtins in Symbol::isym, use Symbol::csym instead.
	(d_gcc_magic_libbuiltins_check): Likewise.
	* d-codegen.cc (d_decl_context): Return the imported symbol tree of
	modules where the NAMESPACE_DECL is now stored.
	(d_build_module): Remove function.  Move implementation to ...
	* d-decls.cc (Dsymbol::toImport): ... here.  Build an IMPORTED_DECL for
	all imported declarations.
	(FuncDeclaration::toSymbol): Remove special handling of Symbol::isym.
	(Module::toSymbol): Remove call to d_build_module.
	* d-objfile.cc (Dsymbol::toObjFile): Handle emission of IMPORTED_DECL
	symbols to debug.

2014-03-16  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (build_attributes): Ensure D-specific attributes have
	their value interpreted through CTFE.

2014-02-21  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (d_build_module): Update signature to accept a Loc
	location to the module declaration.
	* d-decls.cc (Module::toSymbol): Update call to d_build_module.
	Set TREE_PUBLIC/DECL_EXTERNAL to distingush which modules are being
	compiled.
	* d-objfile.cc (Dsymbol::toObjFile): Handle Import symbols, and emit
	debug information for imported modules.
	(ImportStatement::toIR): Likewise.
	(set_input_location): New function to implement the equivalent of
	set_decl_location, but instead sets input_location.

2014-02-19  Johannes Pfau  <johannespfau@gmail.com>

	* d-objfile.cc (build_call_function): Call set_input_location
	to set debug info correctly

2014-02-18  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-objfile.cc (VarDeclaration::toObjFile): Remove toplevel check.
	DECL_CONTEXT is never set on manifest constants.
	(d_finish_compilation): Remove fancy check on force outputting
	symbols to object file.
	(build_type_decl): Don't emit the qualified identifier in debug
	information.  The fully qualified name is now determined through the
	NAMESPACE_DECL context chain.
	* d-ctype.cc (TypeEnum::toCtype): Likewise for enum members.
	(VarDeclaration::toSymbol): Likewise for static variables.
	(FuncDeclaration::toSymbol): Likewise for functions.

	* d-decls.cc (FuncDeclaration::toSymbol): Don't emit the 'D main'
	symbol to debug as plain 'main'.
	* d-objfile.cc (VarDeclaration::toObjFile): Don't emit the qualified
	identifier of manifest constants in debug information.

2014-02-17  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (d_build_module): New function.
	* d-decls.cc (Module::toSymbol): Use d_build_module to build up the
	qualified module namespace.

	* d-codegen.cc (expand_intrinsic_op, expand_intrinsic_op2): New
	functions to build a call to a builtin code.
	(expand_intrinsic_bsr, expand_intrinsic_bt): New functions to expand a
	BUILTIN_FRONTEND call to core.bitop intrinsics.
	(expand_intrinsic_vaarg, expand_intrinsic_vastart): New functions to
	expand a BUILTIN_FRONTEND call to core.vararg intrinsics.
	(maybe_expand_builtin): Update.

2014-02-16  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-decls.cc (Module::toSymbol): Build a NAMESPACE_DECL to populate the
	DECL_CONTEXT of toplevel functions.
	* d-codegen.cc (d_decl_context): Return the enclosing module
	NAMESPACE_DECL as the decl context only when the symbol is extern(D)
	and not D main.

2014-02-15  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-decls.cc (VarDeclaration::toSymbol): Don't call
	setup_symbol_storage until after SET_DECL_ASSEMBLER_NAME has been set.

	* d-decls.cc (VarDeclaration::toSymbol): Give prettyIdent precedence
	for the DECL_NAME over the simple identifier.
	(FuncDeclaration::toSymbol): Likewise.
	* d-objfile.cc (d_finish_symbol): Remove setting DECL_NAME as
	prettyIdent, this has already been done in Declaration::toSymbol.
	(d_finish_function): Likewise.

	* d-decls.cc (VarDeclaration::toSymbol): Call set_user_assembler_name
	if pragma(mangle) was seen.
	(FuncDeclaration::toSymbol): Likewise.

2014-02-12  Johannes Pfau  <johannespfau@gmail.com>

	* d-decls.cc (FuncDeclaration::toSymbol): Do not set TREE_NOTHROW on
	nothrow functions.
	* d-decls.cc (TypeInfoDeclaration::toSymbol): Call relayout_decl after
	changing the type.

2014-02-03  Iain Buclaw  <ibuclaw@gdcproject.org>


	* d-codegen.cc (d_build_call): Remove special handling of
	flag_split_darrays switch.
	(maybe_expand_builtin): Likewise.
	* d-elem.cc (CatExp::toElem): Likewise.
	* lang.opt (fsplit-dynamic-arrays): Remove.

2014-02-02  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-glue.cc (readFile, writeFile, ensurePathToNameExists): Define.
	* d-incpath.cc (add_import_path): Update for frontend changes.
	(add_fileimp_path): Likewise.
	* d-lang.cc (deps_write): Likewise.
	(d_parse_file): Likewise.
	* d-todt.cc (Dts): Update define for frontend changes.
	* d-decls.cc (ClassDeclaration::toVtblSymbol): Don't mark __vtbl
	symbols as virtual.  They are global static symbols.

2014-01-12  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-decls.cc (EnumDeclaration::toDebug): Build TYPE_DECL only for
	enumeral types.

2014-01-06  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-ctype.cc (TypeClass::toCtype): Don't add __monitor field for
	extern(C++) classes.

	* d-builtins.c (d_gcc_magic_module): Remove tdata.
	* d-codegen.cc (build_interface_binfo): Likewise.
	* d-ctype.cc (TypeEnum::toCtype): Likewise.
	(TypeClass::toCtype): Likewise.
	* d-lang.cc (deps_write): Likewise.

2014-01-05  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-ctype.cc (TypeEnum::toCtype): Don't push CONST_DECLs into current
	function.
	* d-decls.cc (FuncDeclaration::toThunkSymbol): Don't mark symbol as
	TREE_PRIVATE, just TREE_PUBLIC as false.
	(StructLiteralExp::toSymbol): Likewise.
	(ClassReferenceExp::toSymbol): Likewise.
	* d-objfile.cc (d_comdat_linkage): Likewise.
	(d_finish_symbol): Likewise.
	(build_moduleinfo): Likewise.

	* config-lang.in: Add d-lang.cc to gtfiles.
	* d-irstate.h (IRState::varsInScope): Change from Array to vec<> type.
	(IRState::statementList_): Likewise.
	(IRState::scopes_): Likewise.
	(IRState::loops_): Likewise.
	(IRState::labels_): Likewise.
	* d-lang.h (d_bi_builtin_func): Remove declaration.
	(d_bi_builtin_type): Likewise.
	(d_keep_list): Likewise.
	* d-objfile.h (Symbol::thunks): Change from Array to vec<> type.
	(ModuleInfo::classes): Likewise.
	(ModuleInfo::ctors): Likewise.
	(ModuleInfo::dtors): Likewise.
	(ModuleInfo::ctorgates): Likewise.
	(ModuleInfo::sharedctors): Likewise.
	(ModuleInfo::shareddtors): Likewise.
	(ModuleInfo::sharedctorgates): Likewise.
	(ModuleInfo::unitTests): Likewise.
	(build_simple_function): Remove declaration.
	(build_call_function): Likewise.
	(build_ctor_function): Likewise.
	(build_dtor_function): Likewise.
	(build_unittest_function): Likewise.
	* d-builtins.c (bi_fn_list): Rename to gcc_builtins_functions.
	(bi_lib_list): Rename to gcc_builtins_libfuncs.
	(bi_type_list): Rename to gcc_builtins_types.
	(builtin_converted_types): Remove.
	(builtin_converted_decls): Change from Array to vec<> type.
	(gcc_type_to_d_type): Update.
	(d_bi_builtin_func): Remove and move to d_builtin_function.
	(d_bi_builtin_type): Remove and move to d_register_builtin_type.
	(d_gcc_magic_builtins_module): Update.
	* d-ctype.cc (TypeClass::toCtype): Remove unused var.
	* d-decls.cc (FuncDeclaration::toThunkSymbol): Update for change to
	vec<> type.
	* d-elem.cc (CatExp::toElem): Change stashed vars from Array to vec<>.
	(Expression::toElemDtor): Update for change to vec<> type.
	* d-irstate.cc (IRState::startFunction): Likewise.
	(IRState::endFunction): Likewise.
	(IRState::addExp): Likewise.
	(IRState::pushStatementList): Likewise.
	(IRState::popStatementList): Likewise.
	(IRState::getLabelBlock): Likewise.
	(IRState::getLoopForLabel): Likewise.
	(IRState::beginFlow): Likewise.
	(IRState::endFlow): Likewise.
	(IRState::startScope): Likewise.
	(IRState::pushLabel): Likewise.
	(IRState::checkGoto): Likewise.
	(IRState::checkPreviousGoto): Change from Array to Blocks type.
	* d-lang.cc (global_declarations): Change from Array to vec<> type.
	(d_add_global_declaration): Update for change to vec<> type.
	(d_write_global_declarations): Likewise.
	(d_keep_list): Make static to source file.
	* d-objfile.cc (static_ctor_list): Change from Array to vec<> type.
	(static_dtor_list): Likewise.
	(Module::genobjfile): Update for change to vec<> type.
	(d_finish_module): Likewise.
	(d_finish_function): Likewise.
	(deferred_thunks): Change from ArrayBase<> to vec<> type.
	(write_deferred_thunks): Update for change to vec<> type.
	(use_thunk): Likewise.
	(build_simple_function): Make static to source file.
	(build_call_function): Likewise.
	(build_ctor_function): Likewise.
	(build_dtor_function): Likewise.
	(build_unittest_function): Likewise.

2014-01-02  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-objfile.cc (setup_symbol_storage): Use output_module_p on template
	instantiating module to determine if symbol is externally compiled.
	(d_finish_function): Set function local if function body was compiled.
	* d-decls.cc (Dsymbol::toSymbolX): Use unsigned integer format for the
	prefix string length.


Copyright (C) 2014 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.