summaryrefslogtreecommitdiff
path: root/gcc/d/ChangeLog-2013
blob: eeb12c9665d0e6dd9fc2a62234cb5f3a0e47e2a1 (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
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
2013-12-27  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (build_two_field_type): Declare builtin types as
	toplevel declarations.
	* d-ctype.cc (EnumDeclaration::toDebug): Build type decl in debug code.
	* d-lang.cc (nametype): Rename to d_nametype.

2013-12-23  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-decls.cc (EnumDeclaration::toDebug): Don't send array types to
	rest_of_type_compilation.

2013-12-16  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-spec.cc (lang_specific_driver): Require linking in library for all
	files except D interface files.
	* d-lang.cc (d_write_global_declarations): Call d_finish_compilation.
	* d-objfile.cc (mark_needed): Mark static.
	(d_finish_symbol): Don't call mark_needed.
	(d_finish_function): Likewise.
	(d_finish_compilation): New function to wrapup all global
	declarations, mark templates/comdats as needed if required, and start
	the final compilation.

2013-12-10  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-ctype.cc (TypeVector::toCtype): Treat void vectors as ubyte.
	* d-objfile.cc (VarDeclaration::toObjFile): Gag all errors compiling
	manifest constants.
	* d-todt.cc (TypeVector::toDt): New function to generate correct static
	data for vector initialisers.

2013-12-05  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-lang.cc (d_init_options_struct): Don't define strict aliasing.
	(d_get_alias_set): New function to return language-specific alias set.
	* d-convert.cc (d_convert_basic): Always zero extend pointer to integer
	conversions.

2013-12-04  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (maybe_set_builtin_frontend): Assert that all runtime
	library functions have been set-up correctly.
	(libcall_ids): Remove unhandled library functions.
	(get_libcall): Likewise.
	* d-codegen.h (LibCall): Likewise.
	* d-objfile.cc (output_symbol_p): Remove.

2013-12-03  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-lang.cc (d_init_options): Update for frontend changes.
	(d_handle_option): Set frontend allInst option if -femit-templates.
	* d-objfile.cc (output_template_p): Want to emit all instantiated
	templates if -femit-templates or -fdebug was passed to the compiler.
	* d-objfile.h (TemplateEmission): Define TEallinst.
	* d-todt.cc (StructDeclaration::toDt): Update for frontend changes.
	* d-spec.cc (THREAD_LIBRARY): Define default thread library to link if
	one is not already specified in the configuration process.
	(TIME_LIBRARY): Define default real time library to link if one is not
	already specified in the configuration process.
	(LIBSTDCXX): Define C++ library to link if compiling C++ and D sources.
	(lang_specific_driver): Update implementation to use new macros.

2013-12-02  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-elem.cc (CatAssignExp::toElem): Don't call postblit after element
	append to array.
	(NewExp::toElem): Handle calling 'new' on opaque types.
	(ArrayLiteralExp::toElem): Ensure array literal elements have no side
	effects by making temporaries as necessary.
	* d-todt.cc (StructLiteralExp::toDt): Update for frontend changes.
	* d-codegen.cc (build_frame_type): Check for scoped variables if
	building a closure.
	* d-objfile.cc (d_finish_symbol): Relax toDt checking rule.

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

	* d-asmstmt.cc (ExtAsmStatement::ExtAsmStatement): Remove labels
	member from class.
	* d-codegen.cc (d_gcc_force_templates): Remove.
	(convert_expr): Update for frontend changes.
	(convert_for_assignment): Likewise.
	(maybe_set_builtin_frontend): Update for changes to libdruntime
	core.bitops signatures.
	* d-ctype.cc (TypeFunction::toCtype): Update for frontend changes.
	* d-decls.cc (Dsymbol::toSymbolX): Likewise.
	(VarDeclaration::toSymbol): Likewise.
	(FuncDeclaration::toSymbol): Don't defer nested functions here.
	* d-elem.cc (PowAssignExp::toElem): Update for frontend changes.
	(DeleteExp::toElem): Likewise.
	(AssertExp::toElem): Don't call invariant on an extern C++ class.
	* d-glue.cc (Global::init): Initialise new stdmsg member.
	* d-lang.cc (d_handle_option): Handle -fdeps switch.  Remove TEprivate
	for -femit-templates switch.
	(genCmain): Update for frontend changes.
	(d_parse_file): Likewise.
	* d-longdouble.cc (longdouble::dump): Likewise.
	* d-objfile.cc (ClassDeclaration::toObjFile): Update for frontend
	changes.
	(InterfaceDeclaration::toObjFile): Likewise.
	(EnumDeclaration::toObjFile): Likewise.
	(Symbol::Symbol): Remove outputSymbol member.
	(output_symbol_p): Mark static.
	(output_declaration_p): Determine symbol codegen status from
	semanticRun.
	(output_template_p): New function to determine whether an instantiated
	template is to be written to object file.
	(FuncDeclaration::toObjFile): Use semanticRun to update codegen status
	of function.
	(FuncDeclaration::buildClosure): Error if putting a scoped variable in
	a closure.
	(Module::genobjfile): Update for frontend changes.
	(d_comdat_linkage): Don't determine linkage from TE setting.  Mark all
	comdat symbols as DECL_COMDAT.
	(setup_symbol_storage): Use output_template_p to determine whether the
	symbol is being written to object file.
	(mark_needed): New function to mark decls that must be emitted.
	(d_finish_symbol): Mark finished symbols as needed.
	(d_finish_function): Mark finished functions as needed.
	(build_simple_function): Set semanticRun for glue changes.
	* d-objfile.h (OutputStage): Remove enum.
	* d-todt.cc (build_vptr_monitor): Update for frontend changes.
	(StructInitializer::toDt): Likewise.
	(StructDeclaration::toDt): Likewise.
	(TypeInfoEnumDeclaration::toDt): Likewise.
	(TypeInfoStructDeclaration::toDt): Likewise.
	(Type::getTypeInfo): Likewise.

2013-11-30  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-lang.cc (genCmain): Implement code generation of __entrypoint
	module to provide the target C main function.
	(deps_write): Ignore the module __entrypoint when writing make deps.
	(d_parse_file): Handle writing __entrypoint module to object file.
	* d-objfile.cc (d_finish_symbol): Remove special handling of _tlsstart
	symbol, but ensure _tlsend gets written to the thread common section.
	(d_finish_function): Remove call to build_tlssections.
	(build_tlssections): Remove.

2013-11-29  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-decls.cc (ClassDeclaration::toVtblSymbol): Use TypeSArray::makeType
	to generate frontend static array type.
	* d-glue.cc (Dsymbol::ungagSpeculative): Define.
	* d-lang.cc (genCmain): Define as empty.
	(d_parse_file): Update for frontend changes.
	* d-objfile.cc (StructDeclaration::toObjFile): Likewise.
	* d-typinf.cc (TypeBasic::builtinTypeInfo): Likewise.
	* d-longdouble.cc (longdouble::isIdenticalTo): Remove.
	* d-port.cc (Port::fequal): Define.

2013-11-28  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-builtins.cc (gcc_type_to_d_type): Use TypeSArray::makeType to
	generate frontend static array types.
	* d-codegen.cc (build_attributes): Use optimize as don't want the
	ctfeInterpret of TypeExp expressions.
	(get_object_method): Update for frontend changes.
	(get_libcall): Update to use Type::dtypeinfo.
	* d-elem.cc (IndexExp::toElem): Don't generate bounds checking codegen
	if frontend explictly requests it.
	(ArrayLiteralExp::toElem): Use TypeSArray::makeType to generate
	frontend static array type.
	(StructLiteralExp::toElem): Update for frontend changes.
	* d-glue.cc (Global::increaseErrorCount): Define.
	* d-objfile.cc (Module::genmoduleinfo): Remove moduleinfo 'New'
	implementation for libdruntime changes.
	* d-todt.cc (StructLiteralExp::toDt): Literal initialisers override
	default initialisers.
	(TypeInfoDeclaration::toDt): Update to use Type::dtypeinfo.
	(TypeInfoStructDeclaration::toDt): Update for frontend changes.
	* d-typinf.c (Type::getInternalTypeInfo): Update to use
	Type::dtypeinfo.

2013-11-25  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-asmstmt.cc (ExtAsmStatement::comeFromImpl): Define for frontend
	implementation changes.
	* d-codegen.cc (get_libcall): Update to use Type::typeinfoclass.
	* d-codegen.cc (WrappedExp): Define as class.
	* d-convert.cc (d_convert_basic): Fix format warnings.
	* d-decls.cc (ModuleInfoDeclaration::toSymbol): Remove.
	(FuncDeclaration::toSymbol): Use mangleExact to get decl mangle.
	* d-elem.cc (ClassReferenceExp::toElem): Return reference to class.
	* d-glue.cc (verror): Fix format warnings.
	(verrorSupplemental): Likewise.
	(vwarning): Likewise.
	(vdeprecation): Likewise.
	(escapePath): Define for frontend implementation changes.
	* d-irstate.cc (IRState::getLoopForLabel): Implement breaking on named
	scope labels in for/while loops.
	* d-lang.cc (d_handle_option): Add handler for new -fdeps and
	-fmake-deps options.
	(d_parse_file): Handle new -fdeps and fmake-deps options.
	* d-objfile.cc (Dsymbol::toObjFile): Update to use RootObject.
	(Type::typeinfoclass): Update to use Type::typeinfoclass.
	(InterfaceDeclaration::toObjFile): Likewise.
	* d-objfile.h (Symbol): Remove inheritance from Object.
	* d-todt.cc (TypeInfoStructDeclaration::toDt): Update to use
	Type::immutableOf.

2013-11-24  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-builtins.c (gcc_type_to_d_type): Use TREE_INT_CST_LOW macro instead
	of tree_low_cst.
	(eval_builtin): Likewise.
	(gcc_cst_to_d_expr): Use tree_cst_hwi.
	* d-codegen.cc (tree_to_hwi): Remove call to deleted host_integerp.
	(maybe_expand_builtin): Use TREE_INT_CST_LOW macro.
	* d-lang.cc (d_parse_file): Update debug_hooks call for middle-end
	changes.
	* d-system.h: Update includes for middle-end changes.

2013-11-17  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-objfile.cc (finish_thunk): Update for conversion of symtab types to
	a true class hierarchy.

	* d-ctype.cc (TypeClass::toCtype): Fix ABI to emit correct vtable and
	monitor field names.

	* d-ctype.cc (TypeClass:toCtype): Set TYPE_LANG_SPECIFIC on record as
	well as reference type.
	* d-lang.cc (d_classify_record): New langhook to return appropriate
	class/interface/struct type to the debugger.

2013-10-27  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-elem.cc (ArrayLiteralExp::toElem): Build empty constructor for zero
	sized arrays.

2013-10-23  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-elem.cc (AssignExp::toElem): Optimise assigning array literal to a
	static array.
	(ArrayLiteralExp::toElem): Do not allocate static or const array
	literals on the heap using the GC.

2013-10-16  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-builtins.c (DEF_FUNCTION_TYPE_8): Define.

2013-10-10  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-builtins.c (gcc_cst_to_d_expr): Add support for VECTOR_CST to
	Expression conversion.
	(d_gcc_paint_type): Add support for painting to/from array literals.

2013-10-01  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-objfile.cc (cvtLocToloc_t): Rename to get_linemap.
	* d-glue.cc: New source to provide interface for defined globals and
	error handling called from the front-end.

2013-09-16  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (IRState::call): Rename to d_build_call.
	(IRState::emitLocalVar): Rename to build_local_var.
	(IRState::buildAssignOp): Move to BinExp::toElemBin.
	(IRState::IRState): Remove IRState class.
	* d-irstate.cc (IRBase::IRBase): Rename to IRState, remove inheritance
	from Object class.
	* d-decls.cc (VarDeclaration::toSymbol): Remove redundant CONST_DECL
	code as VarDeclaration::toObjFile does not emit manifest constants.
	* d-ctype.cc (TypeEnum::toCtype): Generate CONST_DECLs for enumeration
	members for correct debugging.
	* d-objfile.cc (build_type_decl): Use fully qualified type name in
	debugging code.
	(VarDeclaration::toObjFile): Emit manifest constant values in debug
	code generation.

2013-09-10  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-elem.cc (SliceExp::toElem): Don't build D array for slices that
	return a static array.

2013-09-03  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (IRState::buildOp): Rename to build_binary_op.

2013-09-01  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-decls.cc (binfo_for): Rename to build_class_binfo.
	(intfc_binfo_for): Rename to build_interface_binfo.
	(ClassDeclaration::toDebug): Move binfo generation into toCtype.
	* d-lang.cc (pushlevel): Rename to push_binding_level.
	(poplevel): Rename to pop_binding_level.
	(global_bindings_p): Rename to d_global_bindings_p, add langhook.
	(pushdecl): Rename to d_pushdecl, add langhook.
	(getdecls): Rename to d_getdecls, add langhook.
	(set_block): Remove function.
	(insert_block): Remove function.
	* d-irstate.cc (IRBase::startBindings): Inline set_block here.
	(IRBase::endBindings): Inline insert_block here.

2013-08-29  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-spec.c (lang_specific_spec_functions): Remove.

2013-08-28  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (IRState::doArraySet): Rename to IRBase::doArraySet.
	(IRState::arraySetExpr): Remove function.
	(IRState::expandDecl): Rename to expand_decl.
	(IRState::typeinfoReference): Rename to build_typeinfo.
	(IRState::buildChain): Merge into FuncDeclaration::buildClosure.
	(IRState::getVThis): Rename to build_vthis.
	(IRState::maybeExpandSpecialCall): Rename to maybe_expand_builtin.
	(IRState::toDArray): Rename to d_array_convert.

2013-08-26  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (convert_expr): Check that the class type the codegen is
	casting from is a base class of the class type the codegen is casting
	to, not the other way round.

2013-08-14  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-elem.cc (ArrayLiteralExp::toElem): Return null for zero length
	array literals.

2013-08-07  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-objfile.cc (finish_thunk): Don't emit thunks to external symbols as
	weakref declarations.
	* d-codegen.cc (IRState::maybeExpandSpecialCall): Remove intrinsic yl2x
	and yl2xp1 builtins.
	(maybe_set_builtin_frontend): Likewise.

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

	* d-builtins.c (d_gcc_magic_builtins_module): Set builtins solely
	provided by the compiler as @safe, pure and nothrow.
	* d-codegen.cc (IRState::getVThis): Don't set outer 'this' of structs
	to be parent function chain if no frame has been created.

2013-07-08  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-elem.cc (Expression::toElemDtor): Wrap temp variables destructor
	calls in a try/finally expression.

2013-07-05  Johannes Pfau  <johannespfau@gmail.com>

	* patch-versym-os-4.8.x: Set versions on powerpc and alpha.
	Remove SysV4 support and therefore fix macro redefinition warnings.
	* patch-versym-os-4.9.x: Likewise.

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

	* d-longdouble.cc (longdouble::set): Intepret set values at higher
	precision for min/max properties.
	* d-codegen.cc (maybe_set_builtin_frontend): Add yl2x and yl2xp1
	math intrinsics.
	(IRState::maybeExpandSpecialCall): Likewise.

2013-07-02  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-objfile.cc (Module::genobjfile): Don't free current_module_info.
	* d-codegen.cc (IRState::buildAssignOp): Don't create a SAVE_EXPR
	around comma expressions used as lvalues.
	* d-todt.cc (TypeSArray::toDtElem): Get underlying vector basetype when
	layouting out data in a static array.

2013-06-29  Iain Buclaw  <ibuclaw@gdcproject.org>

	* complex_t.h: Move into dfrontend.
	* d-builtins.c (gcc_cst_to_d_expr): Explicitly create longdouble.
	* d-longdouble.cc (longdouble::parse): Remove function.
	(longdouble::longdouble): Remove constructors from longdouble.
	Replaced with operator= template and longdouble::set.
	(longdouble::rv): Update for new class layout.
	(longdouble::from_shwi): New function to create a longdouble value
	from a HOST_WIDE_INT.
	(longdouble::from_uhwi): Likewise, but from an unsigned HOST_WIDE_INT.
	(longdouble::to_shwi): New function to return a HOST_WIDE_INT value
	from a longdouble.
	(longdouble::to_uhwi): Likewise, but from an unsigedn HOST_WIDE_INT.
	(longdouble::set): New function to explicitly set longdouble value.
	(longdouble::toInt): Remove function.
	(longdouble::isZero): Remove function.
	(longdouble::isNegative): Remove function.
	* d-port.cc (Port::nan): Rename to Port::ldbl_nan.
	(Port::infinity): Rename to Port::ldbl_infinity.
	(Port::ldbl_max): New static field.
	(Port::init): Set ldbl_max to be maximimum value for long double type.
	(Port::strtof): New function to convert string to longdouble.
	(Port::strtod): Likewise.
	(Port::strtold): Likewise.

2013-06-24  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-objfile.cc (make_alias_for_thunk): Do not set
	TREE_SYMBOL_REFERENCED.

2013-06-17  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (build_struct_memcmp): New function.
	* d-elem.cc (IdentityExp::toElem): Use build_struct_memcmp for field
	comparisons of small structs.

2013-06-13  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (make_temp): New function.
	* d-decls.cc (StructLiteralExp::toSymbol): Implement correctly to
	generate an anonymous symbol to reference to in the codegen.
	(ClassReferenceExp::toSymbol): Likewise, but also use an anonymous
	type as size is not determined until the data has been layed out.
	* d-elem.cc (EqualExp::toElem): Optimise comparisons of arrays of basic
	types, also ensure left-to-right evaluation.
	(SliceExp::toElem): Handle returing slice as a static array type.
	(AddrExp::toElem): Handle taking the address of StructLiteralExp and
	ClassReferenceExp symbols.
	(FuncExp::toElem): Relax type checking to allow returning function
	addresses as generic pointer types.
	(ArrayLiteralExp::toElem): Implicitly convert static arrays of void to
	static arrays of ubyte.
	(StructLiteralExp::toElem): Remove code generation of postblit calls,
	now taken care of in the front end.
	* d-objfile.cc (Module::genmoduleinfo): Emit module name as a null
	terminated static array.
	* d-ctype.cc (TypeAArray::toCtype): Pass AA types around like pointers.

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

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

	* d-builtins.c (gcc_type_to_d_type): Use Loc for unknown locations.
	(d_gcc_magic_builtins_module): Likewise.
	(gcc_cst_to_d_expr): Likewise.
	* d-codegen.cc (get_libcall): Use FuncDeclaration::genCfunc to build
	D runtime library functions.
	* d-decl.cc (SymbolDeclaration::SymbolDeclaration): Remove function.
	(StructLiteralExp::toSymbol): New function.
	(ClassReferenceExp::toSymbol): New function.
	* d-elem.cc (AssertExp::toElem): Call struct/class invariants only if
	compiler is generating invariant code.
	(TupleExp::toElem): Update for new front-end.
	(ClassReferenceExp::toElem): New function.
	* d-lang.cc (d_init_options): Set compiler.vendor front-end parameter.
	(d_init): Call Expression::init.
	* d-objfile.cc (InterfaceDeclaration::toObjFile): Correctly set the
	xgetRTInfo field in the record layout.
	* d-todt.cc (CastExp::toDt): New function.
	(AddrExp::toDt): New function.
	(ClassReferenceExp::toDt): New function.
	(ClassReferenceExp::toDtI): New function.
	(ClassReferenceExp::toInstanceDt): New function.
	(ClassReferenceExp::toDt2): New function.

2013-06-10  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-objfile.cc (FuncDeclaration::toObjFile): Set 'this' parameter as
	implicitly read-only.
	* d-codegen.cc (declaration_type): Set 'this' declaration type as
	implicitly const.
	(build_frame_type): Set frame or closure type as implicitly const.

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

	* d-builtins.c (d_init_builtins): Make d_unknown_type_node a
	RECORD_TYPE.
	* d-lang.cc (d_build_eh_type_type): Cast the returned typeinfo decl to
	void pointer type.

2013-06-07  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (IRState::var): Rename to get_decl_tree.
	(IRState::convertForArgument): Rename to convert_for_argument.
	(IRState::floatMod): Rename to build_float_modulus.
	(IRState::findThis): Rename to find_this_tree.
	(IRState::emitLocalVar): Update signature.
	(IRState::arrayElemRef): Remove function.
	* d-elem.cc (IndexExp::toElem): Move implementation of
	IRState::arrayElemRef here.

2013-06-04  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (cmodule): Rename to current_module_decl.
	(object_file): Remove variable.
	* d-objfile.cc (ObjectFile::moduleInfo): Rename to current_module_info.
	(ObjectFile::modules): Rename to output_modules.
	(ObjectFile::staticCtorList): Rename to static_ctor_list.
	(ObjectFile::staticDtorList): Rename to static_dtor_list.
	(ObjectFile::emitTemplates): Rename to flag_emit_templates.
	(ObjectFile::beginModule): Remove function.
	(ObjectFile::endModule): Remove function.
	(ObjectFile::finish): Rename to d_finish_module.
	(ObjectFile::doLineNote): Remove function.
	(ObjectFile::setLoc): Rename to set_input_location.
	(ObjectFile::setDeclLoc): Rename to set_decl_location.
	(ObjectFile::setCfunEndLoc): Rename to set_function_end_locus.
	(ObjectFile::giveDeclUniqueName): Rename to get_unique_name.
	(ObjectFile::setupSymbolStorage): Rename to setup_symbol_storage.
	(ObjectFile::setupStaticStorage): Remove function.
	(ObjectFile::makeDeclOneOnly): Rename to d_comdat_linkage.
	(ObjectFile::outputStaticSymbol): Rename to d_finish_symbol.
	(ObjectFile::outputFunction): Rename to d_finish_function.
	(ObjectFile::addAggMethod): Remove function.
	(ObjectFile::initTypeDecl): Rename to build_type_decl.
	(ObjectFile::declareType): Remove function.
	(ObjectFile::shouldEmit): Rename to output_declaration_p.
	(ObjectFile::shouldEmit): Rename variant to output_symbol_p.
	(ObjectFile::doThunk): Rename to use_thunk.
	(ObjectFile::stripVarDecl): Remove function.
	(ObjectFile::doSimpleFunction): Rename to build_simple_function.
	(ObjectFile::doFunctionToCallFunctions): Rename to
	build_call_function.
	(ObjectFile::doCtorFunction): Rename to build_ctor_function.
	(ObjectFile::doDtorFunction): Rename to build_dtor_function.
	(ObjectFile::doUnittestFunction): Rename to build_unittest_function.
	(ObjectFile::hasModule): Rename to output_module_p.
	(ObjectFile::outputThunk): Rename to finish_thunk.
	(write_deferred_thunks): New function to emit deferred thunks.

2013-06-03  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-decls.cc (VarDeclaration::toSymbol): Don't set default tls model.
	* d-objfile.cc (ObjectFile::setupSymbolStorage): Set default tls
	model for var decls before determining whether symbol is public.
	(build_tlssections): Likewise for TLS symbols.

2013-06-01  Johannes Pfau  <johannespfau@gmail.com>

	* d-codegen.cc (maybe_set_builtin_frontend): Check parameter and
	return types of intrinsics.

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

	* d-codegen.cc (IRState::var): Handle variables used for NRVO.
	* d-ir.cc (ReturnStatement::toIR): Return result decl directly if NRVO.
	* d-objfile.cc (Symbol::SnamedResult): New member to hold the named
	RESULT_DECL of the function.
	(FuncDeclaration::toObjFile): Set-up function for NRVO.
	(build_tlssections): Align _tlsstart and _tlsend symbols to target
	address size.
	* d-ctype.cc (TypeFunction::toSymbol): Mark functions returning non-POD
	structs as TREE_ADDRESSABLE to force return in memory.
	* d-decls.cc (FuncDeclaration::toSymbol): Propagate TREE_ADDRESSABLE
	from the original function type.

2013-05-29  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-target.cc: New source file to handle Target structure.

	* d-builtins.c (d_bi_init): Remove function.
	(d_gcc_type_align): Move to Target::alignsize.
	(d_gcc_field_align): Move to Target::fieldalign.
	(d_init_builtins): Build va_list type for D frontend.
	* d-lang.cc (d_init): Use isLP64 to determine LP64 targets.
	(d_add_builtin_version): Set is64bit if target is X86_64.
	* d-codegen.cc (convert_for_assignment): Use memset to implement front
	end code (struct = 0) here, rather than build an empty constructor.
	* d-elem.cc (AssignExp::toElem): Remove handling of (struct = 0) and
	call convert_for_assignment.

2013-05-28  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-gcc-complex_t.h: Rename to complex_t.h.
	* d-gcc-real.cc: Rename to d-longdouble.cc.
	* d-gcc-real.h: Rename to longdouble.h
	* d-port.cc: New source file to handle Port structure.
	* gdc_alloca.h: Remove source.

	* d-longdouble.cc (real_t): Rename to longdouble.
	(longdouble::getnan): Move to Port::nan.
	(longdouble::getsnan): Move to Port::snan.
	(longdouble::getinfinity): Move to Port::infinity.
	(longdouble::isInf): Move to Port::isInfinite.
	(longdouble::isNan): Move to Port::isNan.
	(longdouble::isSignallingNan): Move to Port::isSignallingNan.
	* d-builtins.c (gcc_d_backend_init): Rename to d_backend_init.
	(gcc_d_backend_term): Rename to d_backend_term.
	(gcc_type_to_d_type): Don't map 128bit integers to D front end.

	* d-elem.cc (AssignExp::toElem): Remove handling of fillHoles, use
	memset to implement (struct = 0).
	(StructLiteralExp::toElem): Handle fillHoles here, creating a
	temporary var that is zero init'd with memset and returned.

2013-05-27  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (IRState::localVar): Rename to build_local_var.
	(IRState::exprVar): Rename to create_temporary_var.
	(IRState::maybeExprvar): Rename to maybe_temporary_var.
	(IRState::pointerIntSum): Rename to build_array_index.
	* d-lang.cc (d_handle_target_attribute): New function to handle D
	target attributes.

2013-05-26  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-incpath.cc (prefixed_path): Add cpp_GCC_INCLUDE_DIR back in as
	second method for relocation.
	* d-elem.cc (IndexExp::toElem): Fix call to _aaGetX as from
	IRState::toElemLvalue.
	* d-codegen.cc (IRState::toElemLvalue): Remove function.
	(IRState::convertForAssignment): Rename to convert_for_assignment.
	(IRState::convertForCondition): Rename to convert_for_condition.
	(IRState::checkedIndex): Rename to d_checked_index.
	(IRState::boundsCond): Rename to d_bounds_condition.
	(IRState::arrayBoundsCheck): Rename to array_bounds_check.
	(IRState::assertCall): Rename to d_assert_call.
	(IRState::doLineNote): Move to irstate.h.
	* d-irstate.cc (IRBase::getLocalContext): Remove function.
	* d-decls.cc (VarDeclaration::toSymbol): Build decl lang specific for
	decl to point back to D front end type.
	(FuncDeclaration::toSymbol): Likewise.

2013-05-23  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (AggLayout::finish): Unset TYPE_SIZE before
	re-calculating.
	* d-ctype.cc (TypeStruct::toCtype): Don't call decl_attribute on the
	type twice.

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

	* d-lang.cc (d_gcc_dump_source): Remove function.
	(d_post_options): Set flag_excess_precision_cmd as standard.
	* d-gcc-real.cc (real_t::convert): Remove function.
	(real_t::floatCompare): Remove function.
	(real_t::operator): Always perform floating point compilation at the
	precision of the target real mode.
	* d-todt.cc (dt_last): Remove function.
	(dtlist_to_tree): Rename to dtvector_to_tree.
	(dt_cons): Replace TREE_CHAIN implementation for use of CONSTRUCTOR.
	(dt_chainon): Likewise.
	(dt_container): Likewise.
	(dt_container2): Likewise.
	(StructInitializer::toDt): Likewise.
	(StructLiteralExp::toDt): Likewise.

2013-05-17  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (IRState::convertTo): Replace with d_convert and
	convert_expr.
	(IRState::declContext): Replace with d_decl_context.
	(IRState::functionNeedsChain): Replace with needs_static_chain.
	(IRState::label): Replace with d_build_label.
	(IRState::emitTemplates): Move to ObjectFile.
	(functionDegenerateClosure): Replace with is_degenerate_closure.
	(get_object_method): Assert that function is a method.
	(IRState::startCond): Move to IRBase.
	(IRState::startElse): Likewise.
	(IRState::endCond): Likewise.
	(IRState::startLoop): Likewise.
	(IRState::continueHere): Likewise.
	(IRState::setContinueLabel): Likewise.
	(IRState::exitIfFalse): Likewise.
	(IRState::endLoop): Likewise.
	(IRState::startCase): Likewise.
	(IRState::doCase): Likewise.
	(IRState::endCase): Likewise.
	(IRState::continueLoop): Likewise.
	(IRState::exitLoop): Likewise.
	(IRState::startTry): Likewise.
	(IRState::startCatches): Likewise.
	(IRState::startCatch): Likewise.
	(IRState::endCatch): Likewise.
	(IRState::endCatches): Likewise.
	(IRState::startFinally): Likewise.
	(IRState::endFinally): Likewise.
	(IRState::doReturn): Likewise.
	(IRState::doJump): Likewise.
	(IRState::pushLabel): Likewise.
	(IRState::checkSwitchCase): Likewise.
	(IRState::checkGoto): Likewise.
	(IRState::checkPreviousGoto): Likewise.

	* d-elem.cc (CatAssignExp::toElem): Call postblit on appending array of
	structs if required.

2013-05-16  Johannes Pfau  <johannespfau@gmail.com>

	* d-incpath.cc (prefixed_path): use cpp_PREFIX instead of
	cpp_GCC_INCLUDE_DIR for relocation.

2013-05-16  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (IRState::convertForAssignment): Remove use of
	CtorEltMaker wrapper for vec<constructor_elt, va_gc>.
	(d_array_value): Likewise.
	(build_delegate_cst): Likewise.
	(extract_from_method_call): Likewise.
	* d-elem.cc (NewExp::toElem): Likewise.
	(ArrayLiteralExp::toElem): Likewise.
	(AssocArrayLiteralExp::toElem): Likewise.
	(StructLiteralExp::toElem): Likewise.
	(NullExp::toElem): Likewise.
	(VectorExp::toElem): Likewise.
	* d-objfile.cc (build_moduleinfo): Likewise.
	* d-todt.cc (dt_container): Likewise.
	(dt_container2): Likewise.

	* d-asmstmt.cc (ExtAsmStatement::toIR): Remove use of ListMaker
	wrapper for tree chaining.
	* d-builtins.c (d_bi_builtin_func): Likewise.
	(d_bi_builtin_type): Likewise.
	(d_gcc_magic_builtins_module): Likewise.
	(d_gcc_magic_libbuiltins_module): Likewise.
	* d-codegen.cc (build_attributes): Likewise.
	(IRState::call): Likewise.
	(IRState::buildFrameForFunction): Likewise.
	(AggLayout::doFields): Likewise.
	(AggLayout::addField): Likewise.
	* d-ctype.cc (TypeEnum::toCtype): Likewise.
	(TypeFunction::toCtype): Likewise.
	* d-todt.cc (dt_container2): Likewise.

	* d-codegen.cc (IRState::getFrameInfo): Replace with get_frameinfo.
	(IRState::buildFrameForFunction): Replace with build_frame_type.
	(IRState::isClassNestedInFunction): Replace with d_nested_class.
	(IRState::isStructNestedInFunction): Replace with d_nested_struct.
	(IRState::getFrameForFunction): Fold into IRState::getFrameForSymbol.
	(IRState::getFrameForNestedClass): Likewise.
	(IRState::getFrameForNestedStruct): Likewise.

2013-05-15  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (IRState::buildFrameForFunction): Also copy the
	parameters of functions with 'in' contracts to a local frame decl.
	* d-lang.cc (d_handle_flatten_attribute): New function to handle D
	flatten attributes.

2013-05-14  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (IRState::chainLink): Remove function.
	(IRState::chainFunc): Remove function.
	(IRState::sthis): New member which holds the chain of function.
	(IRState::buildChain): Update to use new static chain decl.
	(IRState::getFrameInfo): Likewise.
	* d-objfile.cc (FuncDeclaration::buildClosure): Likewise.
	(FuncDeclaration::toObjFile): Default the function static chain decl
	to null unless vthis is given for the function.

2013-05-13  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-lang.cc (d_handle_noinline_attribute): New function to handle D
	noinline attributes.
	(d_handle_forceinline_attribute): New function to handle D forceinline
	attributes.
	* d-elem.cc (StructLiteralExp::toElem): Return the struct initialiser
	symbol directly if the tree has already been built.
	* d-decls.cc (Dsymbol::toSymbolX): Constify the mangling name to use.

2013-05-10  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-typinf.cc: New file containing type info routines originally in
	the D Front End.

	* d-todt.cc (dt_last): New helper function to retrieve last node in a
	dt_t tree list.
	(dt_cons): New helper function to append nodes to the end of a list.
	(dt_chainon): New helper function to concatenate two lists together.
	(dt_container): New helper function to build a ctor from a list.
	(build_vptr_monitor): New helper function to generate the class
	vtable, and put out __vptr and __monitor.
	symbol default values in a class declaration.
	(dtlist_to_tree): New helper function to convert a dt_t list into a
	constructor tree.
	(Type::toDt): Implement routines for new dt_t format.
	(TypeInfoDeclaration::toDt): Likewise.
	(Initializer::toDt): Likewise.
	(Expression::toDt): Likewise.
	(Declaration::toDt): Likewise.

	* d-objfile.cc (Dsymbol::toObjFile): Update for new dt_t format.
	(Module::genmoduleinfo): Likewise.
	(Symbol::Symbol): Moved from symbol.cc
	(Obj::objmod): Remove abstraction layer.
	(Obj::moduleinfo): Renamed to build_moduleinfo.
	(obj_tlssections): Renamed to build_tlssections.
	(outdata): Renamed to d_finish_symbol.
	(check_static_sym): Moved into d_finish_symbol.

	* d-codegen.cc (d_gcc_emit_local_variable): Remove.

	* d-decls.cc (Dsymbol::toSymbolX): Update to not call symbol_calloc.
	(FuncDeclaration::toThunkSymbol): Likewise.
	(ClassDeclaration::toSymbol): Build type as d_unknown_type_node.
	(InterfaceDeclaration::toSymbol): Likewise.
	(Module::toSymbol): Likewise.
	(ClassDeclaration::toVtblSymbol): Update call to toSymbolX.
	(AggregateDeclaration::toInitializer): Likewise.
	(TypedefDeclaration::toInitializer): Likewise.
	(EnumDeclaration::toInitializer): Likewise.

	* d-ir.cc (CaseStatement::toIR): Don't call static_sym.

	* d-lang.cc (rtlsym): Remove symbol.
	(D_DECL_READONLY_STATIC): Remove macro.
	(d_unknown_type_node): New LANG_TYPE node for marking TypeInfo_Class,
	Interface, and ModuleInfo types that are of a variable size determined
	at compile time.

	* d-elem.cc (StringExp::toElem): Clean up for new dt_t format.

	* symbol.cc: Remove file.

2013-05-08  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (IRState::getFrameInfo): Don't create a frame/closure
	for member functions, only required for nested.
	* d-elem.cc (Expression::toElemDtor): Call dtors in the correct order.
	(DeclarationExp::toElem): Don't call dtor on static, manifest, or
	extern symbols upon declaration.
	(AssignExp::toElem): Only call postblit on lvalues in assignment.
	(ArrayLiteralExp::toElem): Always generate literals on heap.

2013-05-06  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-elem.cc (StructLiteralExp::toElem): Return the default initialiser
	symbol if one exists.
	* d-builtins.c (d_gcc_magic_libbuiltins_check): Override the function
	type with the correct built-in function type as defined in backend.

2013-04-15  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-elem.cc (IdentityExp::toElem): Remove special handling of class,
	reference and array types.

2013-04-12  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (maybe_make_temp): Save call expressions so aren't
	evaluated more than once.
	(d_has_side_effects): Remove check for exceptional class types.

2013-04-10  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-decls.cc (FuncDeclaration::toSymbol): Harden logic for marking
	functions pure as in 'has no side effects'.

2013-04-07  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-decls.cc (FuncDeclaration::toSymbol): Push deferred functions to
	FuncDeclaration::deferred.
	* d-elem.cc (DelegateExp::toElem): Likewise.
	(FuncExp::toElem): Likewise.
	* d-objfile.cc (ObjectFile::shouldEmit): Likewise.
	(FuncDeclaration::toObjFile): Process all deferred functions in
	FuncDeclaration::deferred.
	* symbol.cc (Symbol::deferredNestedFuncs): Remove.

2013-04-05  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-elem.cc (FuncExp::toElem): Defer function literals and lambdas
	until parent function has finished processing.

2013-04-04  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (IRState::buildChain): Use __frame decl directly when
	setting up the function frame.
	(maybe_set_builtin_frontend): Exit early if symbol has no parent.
	* d-decls.cc (FuncDeclaration::toSymbol): Defer all nested functions,
	not just templated instances.
	* d-objfile.cc (FuncDeclaration::toObjFile): Delay processed deferred
	nested functions until function has finished being generated.
	(ObjectFile::shouldEmit): Don't emit nested functions if the parent
	function hasn't finished processing.

2013-04-03  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (maybe_set_builtin_frontend): Merged from
	maybe_set_builtin and maybe_set_libcall.
	* d-decls.cc (FuncDeclaration::toSymbol): Use
	maybe_set_builtin_frontend.

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

	* d-lang.cc (d_init_options): Default module info emission to on.
	(d_handle_option): New femit-moduleinfo switch.
	* d-objfile.cc (Module::genobjfile): Don't emit module if disabled
	explicitly.
	* d-builtins.cc (is_intrinsic_module_p): New function to test whether
	module is core.bitops.
	(is_math_module_p): New function to test whether module is std.math or
	core.stdc.math.
	(is_builtin_va_arg_p): New function to test whether symbol is
	specially handled va_arg template.
	(is_builtin_va_start_p): New function to test whether symbol is
	specially handled va_start template.
	* d-codegen.cc (IRState::binding): Replace with bind_expr.
	(IRState::mathModule): Replace with std_math_module.
	(IRState::mathCoreModule): Replace with core_math_module.
	(IRState::intrinsicModule): Replace with std_intrinsic_module.
	(IRState::cstdargTemplateDecl): Replace with va_arg_template.
	(IRState::stdargTemplateDecl): Replace with va_arg2_template.
	(IRState::cstdargStartTemplateDecl): Replace with va_start_template.
	(IRState::getLibCallDecl): Replace with get_libcall.
	(IRState::maybeSetLibCallDecl): Replace with maybe_set_libcall.
	(IRState::libCall): Replace with build_libcall.
	(IRState::maybeSetUpBuiltin): Replace with maybe_set_builtin.
	(IRState::Intrinsic): Move enum out of IRState.

2013-03-30  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (IRState::darrayPtrRef): Replace with d_array_ptr.
	(IRState::darrayLenRef): Replace with d_array_length.
	(IRState::darrayVal): Replace with d_array_value.
	(IRState::darrayString): Replace with d_array_string.
	(IRState::arrayLength): Replace with get_array_length.
	(get_object_method): Remove dependancy on irs parameter.
	* d-lang.cc (d_init): Use static bool std_inc to determine whether to
	include standard module paths.
	(d_post_options): Canonicalize the input filename.
	(d_parse_file): Correctly catch cases where input file is stdin.

2013-03-27  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (IRState::getFrameInfo) Create a custom static chain for
	all nested functions.
	* d-gcc-includes.h: Rename to d-system.h

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

	* d-builtins.c (d_bi_init): Set REALPAD to be TYPE_PRECISION of
	long_double_type_node.
	* d-codegen.cc (IRState::twoFieldType): Replace with
	build_two_field_type.
	(IRState::arrayOpNotImplemented): Replace with unhandled_arrayop_p.
	(IRState::delegateMethodRef): Replace with delegate_method.
	(IRState::delegateObjectRef): Replace with delegate_object.
	(IRState::delegateVal): Replace with build_delegate_cst.
	(IRState::methodCallExpr): Replace with build_method_call.
	(IRState::extractMethodCallExpr): Replace with
	extract_from_method_call.
	(IRState::objectInstanceMethod): Replace with get_object_method.
	(IRState::twoFieldCtor): Remove.
	(IRState::call): Assert that if calling a normal FUNCTION_TYPE,
	'object' is not set.
	* d-ctype.cc (TypeDelegate::toCtype): Build a METHOD_TYPE for the .func
	field type in delegates.
	* d-lang.h (D_IS_METHOD_CALL_EXPR): Rename to D_METHOD_CALL_EXPR.
	* d-objfile.cc (FuncDeclaration::toObjFile): Remove assert for chain
	function.

2013-03-20  Johannes Pfau  <johannespfau@gmail.com>

	* d-codegen.cc (IRState::objectInstanceMethod): Recursively check
	for TOKsuper / TOKdottype. Do not ignore CastExp.
	* d-elem.cc (IdentityExp::toElem): Ignore padding in bitwise floating
	point comparisons.
	* testsuite: Cleanup. Remove invalid tests, adjust tests, etc. 

2013-03-20  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (IRState::objectInstanceMethod): Get function pointer
	off function TREE_TYPE.
	(build_deref): Handle cases where expression to dereference is an
	address expression.
	(modify_expr): New function overload to set return type directly.
	* d-elem.cc (CatAssignExp::toElem): Use new modify_expr.
	(AssignExp::toElem): Likewise.
	* d-decls.cc (FuncDeclaration::toSymbol): Don't build a method type for
	nested functions / delegates.  Just add on the hidden 'this' pointer
	containing the custom static chain/closure object.

	* d-codegen.cc (GlobalValues): Replace with current_module,
	current_irs, object_file.
	(IRState::getFuncType): Replace with get_function_type.
	(IRState::isCallByAlias): Replace with call_by_alias_p.
	(IRState::isFuncType): Replace with function_type_p.
	(IRState::doExp): Remove.

	* d-asmstmt.cc (ExtAsmStatement::syntaxCopy): Use arraySyntaxCopy to
	copy front end expressions.

	* d-codegen.cc (AssignExp::toElem): Call _d_arrayassign / _d_arrayctor
	when assigning arrays of structs.

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

	* d-codegen.cc (IRState::realPart): Replace with real_part.
	(IRState::imagPart): Replace with imaginary_part.
	(IRState::integerConstant): Replace with build_integer_cst.
	(IRState::floatConstant): Replace with build_float_cst.
	(IRState::hwi2toli): Replace with cst_to_hwi.
	(IRState::addressOf): Replace with build_address.
	(IRState::markAddressable): Replace with d_mark_addressable.
	(IRState::markUsed): Replace with d_mark_used.
	(IRState::markRead): Replace with d_mark_read.
	(IRState::indirect): Replace with indirect_ref.
	(IRState::pvoidOkay): Replace with void_okay_p.
	(IRState::maybeCompound): Replace with maybe_compound_expr.
	(IRState::maybeVoidCompound): Replace with maybe_vcompound_expr.
	(IRState::isErrorMark): Replace with error_mark_p.
	(IRState::getTargetSizeConst): Replace with tree_to_hwi.
	(IRState::modify): Replace with modify_expr.
	(IRState::vmodify): Replace with vmodify_expr.
	(IRState::vinit): Replace with build_vinit.
	(IRState::nop): Replace with build_nop.
	(IRState::vconvert): Replace with build_vconvert.
	(IRState::boolOp): Replace with build_boolop.
	(IRState::compound): Replace with compound_expr.
	(IRState::voidCompound): Replace with vcompound_expr.
	(IRState::component): Replace with component_ref.
	(IRState::errorMark): Replace with error_mark.
	(IRState::typesSame): Replace with d_types_same.
	(IRState::typesCompatible): Replace with d_types_compatible.
	(IRState::getDType): Replace with build_dtype.
	(IRState::getObjectType): Replace with build_object_type.
	(IRState::isDeclarationReferenceType): Replace with decl_reference_p.
	(IRState::trueDeclarationType): Replace with declaration_type.
	(IRState::isArgumentReferenceType): Replace with arg_reference_p.
	(IRState::trueArgumentType): Replace with type_passed_as.
	(IRState::arrayType): Replace with d_array_type.
	(IRState::addTypeAttribute): Replace with insert_type_attributes.
	(IRState::addDeclAttribute): Replace with insert_decl_attributes.
	(IRState::attributes): Replace with build_attributes.
	(IRState::addTypeModifiers): Replace with insert_type_modifiers.
	(IRState::maybeMakeTemp): Replace with maybe_make_temp.
	(IRState::isFreeOfSideEffects): Replace with d_has_side_effects.
	(IRState::pointerOffsetOp): Replace with build_offset_op.
	(IRState::pointerOffset): Replace with build_offset.
	(IRState::buildCall): Replace with d_build_call.
	(IRState::exceptionObject): Replace with build_exception_object.

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

	* d-asmstmt.cc (d_build_asm_stmt): Remove.
	(ExtAsmStatement::ExtAsmStatement): Update to match renamed members.
	(ExtAsmStatement::syntaxCopy): Likewise.
	(ExtAsmStatement::semantic): Likewise.
	(ExtAsmStatement::toCBuffer): Likewise.
	(ExtAsmStatement::comeFrom): New.
	(ExtAsmStatement::blockExit): Don't error if must not throw.
	(naturalString): Remove.
	(ExtAsmStatement::toIR): Inline IRState::doAsm implementation.
	* d-codegen.cc (IRState::doAsm): Remove.
	* d-decls.cc (FuncDeclaration::toSymbol): Don't generate 'naked'
	attribute.
	(binfo_for): Move into d-decls.cc.
	(intfc_binfo_for): Likewise.
	(ClassDeclaration::toDebug): Likewise.
	(EnumDeclaration::toDebug): Likewise.
	(TypedefDeclaration::toDebug): Likewise.
	(StructDeclaration::toDebug): Likewise.
	* d-objfile.cc (FuncDeclaration::toObjFile): Move into d-objfile.cc.
	(FuncDeclaration::buildClosure): Likewise.
	(Module::genobjfile): Likewise.
	* d-glue.cc: Remove file.

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

	* d-ir.cc (SynchronizedStatement::toIR): Remove implementation as is
	now handled by the frontend.

2013-03-15  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (IRState::maybeExpandSpecialCall): Handle ref argptr
	arguments.

2013-03-13  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-builtins.c (handle_alias_attribute): New function to handle
	internal 'alias' attribute.
	(handle_weakref_attribute): New function to handle internal 'weakref'
	attribute.
	* d-objfile.cc (ObjectFile::outputThunk): Define thunks to external
	symbols as weakref, alias

2013-03-12  Johannes Pfau  <johannespfau@gmail.com>

	* patch-versym-os-4.8.x (mingw32.h): Fix typo
	* patch-versym-cpu-4.8.x (mips.h): Fix typo
	Update version symbols to latest dlang specification.

2013-03-10  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-decls.cc (FuncDeclaration::toSymbol): Delay setting TREE_TYPE as
	function type could be hidden in a nested function not yet built.
	* d-codegen.cc (IRState::findThis): Don't get 'this' from outer
	function if it's a closure type.  This has already been handled by
	IRState::getFrameForSymbol.
	(IRState::buildChain): Give frame decl debug name '__frame'.
	Always set '__chain' link field.
	(IRState::getFrameInfo): Don't build a frame for all nested functions.
	Search through nested aggregates for static chain in outer functions.
	* d-codegen.h (IRState::useParentChain): Remove.
	* d-glue.cc (FuncDeclaration::toObjFile): Don't call useParentChain.
	Don't create a local var for the chain link for a function.
	(FuncDeclaration::buildClosure): Always set '__chain' link field.

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

	* d-codegen.cc (d_gcc_force_templates): Only check for emitting
	templates as private.
	* d-lang.cc (d_handle_option): Remove -femit-templates= option.
	* d-objfile.cc (ObjectFile::makeDeclOneOnly): Fix code logic so
	fallback method could be reached.
	* d-objfile.h (TEall, TEauto): Remove.

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

	* d-ir.cc (ReturnStatement::toIR): Don't call postblit on return.
	* d-codegen.cc (IRState::trueDeclarationType): Don't set
	D_TYPE_ADDRESSABLE.
	(IRState::makeTemp): Remove.
	(IRState::maybeMakeTemp): Copy makeTemp into function.
	* d-glue.cc (d_genericize): Remove D_TYPE_ADDRESSABLE handling.
	* d-lang.h (D_TYPE_ADDRESSABLE): Remove macro.

2013-03-04  Johannes Pfau  <johannespfau@gmail.com>

	* d-ctype.cc (Type::toCtype): Always call gen.addTypeModifiers to
	make sure TYPE_MAIN_VARIANT is set. Reuse tree from unqualified
	variant for that. Also cache the resulting qualified tree.
	(TypeTypedef::toCtype): Likewise.
	(TypeEnum::toCtype): Likewise.
	(TypeStruct::toCtype): Likewise.
	(TypeFunction::toCtype): Likewise.
	(TypeVector::toCtype): Likewise.
	(TypeSArray::toCtype): Likewise.
	(TypeDArray::toCtype): Likewise.
	(TypeAArray::toCtype): Likewise.
	(TypeDelegate::toCtype): Likewise.
	(TypeClass::toCtype): Likewise.
	* d-objfile.cc (ObjectFile::giveDeclUniqueName): Make sure DECL_NAME is set

2013-03-01  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-decls.cc (VarDeclaration::toSymbol): Remove use of c_ident.
	(FuncDeclaration::toSymbol): Likewise.
	* d-builtins.c (handle_noreturn_attribute): Assert that this is only
	used for internal purposes.
	(handle_const_attribute): Likewise.
	(handle_malloc_attribute): Likewise.
	(handle_pure_attribute): Likewise.
	(handle_nonnull_attribute): Likewise.
	(handle_nothrow_attribute): Likewise.
	(handle_sentinel_attribute): Likewise.
	(handle_transaction_pure_attribute): Likewise.
	(handle_returns_twice_attribute): Likewise.
	* d-glue.cc (FuncDeclaration::toObjFile): Result variables have no
	default initialiser.
	* d-codegen.cc (IRState::emitLocalVar): Add in assert that the local
	variable has no initialiser if called with no_init = true.
	(IRState::getLibCallDecl): Mark exceptional library functions as
	noreturn.
	(IRState::attributes): Gracefully handle @attribute, and
	@attribute(null).

2013-02-28  Jernej Krempus  <jkrempus@gmail.com>

	* d-builtins.c (d_attribute_table): Renamed it to
	d_builtins_attribute_table.
	* d-lang.cc (d_attribute_table): Added an empty table
	* d-lang.cc (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE): Defined it as
	d_builtins_attribute_table.
	* d-lang.h (d_builtins_attribute_table): Added a declaration.
	* d-codegen.cc (IRState::attributes): Changed it so it goes through
	in_attrs and looks for any @gcc.attribute.attribute("attr_name").
	* d-objfile.cc (ObjectFile::setupSymbolStorage): Pass userAttributes
	instead of attributes in all calls to IRState::attributes.
	* d-ctype.cc (TypeTypedef::toCtype): Likewise.
	(TypeEnum::toCtype): Likewise.
	(TypeStruct::toCtype): Likewise.
	(TypeClass::toCtype): Likewise.
	* libphobos/libdruntime/gcc/attribute.d: New file.

2013-02-28  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-lang.cc (d_handle_option): Remove OPT_fdeprecated and
	OPT_Wsign_compare, add handling for OPT_Wdeprecated.
	(d_post_options): Handle Wdeprecated and Werror switch combination.

2013-02-27  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (ArrayScope::ArrayScope): Don't setup length var if its
	value is known at compile time.
	(ArrayScope::setArrayExp): Likewise.
	* d-decls.cc (uniqueName): Remove function.
	(VarDeclaration::toSymbol): Set decl assembler name directly.
	(FuncDeclaration::toSymbol): Likewise.

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

	* Make-lang.in (GDC_EXTENDED_ASM_SYNTAX): Remove macro.

2013-02-14  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-lang.h (D_DECL_IS_CONTRACT): Remove macro.
	* d-decls.cc (FuncDeclaration::toSymbol): Likewise.

2013-02-13  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-lang.cc (d_gcc_is_target_win32): Remove.
	(d_add_builtin_version): New function to handle define_builtin
	callback from backend.
	* d-codegen.cc (IRState::maybeExpandSpecialCall): Remove intrinsic bt.

	* d-builtins.c: Merge with d-builtins2.cc.
	* d-builtins2.cc: Remove.

2013-02-07  Johannes Pfau  <johannespfau@gmail.com>

	* d-lang.cc (d_init): Use gcc's config system for predefined OS versions.
	* setup-gcc.sh: Likewise.
	* target-ver-syms.sh: Likewise.

2013-02-05  Iain Buclaw  <ibuclaw@ubuntu.com>

	* d-builtins2.cc (gcc_type_to_d_type): Remove STRUCTTHISREF condition.
	* d-decls.cc (FuncDeclaration::toSymbol): Likewise.
	* d-elem.cc (ThisExp::toElem): Likewise.
	* d-ctype.cc (TypeSArray::toCtype): Remove SARRAYVALUE condition.
	* d-codegen.cc (IRState::isDeclarationReferenceType): Likewise.
	(IRState::isArgumentReferenceType): Likewise.

2013-02-01  Johannes Pfau  <johannespfau@gmail.com>

	* d-lang.cc (d_init): Use gcc's config system for predefined CPU versions.
	(d_init): Fix definition of D_LP64 version.
	* setup-gcc.sh: Likewise.
	* target-ver-syms.sh: Likewise.

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