xref: /netbsd/external/gpl3/gcc/dist/gcc/d/ChangeLog-2013 (revision 81418a27)
12013-12-27  Iain Buclaw  <ibuclaw@gdcproject.org>
2
3	* d-codegen.cc (build_two_field_type): Declare builtin types as
4	toplevel declarations.
5	* d-ctype.cc (EnumDeclaration::toDebug): Build type decl in debug code.
6	* d-lang.cc (nametype): Rename to d_nametype.
7
82013-12-23  Iain Buclaw  <ibuclaw@gdcproject.org>
9
10	* d-decls.cc (EnumDeclaration::toDebug): Don't send array types to
11	rest_of_type_compilation.
12
132013-12-16  Iain Buclaw  <ibuclaw@gdcproject.org>
14
15	* d-spec.cc (lang_specific_driver): Require linking in library for all
16	files except D interface files.
17	* d-lang.cc (d_write_global_declarations): Call d_finish_compilation.
18	* d-objfile.cc (mark_needed): Mark static.
19	(d_finish_symbol): Don't call mark_needed.
20	(d_finish_function): Likewise.
21	(d_finish_compilation): New function to wrapup all global
22	declarations, mark templates/comdats as needed if required, and start
23	the final compilation.
24
252013-12-10  Iain Buclaw  <ibuclaw@gdcproject.org>
26
27	* d-ctype.cc (TypeVector::toCtype): Treat void vectors as ubyte.
28	* d-objfile.cc (VarDeclaration::toObjFile): Gag all errors compiling
29	manifest constants.
30	* d-todt.cc (TypeVector::toDt): New function to generate correct static
31	data for vector initialisers.
32
332013-12-05  Iain Buclaw  <ibuclaw@gdcproject.org>
34
35	* d-lang.cc (d_init_options_struct): Don't define strict aliasing.
36	(d_get_alias_set): New function to return language-specific alias set.
37	* d-convert.cc (d_convert_basic): Always zero extend pointer to integer
38	conversions.
39
402013-12-04  Iain Buclaw  <ibuclaw@gdcproject.org>
41
42	* d-codegen.cc (maybe_set_builtin_frontend): Assert that all runtime
43	library functions have been set-up correctly.
44	(libcall_ids): Remove unhandled library functions.
45	(get_libcall): Likewise.
46	* d-codegen.h (LibCall): Likewise.
47	* d-objfile.cc (output_symbol_p): Remove.
48
492013-12-03  Iain Buclaw  <ibuclaw@gdcproject.org>
50
51	* d-lang.cc (d_init_options): Update for frontend changes.
52	(d_handle_option): Set frontend allInst option if -femit-templates.
53	* d-objfile.cc (output_template_p): Want to emit all instantiated
54	templates if -femit-templates or -fdebug was passed to the compiler.
55	* d-objfile.h (TemplateEmission): Define TEallinst.
56	* d-todt.cc (StructDeclaration::toDt): Update for frontend changes.
57	* d-spec.cc (THREAD_LIBRARY): Define default thread library to link if
58	one is not already specified in the configuration process.
59	(TIME_LIBRARY): Define default real time library to link if one is not
60	already specified in the configuration process.
61	(LIBSTDCXX): Define C++ library to link if compiling C++ and D sources.
62	(lang_specific_driver): Update implementation to use new macros.
63
642013-12-02  Iain Buclaw  <ibuclaw@gdcproject.org>
65
66	* d-elem.cc (CatAssignExp::toElem): Don't call postblit after element
67	append to array.
68	(NewExp::toElem): Handle calling 'new' on opaque types.
69	(ArrayLiteralExp::toElem): Ensure array literal elements have no side
70	effects by making temporaries as necessary.
71	* d-todt.cc (StructLiteralExp::toDt): Update for frontend changes.
72	* d-codegen.cc (build_frame_type): Check for scoped variables if
73	building a closure.
74	* d-objfile.cc (d_finish_symbol): Relax toDt checking rule.
75
762013-12-01  Iain Buclaw  <ibuclaw@gdcproject.org>
77
78	* d-asmstmt.cc (ExtAsmStatement::ExtAsmStatement): Remove labels
79	member from class.
80	* d-codegen.cc (d_gcc_force_templates): Remove.
81	(convert_expr): Update for frontend changes.
82	(convert_for_assignment): Likewise.
83	(maybe_set_builtin_frontend): Update for changes to libdruntime
84	core.bitops signatures.
85	* d-ctype.cc (TypeFunction::toCtype): Update for frontend changes.
86	* d-decls.cc (Dsymbol::toSymbolX): Likewise.
87	(VarDeclaration::toSymbol): Likewise.
88	(FuncDeclaration::toSymbol): Don't defer nested functions here.
89	* d-elem.cc (PowAssignExp::toElem): Update for frontend changes.
90	(DeleteExp::toElem): Likewise.
91	(AssertExp::toElem): Don't call invariant on an extern C++ class.
92	* d-glue.cc (Global::init): Initialise new stdmsg member.
93	* d-lang.cc (d_handle_option): Handle -fdeps switch.  Remove TEprivate
94	for -femit-templates switch.
95	(genCmain): Update for frontend changes.
96	(d_parse_file): Likewise.
97	* d-longdouble.cc (longdouble::dump): Likewise.
98	* d-objfile.cc (ClassDeclaration::toObjFile): Update for frontend
99	changes.
100	(InterfaceDeclaration::toObjFile): Likewise.
101	(EnumDeclaration::toObjFile): Likewise.
102	(Symbol::Symbol): Remove outputSymbol member.
103	(output_symbol_p): Mark static.
104	(output_declaration_p): Determine symbol codegen status from
105	semanticRun.
106	(output_template_p): New function to determine whether an instantiated
107	template is to be written to object file.
108	(FuncDeclaration::toObjFile): Use semanticRun to update codegen status
109	of function.
110	(FuncDeclaration::buildClosure): Error if putting a scoped variable in
111	a closure.
112	(Module::genobjfile): Update for frontend changes.
113	(d_comdat_linkage): Don't determine linkage from TE setting.  Mark all
114	comdat symbols as DECL_COMDAT.
115	(setup_symbol_storage): Use output_template_p to determine whether the
116	symbol is being written to object file.
117	(mark_needed): New function to mark decls that must be emitted.
118	(d_finish_symbol): Mark finished symbols as needed.
119	(d_finish_function): Mark finished functions as needed.
120	(build_simple_function): Set semanticRun for glue changes.
121	* d-objfile.h (OutputStage): Remove enum.
122	* d-todt.cc (build_vptr_monitor): Update for frontend changes.
123	(StructInitializer::toDt): Likewise.
124	(StructDeclaration::toDt): Likewise.
125	(TypeInfoEnumDeclaration::toDt): Likewise.
126	(TypeInfoStructDeclaration::toDt): Likewise.
127	(Type::getTypeInfo): Likewise.
128
1292013-11-30  Iain Buclaw  <ibuclaw@gdcproject.org>
130
131	* d-lang.cc (genCmain): Implement code generation of __entrypoint
132	module to provide the target C main function.
133	(deps_write): Ignore the module __entrypoint when writing make deps.
134	(d_parse_file): Handle writing __entrypoint module to object file.
135	* d-objfile.cc (d_finish_symbol): Remove special handling of _tlsstart
136	symbol, but ensure _tlsend gets written to the thread common section.
137	(d_finish_function): Remove call to build_tlssections.
138	(build_tlssections): Remove.
139
1402013-11-29  Iain Buclaw  <ibuclaw@gdcproject.org>
141
142	* d-decls.cc (ClassDeclaration::toVtblSymbol): Use TypeSArray::makeType
143	to generate frontend static array type.
144	* d-glue.cc (Dsymbol::ungagSpeculative): Define.
145	* d-lang.cc (genCmain): Define as empty.
146	(d_parse_file): Update for frontend changes.
147	* d-objfile.cc (StructDeclaration::toObjFile): Likewise.
148	* d-typinf.cc (TypeBasic::builtinTypeInfo): Likewise.
149	* d-longdouble.cc (longdouble::isIdenticalTo): Remove.
150	* d-port.cc (Port::fequal): Define.
151
1522013-11-28  Iain Buclaw  <ibuclaw@gdcproject.org>
153
154	* d-builtins.cc (gcc_type_to_d_type): Use TypeSArray::makeType to
155	generate frontend static array types.
156	* d-codegen.cc (build_attributes): Use optimize as don't want the
157	ctfeInterpret of TypeExp expressions.
158	(get_object_method): Update for frontend changes.
159	(get_libcall): Update to use Type::dtypeinfo.
160	* d-elem.cc (IndexExp::toElem): Don't generate bounds checking codegen
161	if frontend explictly requests it.
162	(ArrayLiteralExp::toElem): Use TypeSArray::makeType to generate
163	frontend static array type.
164	(StructLiteralExp::toElem): Update for frontend changes.
165	* d-glue.cc (Global::increaseErrorCount): Define.
166	* d-objfile.cc (Module::genmoduleinfo): Remove moduleinfo 'New'
167	implementation for libdruntime changes.
168	* d-todt.cc (StructLiteralExp::toDt): Literal initialisers override
169	default initialisers.
170	(TypeInfoDeclaration::toDt): Update to use Type::dtypeinfo.
171	(TypeInfoStructDeclaration::toDt): Update for frontend changes.
172	* d-typinf.c (Type::getInternalTypeInfo): Update to use
173	Type::dtypeinfo.
174
1752013-11-25  Iain Buclaw  <ibuclaw@gdcproject.org>
176
177	* d-asmstmt.cc (ExtAsmStatement::comeFromImpl): Define for frontend
178	implementation changes.
179	* d-codegen.cc (get_libcall): Update to use Type::typeinfoclass.
180	* d-codegen.cc (WrappedExp): Define as class.
181	* d-convert.cc (d_convert_basic): Fix format warnings.
182	* d-decls.cc (ModuleInfoDeclaration::toSymbol): Remove.
183	(FuncDeclaration::toSymbol): Use mangleExact to get decl mangle.
184	* d-elem.cc (ClassReferenceExp::toElem): Return reference to class.
185	* d-glue.cc (verror): Fix format warnings.
186	(verrorSupplemental): Likewise.
187	(vwarning): Likewise.
188	(vdeprecation): Likewise.
189	(escapePath): Define for frontend implementation changes.
190	* d-irstate.cc (IRState::getLoopForLabel): Implement breaking on named
191	scope labels in for/while loops.
192	* d-lang.cc (d_handle_option): Add handler for new -fdeps and
193	-fmake-deps options.
194	(d_parse_file): Handle new -fdeps and fmake-deps options.
195	* d-objfile.cc (Dsymbol::toObjFile): Update to use RootObject.
196	(Type::typeinfoclass): Update to use Type::typeinfoclass.
197	(InterfaceDeclaration::toObjFile): Likewise.
198	* d-objfile.h (Symbol): Remove inheritance from Object.
199	* d-todt.cc (TypeInfoStructDeclaration::toDt): Update to use
200	Type::immutableOf.
201
2022013-11-24  Iain Buclaw  <ibuclaw@gdcproject.org>
203
204	* d-builtins.c (gcc_type_to_d_type): Use TREE_INT_CST_LOW macro instead
205	of tree_low_cst.
206	(eval_builtin): Likewise.
207	(gcc_cst_to_d_expr): Use tree_cst_hwi.
208	* d-codegen.cc (tree_to_hwi): Remove call to deleted host_integerp.
209	(maybe_expand_builtin): Use TREE_INT_CST_LOW macro.
210	* d-lang.cc (d_parse_file): Update debug_hooks call for middle-end
211	changes.
212	* d-system.h: Update includes for middle-end changes.
213
2142013-11-17  Iain Buclaw  <ibuclaw@gdcproject.org>
215
216	* d-objfile.cc (finish_thunk): Update for conversion of symtab types to
217	a true class hierarchy.
218
219	* d-ctype.cc (TypeClass::toCtype): Fix ABI to emit correct vtable and
220	monitor field names.
221
222	* d-ctype.cc (TypeClass:toCtype): Set TYPE_LANG_SPECIFIC on record as
223	well as reference type.
224	* d-lang.cc (d_classify_record): New langhook to return appropriate
225	class/interface/struct type to the debugger.
226
2272013-10-27  Iain Buclaw  <ibuclaw@gdcproject.org>
228
229	* d-elem.cc (ArrayLiteralExp::toElem): Build empty constructor for zero
230	sized arrays.
231
2322013-10-23  Iain Buclaw  <ibuclaw@gdcproject.org>
233
234	* d-elem.cc (AssignExp::toElem): Optimise assigning array literal to a
235	static array.
236	(ArrayLiteralExp::toElem): Do not allocate static or const array
237	literals on the heap using the GC.
238
2392013-10-16  Iain Buclaw  <ibuclaw@gdcproject.org>
240
241	* d-builtins.c (DEF_FUNCTION_TYPE_8): Define.
242
2432013-10-10  Iain Buclaw  <ibuclaw@gdcproject.org>
244
245	* d-builtins.c (gcc_cst_to_d_expr): Add support for VECTOR_CST to
246	Expression conversion.
247	(d_gcc_paint_type): Add support for painting to/from array literals.
248
2492013-10-01  Iain Buclaw  <ibuclaw@gdcproject.org>
250
251	* d-objfile.cc (cvtLocToloc_t): Rename to get_linemap.
252	* d-glue.cc: New source to provide interface for defined globals and
253	error handling called from the front-end.
254
2552013-09-16  Iain Buclaw  <ibuclaw@gdcproject.org>
256
257	* d-codegen.cc (IRState::call): Rename to d_build_call.
258	(IRState::emitLocalVar): Rename to build_local_var.
259	(IRState::buildAssignOp): Move to BinExp::toElemBin.
260	(IRState::IRState): Remove IRState class.
261	* d-irstate.cc (IRBase::IRBase): Rename to IRState, remove inheritance
262	from Object class.
263	* d-decls.cc (VarDeclaration::toSymbol): Remove redundant CONST_DECL
264	code as VarDeclaration::toObjFile does not emit manifest constants.
265	* d-ctype.cc (TypeEnum::toCtype): Generate CONST_DECLs for enumeration
266	members for correct debugging.
267	* d-objfile.cc (build_type_decl): Use fully qualified type name in
268	debugging code.
269	(VarDeclaration::toObjFile): Emit manifest constant values in debug
270	code generation.
271
2722013-09-10  Iain Buclaw  <ibuclaw@gdcproject.org>
273
274	* d-elem.cc (SliceExp::toElem): Don't build D array for slices that
275	return a static array.
276
2772013-09-03  Iain Buclaw  <ibuclaw@gdcproject.org>
278
279	* d-codegen.cc (IRState::buildOp): Rename to build_binary_op.
280
2812013-09-01  Iain Buclaw  <ibuclaw@gdcproject.org>
282
283	* d-decls.cc (binfo_for): Rename to build_class_binfo.
284	(intfc_binfo_for): Rename to build_interface_binfo.
285	(ClassDeclaration::toDebug): Move binfo generation into toCtype.
286	* d-lang.cc (pushlevel): Rename to push_binding_level.
287	(poplevel): Rename to pop_binding_level.
288	(global_bindings_p): Rename to d_global_bindings_p, add langhook.
289	(pushdecl): Rename to d_pushdecl, add langhook.
290	(getdecls): Rename to d_getdecls, add langhook.
291	(set_block): Remove function.
292	(insert_block): Remove function.
293	* d-irstate.cc (IRBase::startBindings): Inline set_block here.
294	(IRBase::endBindings): Inline insert_block here.
295
2962013-08-29  Iain Buclaw  <ibuclaw@gdcproject.org>
297
298	* d-spec.c (lang_specific_spec_functions): Remove.
299
3002013-08-28  Iain Buclaw  <ibuclaw@gdcproject.org>
301
302	* d-codegen.cc (IRState::doArraySet): Rename to IRBase::doArraySet.
303	(IRState::arraySetExpr): Remove function.
304	(IRState::expandDecl): Rename to expand_decl.
305	(IRState::typeinfoReference): Rename to build_typeinfo.
306	(IRState::buildChain): Merge into FuncDeclaration::buildClosure.
307	(IRState::getVThis): Rename to build_vthis.
308	(IRState::maybeExpandSpecialCall): Rename to maybe_expand_builtin.
309	(IRState::toDArray): Rename to d_array_convert.
310
3112013-08-26  Iain Buclaw  <ibuclaw@gdcproject.org>
312
313	* d-codegen.cc (convert_expr): Check that the class type the codegen is
314	casting from is a base class of the class type the codegen is casting
315	to, not the other way round.
316
3172013-08-14  Iain Buclaw  <ibuclaw@gdcproject.org>
318
319	* d-elem.cc (ArrayLiteralExp::toElem): Return null for zero length
320	array literals.
321
3222013-08-07  Iain Buclaw  <ibuclaw@gdcproject.org>
323
324	* d-objfile.cc (finish_thunk): Don't emit thunks to external symbols as
325	weakref declarations.
326	* d-codegen.cc (IRState::maybeExpandSpecialCall): Remove intrinsic yl2x
327	and yl2xp1 builtins.
328	(maybe_set_builtin_frontend): Likewise.
329
3302013-07-09  Iain Buclaw  <ibuclaw@gdcproject.org>
331
332	* d-builtins.c (d_gcc_magic_builtins_module): Set builtins solely
333	provided by the compiler as @safe, pure and nothrow.
334	* d-codegen.cc (IRState::getVThis): Don't set outer 'this' of structs
335	to be parent function chain if no frame has been created.
336
3372013-07-08  Iain Buclaw  <ibuclaw@gdcproject.org>
338
339	* d-elem.cc (Expression::toElemDtor): Wrap temp variables destructor
340	calls in a try/finally expression.
341
3422013-07-05  Johannes Pfau  <johannespfau@gmail.com>
343
344	* patch-versym-os-4.8.x: Set versions on powerpc and alpha.
345	Remove SysV4 support and therefore fix macro redefinition warnings.
346	* patch-versym-os-4.9.x: Likewise.
347
3482013-07-03  Iain Buclaw  <ibuclaw@gdcproject.org>
349
350	* d-longdouble.cc (longdouble::set): Intepret set values at higher
351	precision for min/max properties.
352	* d-codegen.cc (maybe_set_builtin_frontend): Add yl2x and yl2xp1
353	math intrinsics.
354	(IRState::maybeExpandSpecialCall): Likewise.
355
3562013-07-02  Iain Buclaw  <ibuclaw@gdcproject.org>
357
358	* d-objfile.cc (Module::genobjfile): Don't free current_module_info.
359	* d-codegen.cc (IRState::buildAssignOp): Don't create a SAVE_EXPR
360	around comma expressions used as lvalues.
361	* d-todt.cc (TypeSArray::toDtElem): Get underlying vector basetype when
362	layouting out data in a static array.
363
3642013-06-29  Iain Buclaw  <ibuclaw@gdcproject.org>
365
366	* complex_t.h: Move into dfrontend.
367	* d-builtins.c (gcc_cst_to_d_expr): Explicitly create longdouble.
368	* d-longdouble.cc (longdouble::parse): Remove function.
369	(longdouble::longdouble): Remove constructors from longdouble.
370	Replaced with operator= template and longdouble::set.
371	(longdouble::rv): Update for new class layout.
372	(longdouble::from_shwi): New function to create a longdouble value
373	from a HOST_WIDE_INT.
374	(longdouble::from_uhwi): Likewise, but from an unsigned HOST_WIDE_INT.
375	(longdouble::to_shwi): New function to return a HOST_WIDE_INT value
376	from a longdouble.
377	(longdouble::to_uhwi): Likewise, but from an unsigedn HOST_WIDE_INT.
378	(longdouble::set): New function to explicitly set longdouble value.
379	(longdouble::toInt): Remove function.
380	(longdouble::isZero): Remove function.
381	(longdouble::isNegative): Remove function.
382	* d-port.cc (Port::nan): Rename to Port::ldbl_nan.
383	(Port::infinity): Rename to Port::ldbl_infinity.
384	(Port::ldbl_max): New static field.
385	(Port::init): Set ldbl_max to be maximimum value for long double type.
386	(Port::strtof): New function to convert string to longdouble.
387	(Port::strtod): Likewise.
388	(Port::strtold): Likewise.
389
3902013-06-24  Iain Buclaw  <ibuclaw@gdcproject.org>
391
392	* d-objfile.cc (make_alias_for_thunk): Do not set
393	TREE_SYMBOL_REFERENCED.
394
3952013-06-17  Iain Buclaw  <ibuclaw@gdcproject.org>
396
397	* d-codegen.cc (build_struct_memcmp): New function.
398	* d-elem.cc (IdentityExp::toElem): Use build_struct_memcmp for field
399	comparisons of small structs.
400
4012013-06-13  Iain Buclaw  <ibuclaw@gdcproject.org>
402
403	* d-codegen.cc (make_temp): New function.
404	* d-decls.cc (StructLiteralExp::toSymbol): Implement correctly to
405	generate an anonymous symbol to reference to in the codegen.
406	(ClassReferenceExp::toSymbol): Likewise, but also use an anonymous
407	type as size is not determined until the data has been layed out.
408	* d-elem.cc (EqualExp::toElem): Optimise comparisons of arrays of basic
409	types, also ensure left-to-right evaluation.
410	(SliceExp::toElem): Handle returing slice as a static array type.
411	(AddrExp::toElem): Handle taking the address of StructLiteralExp and
412	ClassReferenceExp symbols.
413	(FuncExp::toElem): Relax type checking to allow returning function
414	addresses as generic pointer types.
415	(ArrayLiteralExp::toElem): Implicitly convert static arrays of void to
416	static arrays of ubyte.
417	(StructLiteralExp::toElem): Remove code generation of postblit calls,
418	now taken care of in the front end.
419	* d-objfile.cc (Module::genmoduleinfo): Emit module name as a null
420	terminated static array.
421	* d-ctype.cc (TypeAArray::toCtype): Pass AA types around like pointers.
422
4232013-06-11  Iain Buclaw  <ibuclaw@gdcproject.org>
424
425	* dfrontend: Update to D front-end version 2.063.
426
427	* d-builtins.c (gcc_type_to_d_type): Use Loc for unknown locations.
428	(d_gcc_magic_builtins_module): Likewise.
429	(gcc_cst_to_d_expr): Likewise.
430	* d-codegen.cc (get_libcall): Use FuncDeclaration::genCfunc to build
431	D runtime library functions.
432	* d-decl.cc (SymbolDeclaration::SymbolDeclaration): Remove function.
433	(StructLiteralExp::toSymbol): New function.
434	(ClassReferenceExp::toSymbol): New function.
435	* d-elem.cc (AssertExp::toElem): Call struct/class invariants only if
436	compiler is generating invariant code.
437	(TupleExp::toElem): Update for new front-end.
438	(ClassReferenceExp::toElem): New function.
439	* d-lang.cc (d_init_options): Set compiler.vendor front-end parameter.
440	(d_init): Call Expression::init.
441	* d-objfile.cc (InterfaceDeclaration::toObjFile): Correctly set the
442	xgetRTInfo field in the record layout.
443	* d-todt.cc (CastExp::toDt): New function.
444	(AddrExp::toDt): New function.
445	(ClassReferenceExp::toDt): New function.
446	(ClassReferenceExp::toDtI): New function.
447	(ClassReferenceExp::toInstanceDt): New function.
448	(ClassReferenceExp::toDt2): New function.
449
4502013-06-10  Iain Buclaw  <ibuclaw@gdcproject.org>
451
452	* d-objfile.cc (FuncDeclaration::toObjFile): Set 'this' parameter as
453	implicitly read-only.
454	* d-codegen.cc (declaration_type): Set 'this' declaration type as
455	implicitly const.
456	(build_frame_type): Set frame or closure type as implicitly const.
457
4582013-06-09  Iain Buclaw  <ibuclaw@gdcproject.org>
459
460	* d-builtins.c (d_init_builtins): Make d_unknown_type_node a
461	RECORD_TYPE.
462	* d-lang.cc (d_build_eh_type_type): Cast the returned typeinfo decl to
463	void pointer type.
464
4652013-06-07  Iain Buclaw  <ibuclaw@gdcproject.org>
466
467	* d-codegen.cc (IRState::var): Rename to get_decl_tree.
468	(IRState::convertForArgument): Rename to convert_for_argument.
469	(IRState::floatMod): Rename to build_float_modulus.
470	(IRState::findThis): Rename to find_this_tree.
471	(IRState::emitLocalVar): Update signature.
472	(IRState::arrayElemRef): Remove function.
473	* d-elem.cc (IndexExp::toElem): Move implementation of
474	IRState::arrayElemRef here.
475
4762013-06-04  Iain Buclaw  <ibuclaw@gdcproject.org>
477
478	* d-codegen.cc (cmodule): Rename to current_module_decl.
479	(object_file): Remove variable.
480	* d-objfile.cc (ObjectFile::moduleInfo): Rename to current_module_info.
481	(ObjectFile::modules): Rename to output_modules.
482	(ObjectFile::staticCtorList): Rename to static_ctor_list.
483	(ObjectFile::staticDtorList): Rename to static_dtor_list.
484	(ObjectFile::emitTemplates): Rename to flag_emit_templates.
485	(ObjectFile::beginModule): Remove function.
486	(ObjectFile::endModule): Remove function.
487	(ObjectFile::finish): Rename to d_finish_module.
488	(ObjectFile::doLineNote): Remove function.
489	(ObjectFile::setLoc): Rename to set_input_location.
490	(ObjectFile::setDeclLoc): Rename to set_decl_location.
491	(ObjectFile::setCfunEndLoc): Rename to set_function_end_locus.
492	(ObjectFile::giveDeclUniqueName): Rename to get_unique_name.
493	(ObjectFile::setupSymbolStorage): Rename to setup_symbol_storage.
494	(ObjectFile::setupStaticStorage): Remove function.
495	(ObjectFile::makeDeclOneOnly): Rename to d_comdat_linkage.
496	(ObjectFile::outputStaticSymbol): Rename to d_finish_symbol.
497	(ObjectFile::outputFunction): Rename to d_finish_function.
498	(ObjectFile::addAggMethod): Remove function.
499	(ObjectFile::initTypeDecl): Rename to build_type_decl.
500	(ObjectFile::declareType): Remove function.
501	(ObjectFile::shouldEmit): Rename to output_declaration_p.
502	(ObjectFile::shouldEmit): Rename variant to output_symbol_p.
503	(ObjectFile::doThunk): Rename to use_thunk.
504	(ObjectFile::stripVarDecl): Remove function.
505	(ObjectFile::doSimpleFunction): Rename to build_simple_function.
506	(ObjectFile::doFunctionToCallFunctions): Rename to
507	build_call_function.
508	(ObjectFile::doCtorFunction): Rename to build_ctor_function.
509	(ObjectFile::doDtorFunction): Rename to build_dtor_function.
510	(ObjectFile::doUnittestFunction): Rename to build_unittest_function.
511	(ObjectFile::hasModule): Rename to output_module_p.
512	(ObjectFile::outputThunk): Rename to finish_thunk.
513	(write_deferred_thunks): New function to emit deferred thunks.
514
5152013-06-03  Iain Buclaw  <ibuclaw@gdcproject.org>
516
517	* d-decls.cc (VarDeclaration::toSymbol): Don't set default tls model.
518	* d-objfile.cc (ObjectFile::setupSymbolStorage): Set default tls
519	model for var decls before determining whether symbol is public.
520	(build_tlssections): Likewise for TLS symbols.
521
5222013-06-01  Johannes Pfau  <johannespfau@gmail.com>
523
524	* d-codegen.cc (maybe_set_builtin_frontend): Check parameter and
525	return types of intrinsics.
526
5272013-06-01  Iain Buclaw  <ibuclaw@gdcproject.org>
528
529	* d-codegen.cc (IRState::var): Handle variables used for NRVO.
530	* d-ir.cc (ReturnStatement::toIR): Return result decl directly if NRVO.
531	* d-objfile.cc (Symbol::SnamedResult): New member to hold the named
532	RESULT_DECL of the function.
533	(FuncDeclaration::toObjFile): Set-up function for NRVO.
534	(build_tlssections): Align _tlsstart and _tlsend symbols to target
535	address size.
536	* d-ctype.cc (TypeFunction::toSymbol): Mark functions returning non-POD
537	structs as TREE_ADDRESSABLE to force return in memory.
538	* d-decls.cc (FuncDeclaration::toSymbol): Propagate TREE_ADDRESSABLE
539	from the original function type.
540
5412013-05-29  Iain Buclaw  <ibuclaw@gdcproject.org>
542
543	* d-target.cc: New source file to handle Target structure.
544
545	* d-builtins.c (d_bi_init): Remove function.
546	(d_gcc_type_align): Move to Target::alignsize.
547	(d_gcc_field_align): Move to Target::fieldalign.
548	(d_init_builtins): Build va_list type for D frontend.
549	* d-lang.cc (d_init): Use isLP64 to determine LP64 targets.
550	(d_add_builtin_version): Set is64bit if target is X86_64.
551	* d-codegen.cc (convert_for_assignment): Use memset to implement front
552	end code (struct = 0) here, rather than build an empty constructor.
553	* d-elem.cc (AssignExp::toElem): Remove handling of (struct = 0) and
554	call convert_for_assignment.
555
5562013-05-28  Iain Buclaw  <ibuclaw@gdcproject.org>
557
558	* d-gcc-complex_t.h: Rename to complex_t.h.
559	* d-gcc-real.cc: Rename to d-longdouble.cc.
560	* d-gcc-real.h: Rename to longdouble.h
561	* d-port.cc: New source file to handle Port structure.
562	* gdc_alloca.h: Remove source.
563
564	* d-longdouble.cc (real_t): Rename to longdouble.
565	(longdouble::getnan): Move to Port::nan.
566	(longdouble::getsnan): Move to Port::snan.
567	(longdouble::getinfinity): Move to Port::infinity.
568	(longdouble::isInf): Move to Port::isInfinite.
569	(longdouble::isNan): Move to Port::isNan.
570	(longdouble::isSignallingNan): Move to Port::isSignallingNan.
571	* d-builtins.c (gcc_d_backend_init): Rename to d_backend_init.
572	(gcc_d_backend_term): Rename to d_backend_term.
573	(gcc_type_to_d_type): Don't map 128bit integers to D front end.
574
575	* d-elem.cc (AssignExp::toElem): Remove handling of fillHoles, use
576	memset to implement (struct = 0).
577	(StructLiteralExp::toElem): Handle fillHoles here, creating a
578	temporary var that is zero init'd with memset and returned.
579
5802013-05-27  Iain Buclaw  <ibuclaw@gdcproject.org>
581
582	* d-codegen.cc (IRState::localVar): Rename to build_local_var.
583	(IRState::exprVar): Rename to create_temporary_var.
584	(IRState::maybeExprvar): Rename to maybe_temporary_var.
585	(IRState::pointerIntSum): Rename to build_array_index.
586	* d-lang.cc (d_handle_target_attribute): New function to handle D
587	target attributes.
588
5892013-05-26  Iain Buclaw  <ibuclaw@gdcproject.org>
590
591	* d-incpath.cc (prefixed_path): Add cpp_GCC_INCLUDE_DIR back in as
592	second method for relocation.
593	* d-elem.cc (IndexExp::toElem): Fix call to _aaGetX as from
594	IRState::toElemLvalue.
595	* d-codegen.cc (IRState::toElemLvalue): Remove function.
596	(IRState::convertForAssignment): Rename to convert_for_assignment.
597	(IRState::convertForCondition): Rename to convert_for_condition.
598	(IRState::checkedIndex): Rename to d_checked_index.
599	(IRState::boundsCond): Rename to d_bounds_condition.
600	(IRState::arrayBoundsCheck): Rename to array_bounds_check.
601	(IRState::assertCall): Rename to d_assert_call.
602	(IRState::doLineNote): Move to irstate.h.
603	* d-irstate.cc (IRBase::getLocalContext): Remove function.
604	* d-decls.cc (VarDeclaration::toSymbol): Build decl lang specific for
605	decl to point back to D front end type.
606	(FuncDeclaration::toSymbol): Likewise.
607
6082013-05-23  Iain Buclaw  <ibuclaw@gdcproject.org>
609
610	* d-codegen.cc (AggLayout::finish): Unset TYPE_SIZE before
611	re-calculating.
612	* d-ctype.cc (TypeStruct::toCtype): Don't call decl_attribute on the
613	type twice.
614
6152013-05-21  Iain Buclaw  <ibuclaw@gdcproject.org>
616
617	* d-lang.cc (d_gcc_dump_source): Remove function.
618	(d_post_options): Set flag_excess_precision_cmd as standard.
619	* d-gcc-real.cc (real_t::convert): Remove function.
620	(real_t::floatCompare): Remove function.
621	(real_t::operator): Always perform floating point compilation at the
622	precision of the target real mode.
623	* d-todt.cc (dt_last): Remove function.
624	(dtlist_to_tree): Rename to dtvector_to_tree.
625	(dt_cons): Replace TREE_CHAIN implementation for use of CONSTRUCTOR.
626	(dt_chainon): Likewise.
627	(dt_container): Likewise.
628	(dt_container2): Likewise.
629	(StructInitializer::toDt): Likewise.
630	(StructLiteralExp::toDt): Likewise.
631
6322013-05-17  Iain Buclaw  <ibuclaw@gdcproject.org>
633
634	* d-codegen.cc (IRState::convertTo): Replace with d_convert and
635	convert_expr.
636	(IRState::declContext): Replace with d_decl_context.
637	(IRState::functionNeedsChain): Replace with needs_static_chain.
638	(IRState::label): Replace with d_build_label.
639	(IRState::emitTemplates): Move to ObjectFile.
640	(functionDegenerateClosure): Replace with is_degenerate_closure.
641	(get_object_method): Assert that function is a method.
642	(IRState::startCond): Move to IRBase.
643	(IRState::startElse): Likewise.
644	(IRState::endCond): Likewise.
645	(IRState::startLoop): Likewise.
646	(IRState::continueHere): Likewise.
647	(IRState::setContinueLabel): Likewise.
648	(IRState::exitIfFalse): Likewise.
649	(IRState::endLoop): Likewise.
650	(IRState::startCase): Likewise.
651	(IRState::doCase): Likewise.
652	(IRState::endCase): Likewise.
653	(IRState::continueLoop): Likewise.
654	(IRState::exitLoop): Likewise.
655	(IRState::startTry): Likewise.
656	(IRState::startCatches): Likewise.
657	(IRState::startCatch): Likewise.
658	(IRState::endCatch): Likewise.
659	(IRState::endCatches): Likewise.
660	(IRState::startFinally): Likewise.
661	(IRState::endFinally): Likewise.
662	(IRState::doReturn): Likewise.
663	(IRState::doJump): Likewise.
664	(IRState::pushLabel): Likewise.
665	(IRState::checkSwitchCase): Likewise.
666	(IRState::checkGoto): Likewise.
667	(IRState::checkPreviousGoto): Likewise.
668
669	* d-elem.cc (CatAssignExp::toElem): Call postblit on appending array of
670	structs if required.
671
6722013-05-16  Johannes Pfau  <johannespfau@gmail.com>
673
674	* d-incpath.cc (prefixed_path): use cpp_PREFIX instead of
675	cpp_GCC_INCLUDE_DIR for relocation.
676
6772013-05-16  Iain Buclaw  <ibuclaw@gdcproject.org>
678
679	* d-codegen.cc (IRState::convertForAssignment): Remove use of
680	CtorEltMaker wrapper for vec<constructor_elt, va_gc>.
681	(d_array_value): Likewise.
682	(build_delegate_cst): Likewise.
683	(extract_from_method_call): Likewise.
684	* d-elem.cc (NewExp::toElem): Likewise.
685	(ArrayLiteralExp::toElem): Likewise.
686	(AssocArrayLiteralExp::toElem): Likewise.
687	(StructLiteralExp::toElem): Likewise.
688	(NullExp::toElem): Likewise.
689	(VectorExp::toElem): Likewise.
690	* d-objfile.cc (build_moduleinfo): Likewise.
691	* d-todt.cc (dt_container): Likewise.
692	(dt_container2): Likewise.
693
694	* d-asmstmt.cc (ExtAsmStatement::toIR): Remove use of ListMaker
695	wrapper for tree chaining.
696	* d-builtins.c (d_bi_builtin_func): Likewise.
697	(d_bi_builtin_type): Likewise.
698	(d_gcc_magic_builtins_module): Likewise.
699	(d_gcc_magic_libbuiltins_module): Likewise.
700	* d-codegen.cc (build_attributes): Likewise.
701	(IRState::call): Likewise.
702	(IRState::buildFrameForFunction): Likewise.
703	(AggLayout::doFields): Likewise.
704	(AggLayout::addField): Likewise.
705	* d-ctype.cc (TypeEnum::toCtype): Likewise.
706	(TypeFunction::toCtype): Likewise.
707	* d-todt.cc (dt_container2): Likewise.
708
709	* d-codegen.cc (IRState::getFrameInfo): Replace with get_frameinfo.
710	(IRState::buildFrameForFunction): Replace with build_frame_type.
711	(IRState::isClassNestedInFunction): Replace with d_nested_class.
712	(IRState::isStructNestedInFunction): Replace with d_nested_struct.
713	(IRState::getFrameForFunction): Fold into IRState::getFrameForSymbol.
714	(IRState::getFrameForNestedClass): Likewise.
715	(IRState::getFrameForNestedStruct): Likewise.
716
7172013-05-15  Iain Buclaw  <ibuclaw@gdcproject.org>
718
719	* d-codegen.cc (IRState::buildFrameForFunction): Also copy the
720	parameters of functions with 'in' contracts to a local frame decl.
721	* d-lang.cc (d_handle_flatten_attribute): New function to handle D
722	flatten attributes.
723
7242013-05-14  Iain Buclaw  <ibuclaw@gdcproject.org>
725
726	* d-codegen.cc (IRState::chainLink): Remove function.
727	(IRState::chainFunc): Remove function.
728	(IRState::sthis): New member which holds the chain of function.
729	(IRState::buildChain): Update to use new static chain decl.
730	(IRState::getFrameInfo): Likewise.
731	* d-objfile.cc (FuncDeclaration::buildClosure): Likewise.
732	(FuncDeclaration::toObjFile): Default the function static chain decl
733	to null unless vthis is given for the function.
734
7352013-05-13  Iain Buclaw  <ibuclaw@gdcproject.org>
736
737	* d-lang.cc (d_handle_noinline_attribute): New function to handle D
738	noinline attributes.
739	(d_handle_forceinline_attribute): New function to handle D forceinline
740	attributes.
741	* d-elem.cc (StructLiteralExp::toElem): Return the struct initialiser
742	symbol directly if the tree has already been built.
743	* d-decls.cc (Dsymbol::toSymbolX): Constify the mangling name to use.
744
7452013-05-10  Iain Buclaw  <ibuclaw@gdcproject.org>
746
747	* d-typinf.cc: New file containing type info routines originally in
748	the D Front End.
749
750	* d-todt.cc (dt_last): New helper function to retrieve last node in a
751	dt_t tree list.
752	(dt_cons): New helper function to append nodes to the end of a list.
753	(dt_chainon): New helper function to concatenate two lists together.
754	(dt_container): New helper function to build a ctor from a list.
755	(build_vptr_monitor): New helper function to generate the class
756	vtable, and put out __vptr and __monitor.
757	symbol default values in a class declaration.
758	(dtlist_to_tree): New helper function to convert a dt_t list into a
759	constructor tree.
760	(Type::toDt): Implement routines for new dt_t format.
761	(TypeInfoDeclaration::toDt): Likewise.
762	(Initializer::toDt): Likewise.
763	(Expression::toDt): Likewise.
764	(Declaration::toDt): Likewise.
765
766	* d-objfile.cc (Dsymbol::toObjFile): Update for new dt_t format.
767	(Module::genmoduleinfo): Likewise.
768	(Symbol::Symbol): Moved from symbol.cc
769	(Obj::objmod): Remove abstraction layer.
770	(Obj::moduleinfo): Renamed to build_moduleinfo.
771	(obj_tlssections): Renamed to build_tlssections.
772	(outdata): Renamed to d_finish_symbol.
773	(check_static_sym): Moved into d_finish_symbol.
774
775	* d-codegen.cc (d_gcc_emit_local_variable): Remove.
776
777	* d-decls.cc (Dsymbol::toSymbolX): Update to not call symbol_calloc.
778	(FuncDeclaration::toThunkSymbol): Likewise.
779	(ClassDeclaration::toSymbol): Build type as d_unknown_type_node.
780	(InterfaceDeclaration::toSymbol): Likewise.
781	(Module::toSymbol): Likewise.
782	(ClassDeclaration::toVtblSymbol): Update call to toSymbolX.
783	(AggregateDeclaration::toInitializer): Likewise.
784	(TypedefDeclaration::toInitializer): Likewise.
785	(EnumDeclaration::toInitializer): Likewise.
786
787	* d-ir.cc (CaseStatement::toIR): Don't call static_sym.
788
789	* d-lang.cc (rtlsym): Remove symbol.
790	(D_DECL_READONLY_STATIC): Remove macro.
791	(d_unknown_type_node): New LANG_TYPE node for marking TypeInfo_Class,
792	Interface, and ModuleInfo types that are of a variable size determined
793	at compile time.
794
795	* d-elem.cc (StringExp::toElem): Clean up for new dt_t format.
796
797	* symbol.cc: Remove file.
798
7992013-05-08  Iain Buclaw  <ibuclaw@gdcproject.org>
800
801	* d-codegen.cc (IRState::getFrameInfo): Don't create a frame/closure
802	for member functions, only required for nested.
803	* d-elem.cc (Expression::toElemDtor): Call dtors in the correct order.
804	(DeclarationExp::toElem): Don't call dtor on static, manifest, or
805	extern symbols upon declaration.
806	(AssignExp::toElem): Only call postblit on lvalues in assignment.
807	(ArrayLiteralExp::toElem): Always generate literals on heap.
808
8092013-05-06  Iain Buclaw  <ibuclaw@gdcproject.org>
810
811	* d-elem.cc (StructLiteralExp::toElem): Return the default initialiser
812	symbol if one exists.
813	* d-builtins.c (d_gcc_magic_libbuiltins_check): Override the function
814	type with the correct built-in function type as defined in backend.
815
8162013-04-15  Iain Buclaw  <ibuclaw@gdcproject.org>
817
818	* d-elem.cc (IdentityExp::toElem): Remove special handling of class,
819	reference and array types.
820
8212013-04-12  Iain Buclaw  <ibuclaw@gdcproject.org>
822
823	* d-codegen.cc (maybe_make_temp): Save call expressions so aren't
824	evaluated more than once.
825	(d_has_side_effects): Remove check for exceptional class types.
826
8272013-04-10  Iain Buclaw  <ibuclaw@gdcproject.org>
828
829	* d-decls.cc (FuncDeclaration::toSymbol): Harden logic for marking
830	functions pure as in 'has no side effects'.
831
8322013-04-07  Iain Buclaw  <ibuclaw@gdcproject.org>
833
834	* d-decls.cc (FuncDeclaration::toSymbol): Push deferred functions to
835	FuncDeclaration::deferred.
836	* d-elem.cc (DelegateExp::toElem): Likewise.
837	(FuncExp::toElem): Likewise.
838	* d-objfile.cc (ObjectFile::shouldEmit): Likewise.
839	(FuncDeclaration::toObjFile): Process all deferred functions in
840	FuncDeclaration::deferred.
841	* symbol.cc (Symbol::deferredNestedFuncs): Remove.
842
8432013-04-05  Iain Buclaw  <ibuclaw@gdcproject.org>
844
845	* d-elem.cc (FuncExp::toElem): Defer function literals and lambdas
846	until parent function has finished processing.
847
8482013-04-04  Iain Buclaw  <ibuclaw@gdcproject.org>
849
850	* d-codegen.cc (IRState::buildChain): Use __frame decl directly when
851	setting up the function frame.
852	(maybe_set_builtin_frontend): Exit early if symbol has no parent.
853	* d-decls.cc (FuncDeclaration::toSymbol): Defer all nested functions,
854	not just templated instances.
855	* d-objfile.cc (FuncDeclaration::toObjFile): Delay processed deferred
856	nested functions until function has finished being generated.
857	(ObjectFile::shouldEmit): Don't emit nested functions if the parent
858	function hasn't finished processing.
859
8602013-04-03  Iain Buclaw  <ibuclaw@gdcproject.org>
861
862	* d-codegen.cc (maybe_set_builtin_frontend): Merged from
863	maybe_set_builtin and maybe_set_libcall.
864	* d-decls.cc (FuncDeclaration::toSymbol): Use
865	maybe_set_builtin_frontend.
866
8672013-03-31  Iain Buclaw  <ibuclaw@gdcproject.org>
868
869	* d-lang.cc (d_init_options): Default module info emission to on.
870	(d_handle_option): New femit-moduleinfo switch.
871	* d-objfile.cc (Module::genobjfile): Don't emit module if disabled
872	explicitly.
873	* d-builtins.cc (is_intrinsic_module_p): New function to test whether
874	module is core.bitops.
875	(is_math_module_p): New function to test whether module is std.math or
876	core.stdc.math.
877	(is_builtin_va_arg_p): New function to test whether symbol is
878	specially handled va_arg template.
879	(is_builtin_va_start_p): New function to test whether symbol is
880	specially handled va_start template.
881	* d-codegen.cc (IRState::binding): Replace with bind_expr.
882	(IRState::mathModule): Replace with std_math_module.
883	(IRState::mathCoreModule): Replace with core_math_module.
884	(IRState::intrinsicModule): Replace with std_intrinsic_module.
885	(IRState::cstdargTemplateDecl): Replace with va_arg_template.
886	(IRState::stdargTemplateDecl): Replace with va_arg2_template.
887	(IRState::cstdargStartTemplateDecl): Replace with va_start_template.
888	(IRState::getLibCallDecl): Replace with get_libcall.
889	(IRState::maybeSetLibCallDecl): Replace with maybe_set_libcall.
890	(IRState::libCall): Replace with build_libcall.
891	(IRState::maybeSetUpBuiltin): Replace with maybe_set_builtin.
892	(IRState::Intrinsic): Move enum out of IRState.
893
8942013-03-30  Iain Buclaw  <ibuclaw@gdcproject.org>
895
896	* d-codegen.cc (IRState::darrayPtrRef): Replace with d_array_ptr.
897	(IRState::darrayLenRef): Replace with d_array_length.
898	(IRState::darrayVal): Replace with d_array_value.
899	(IRState::darrayString): Replace with d_array_string.
900	(IRState::arrayLength): Replace with get_array_length.
901	(get_object_method): Remove dependancy on irs parameter.
902	* d-lang.cc (d_init): Use static bool std_inc to determine whether to
903	include standard module paths.
904	(d_post_options): Canonicalize the input filename.
905	(d_parse_file): Correctly catch cases where input file is stdin.
906
9072013-03-27  Iain Buclaw  <ibuclaw@gdcproject.org>
908
909	* d-codegen.cc (IRState::getFrameInfo) Create a custom static chain for
910	all nested functions.
911	* d-gcc-includes.h: Rename to d-system.h
912
9132013-03-23  Iain Buclaw  <ibuclaw@gdcproject.org>
914
915	* d-builtins.c (d_bi_init): Set REALPAD to be TYPE_PRECISION of
916	long_double_type_node.
917	* d-codegen.cc (IRState::twoFieldType): Replace with
918	build_two_field_type.
919	(IRState::arrayOpNotImplemented): Replace with unhandled_arrayop_p.
920	(IRState::delegateMethodRef): Replace with delegate_method.
921	(IRState::delegateObjectRef): Replace with delegate_object.
922	(IRState::delegateVal): Replace with build_delegate_cst.
923	(IRState::methodCallExpr): Replace with build_method_call.
924	(IRState::extractMethodCallExpr): Replace with
925	extract_from_method_call.
926	(IRState::objectInstanceMethod): Replace with get_object_method.
927	(IRState::twoFieldCtor): Remove.
928	(IRState::call): Assert that if calling a normal FUNCTION_TYPE,
929	'object' is not set.
930	* d-ctype.cc (TypeDelegate::toCtype): Build a METHOD_TYPE for the .func
931	field type in delegates.
932	* d-lang.h (D_IS_METHOD_CALL_EXPR): Rename to D_METHOD_CALL_EXPR.
933	* d-objfile.cc (FuncDeclaration::toObjFile): Remove assert for chain
934	function.
935
9362013-03-20  Johannes Pfau  <johannespfau@gmail.com>
937
938	* d-codegen.cc (IRState::objectInstanceMethod): Recursively check
939	for TOKsuper / TOKdottype. Do not ignore CastExp.
940	* d-elem.cc (IdentityExp::toElem): Ignore padding in bitwise floating
941	point comparisons.
942	* testsuite: Cleanup. Remove invalid tests, adjust tests, etc.
943
9442013-03-20  Iain Buclaw  <ibuclaw@gdcproject.org>
945
946	* d-codegen.cc (IRState::objectInstanceMethod): Get function pointer
947	off function TREE_TYPE.
948	(build_deref): Handle cases where expression to dereference is an
949	address expression.
950	(modify_expr): New function overload to set return type directly.
951	* d-elem.cc (CatAssignExp::toElem): Use new modify_expr.
952	(AssignExp::toElem): Likewise.
953	* d-decls.cc (FuncDeclaration::toSymbol): Don't build a method type for
954	nested functions / delegates.  Just add on the hidden 'this' pointer
955	containing the custom static chain/closure object.
956
957	* d-codegen.cc (GlobalValues): Replace with current_module,
958	current_irs, object_file.
959	(IRState::getFuncType): Replace with get_function_type.
960	(IRState::isCallByAlias): Replace with call_by_alias_p.
961	(IRState::isFuncType): Replace with function_type_p.
962	(IRState::doExp): Remove.
963
964	* d-asmstmt.cc (ExtAsmStatement::syntaxCopy): Use arraySyntaxCopy to
965	copy front end expressions.
966
967	* d-codegen.cc (AssignExp::toElem): Call _d_arrayassign / _d_arrayctor
968	when assigning arrays of structs.
969
9702013-03-18  Iain Buclaw  <ibuclaw@gdcproject.org>
971
972	* d-codegen.cc (IRState::realPart): Replace with real_part.
973	(IRState::imagPart): Replace with imaginary_part.
974	(IRState::integerConstant): Replace with build_integer_cst.
975	(IRState::floatConstant): Replace with build_float_cst.
976	(IRState::hwi2toli): Replace with cst_to_hwi.
977	(IRState::addressOf): Replace with build_address.
978	(IRState::markAddressable): Replace with d_mark_addressable.
979	(IRState::markUsed): Replace with d_mark_used.
980	(IRState::markRead): Replace with d_mark_read.
981	(IRState::indirect): Replace with indirect_ref.
982	(IRState::pvoidOkay): Replace with void_okay_p.
983	(IRState::maybeCompound): Replace with maybe_compound_expr.
984	(IRState::maybeVoidCompound): Replace with maybe_vcompound_expr.
985	(IRState::isErrorMark): Replace with error_mark_p.
986	(IRState::getTargetSizeConst): Replace with tree_to_hwi.
987	(IRState::modify): Replace with modify_expr.
988	(IRState::vmodify): Replace with vmodify_expr.
989	(IRState::vinit): Replace with build_vinit.
990	(IRState::nop): Replace with build_nop.
991	(IRState::vconvert): Replace with build_vconvert.
992	(IRState::boolOp): Replace with build_boolop.
993	(IRState::compound): Replace with compound_expr.
994	(IRState::voidCompound): Replace with vcompound_expr.
995	(IRState::component): Replace with component_ref.
996	(IRState::errorMark): Replace with error_mark.
997	(IRState::typesSame): Replace with d_types_same.
998	(IRState::typesCompatible): Replace with d_types_compatible.
999	(IRState::getDType): Replace with build_dtype.
1000	(IRState::getObjectType): Replace with build_object_type.
1001	(IRState::isDeclarationReferenceType): Replace with decl_reference_p.
1002	(IRState::trueDeclarationType): Replace with declaration_type.
1003	(IRState::isArgumentReferenceType): Replace with arg_reference_p.
1004	(IRState::trueArgumentType): Replace with type_passed_as.
1005	(IRState::arrayType): Replace with d_array_type.
1006	(IRState::addTypeAttribute): Replace with insert_type_attributes.
1007	(IRState::addDeclAttribute): Replace with insert_decl_attributes.
1008	(IRState::attributes): Replace with build_attributes.
1009	(IRState::addTypeModifiers): Replace with insert_type_modifiers.
1010	(IRState::maybeMakeTemp): Replace with maybe_make_temp.
1011	(IRState::isFreeOfSideEffects): Replace with d_has_side_effects.
1012	(IRState::pointerOffsetOp): Replace with build_offset_op.
1013	(IRState::pointerOffset): Replace with build_offset.
1014	(IRState::buildCall): Replace with d_build_call.
1015	(IRState::exceptionObject): Replace with build_exception_object.
1016
10172013-03-17  Iain Buclaw  <ibuclaw@gdcproject.org>
1018
1019	* d-asmstmt.cc (d_build_asm_stmt): Remove.
1020	(ExtAsmStatement::ExtAsmStatement): Update to match renamed members.
1021	(ExtAsmStatement::syntaxCopy): Likewise.
1022	(ExtAsmStatement::semantic): Likewise.
1023	(ExtAsmStatement::toCBuffer): Likewise.
1024	(ExtAsmStatement::comeFrom): New.
1025	(ExtAsmStatement::blockExit): Don't error if must not throw.
1026	(naturalString): Remove.
1027	(ExtAsmStatement::toIR): Inline IRState::doAsm implementation.
1028	* d-codegen.cc (IRState::doAsm): Remove.
1029	* d-decls.cc (FuncDeclaration::toSymbol): Don't generate 'naked'
1030	attribute.
1031	(binfo_for): Move into d-decls.cc.
1032	(intfc_binfo_for): Likewise.
1033	(ClassDeclaration::toDebug): Likewise.
1034	(EnumDeclaration::toDebug): Likewise.
1035	(TypedefDeclaration::toDebug): Likewise.
1036	(StructDeclaration::toDebug): Likewise.
1037	* d-objfile.cc (FuncDeclaration::toObjFile): Move into d-objfile.cc.
1038	(FuncDeclaration::buildClosure): Likewise.
1039	(Module::genobjfile): Likewise.
1040	* d-glue.cc: Remove file.
1041
10422013-03-16  Iain Buclaw  <ibuclaw@gdcproject.org>
1043
1044	* d-ir.cc (SynchronizedStatement::toIR): Remove implementation as is
1045	now handled by the frontend.
1046
10472013-03-15  Iain Buclaw  <ibuclaw@gdcproject.org>
1048
1049	* d-codegen.cc (IRState::maybeExpandSpecialCall): Handle ref argptr
1050	arguments.
1051
10522013-03-13  Iain Buclaw  <ibuclaw@gdcproject.org>
1053
1054	* d-builtins.c (handle_alias_attribute): New function to handle
1055	internal 'alias' attribute.
1056	(handle_weakref_attribute): New function to handle internal 'weakref'
1057	attribute.
1058	* d-objfile.cc (ObjectFile::outputThunk): Define thunks to external
1059	symbols as weakref, alias
1060
10612013-03-12  Johannes Pfau  <johannespfau@gmail.com>
1062
1063	* patch-versym-os-4.8.x (mingw32.h): Fix typo
1064	* patch-versym-cpu-4.8.x (mips.h): Fix typo
1065	Update version symbols to latest dlang specification.
1066
10672013-03-10  Iain Buclaw  <ibuclaw@gdcproject.org>
1068
1069	* d-decls.cc (FuncDeclaration::toSymbol): Delay setting TREE_TYPE as
1070	function type could be hidden in a nested function not yet built.
1071	* d-codegen.cc (IRState::findThis): Don't get 'this' from outer
1072	function if it's a closure type.  This has already been handled by
1073	IRState::getFrameForSymbol.
1074	(IRState::buildChain): Give frame decl debug name '__frame'.
1075	Always set '__chain' link field.
1076	(IRState::getFrameInfo): Don't build a frame for all nested functions.
1077	Search through nested aggregates for static chain in outer functions.
1078	* d-codegen.h (IRState::useParentChain): Remove.
1079	* d-glue.cc (FuncDeclaration::toObjFile): Don't call useParentChain.
1080	Don't create a local var for the chain link for a function.
1081	(FuncDeclaration::buildClosure): Always set '__chain' link field.
1082
10832013-03-08  Iain Buclaw  <ibuclaw@gdcproject.org>
1084
1085	* d-codegen.cc (d_gcc_force_templates): Only check for emitting
1086	templates as private.
1087	* d-lang.cc (d_handle_option): Remove -femit-templates= option.
1088	* d-objfile.cc (ObjectFile::makeDeclOneOnly): Fix code logic so
1089	fallback method could be reached.
1090	* d-objfile.h (TEall, TEauto): Remove.
1091
10922013-03-07  Iain Buclaw  <ibuclaw@gdcproject.org>
1093
1094	* d-ir.cc (ReturnStatement::toIR): Don't call postblit on return.
1095	* d-codegen.cc (IRState::trueDeclarationType): Don't set
1096	D_TYPE_ADDRESSABLE.
1097	(IRState::makeTemp): Remove.
1098	(IRState::maybeMakeTemp): Copy makeTemp into function.
1099	* d-glue.cc (d_genericize): Remove D_TYPE_ADDRESSABLE handling.
1100	* d-lang.h (D_TYPE_ADDRESSABLE): Remove macro.
1101
11022013-03-04  Johannes Pfau  <johannespfau@gmail.com>
1103
1104	* d-ctype.cc (Type::toCtype): Always call gen.addTypeModifiers to
1105	make sure TYPE_MAIN_VARIANT is set. Reuse tree from unqualified
1106	variant for that. Also cache the resulting qualified tree.
1107	(TypeTypedef::toCtype): Likewise.
1108	(TypeEnum::toCtype): Likewise.
1109	(TypeStruct::toCtype): Likewise.
1110	(TypeFunction::toCtype): Likewise.
1111	(TypeVector::toCtype): Likewise.
1112	(TypeSArray::toCtype): Likewise.
1113	(TypeDArray::toCtype): Likewise.
1114	(TypeAArray::toCtype): Likewise.
1115	(TypeDelegate::toCtype): Likewise.
1116	(TypeClass::toCtype): Likewise.
1117	* d-objfile.cc (ObjectFile::giveDeclUniqueName): Make sure DECL_NAME is set
1118
11192013-03-01  Iain Buclaw  <ibuclaw@gdcproject.org>
1120
1121	* d-decls.cc (VarDeclaration::toSymbol): Remove use of c_ident.
1122	(FuncDeclaration::toSymbol): Likewise.
1123	* d-builtins.c (handle_noreturn_attribute): Assert that this is only
1124	used for internal purposes.
1125	(handle_const_attribute): Likewise.
1126	(handle_malloc_attribute): Likewise.
1127	(handle_pure_attribute): Likewise.
1128	(handle_nonnull_attribute): Likewise.
1129	(handle_nothrow_attribute): Likewise.
1130	(handle_sentinel_attribute): Likewise.
1131	(handle_transaction_pure_attribute): Likewise.
1132	(handle_returns_twice_attribute): Likewise.
1133	* d-glue.cc (FuncDeclaration::toObjFile): Result variables have no
1134	default initialiser.
1135	* d-codegen.cc (IRState::emitLocalVar): Add in assert that the local
1136	variable has no initialiser if called with no_init = true.
1137	(IRState::getLibCallDecl): Mark exceptional library functions as
1138	noreturn.
1139	(IRState::attributes): Gracefully handle @attribute, and
1140	@attribute(null).
1141
11422013-02-28  Jernej Krempus  <jkrempus@gmail.com>
1143
1144	* d-builtins.c (d_attribute_table): Renamed it to
1145	d_builtins_attribute_table.
1146	* d-lang.cc (d_attribute_table): Added an empty table
1147	* d-lang.cc (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE): Defined it as
1148	d_builtins_attribute_table.
1149	* d-lang.h (d_builtins_attribute_table): Added a declaration.
1150	* d-codegen.cc (IRState::attributes): Changed it so it goes through
1151	in_attrs and looks for any @gcc.attribute.attribute("attr_name").
1152	* d-objfile.cc (ObjectFile::setupSymbolStorage): Pass userAttributes
1153	instead of attributes in all calls to IRState::attributes.
1154	* d-ctype.cc (TypeTypedef::toCtype): Likewise.
1155	(TypeEnum::toCtype): Likewise.
1156	(TypeStruct::toCtype): Likewise.
1157	(TypeClass::toCtype): Likewise.
1158	* libphobos/libdruntime/gcc/attribute.d: New file.
1159
11602013-02-28  Iain Buclaw  <ibuclaw@gdcproject.org>
1161
1162	* d-lang.cc (d_handle_option): Remove OPT_fdeprecated and
1163	OPT_Wsign_compare, add handling for OPT_Wdeprecated.
1164	(d_post_options): Handle Wdeprecated and Werror switch combination.
1165
11662013-02-27  Iain Buclaw  <ibuclaw@gdcproject.org>
1167
1168	* d-codegen.cc (ArrayScope::ArrayScope): Don't setup length var if its
1169	value is known at compile time.
1170	(ArrayScope::setArrayExp): Likewise.
1171	* d-decls.cc (uniqueName): Remove function.
1172	(VarDeclaration::toSymbol): Set decl assembler name directly.
1173	(FuncDeclaration::toSymbol): Likewise.
1174
11752013-02-15  Iain Buclaw  <ibuclaw@gdcproject.org>
1176
1177	* Make-lang.in (GDC_EXTENDED_ASM_SYNTAX): Remove macro.
1178
11792013-02-14  Iain Buclaw  <ibuclaw@gdcproject.org>
1180
1181	* d-lang.h (D_DECL_IS_CONTRACT): Remove macro.
1182	* d-decls.cc (FuncDeclaration::toSymbol): Likewise.
1183
11842013-02-13  Iain Buclaw  <ibuclaw@gdcproject.org>
1185
1186	* d-lang.cc (d_gcc_is_target_win32): Remove.
1187	(d_add_builtin_version): New function to handle define_builtin
1188	callback from backend.
1189	* d-codegen.cc (IRState::maybeExpandSpecialCall): Remove intrinsic bt.
1190
1191	* d-builtins.c: Merge with d-builtins2.cc.
1192	* d-builtins2.cc: Remove.
1193
11942013-02-07  Johannes Pfau  <johannespfau@gmail.com>
1195
1196	* d-lang.cc (d_init): Use gcc's config system for predefined OS versions.
1197	* setup-gcc.sh: Likewise.
1198	* target-ver-syms.sh: Likewise.
1199
12002013-02-05  Iain Buclaw  <ibuclaw@ubuntu.com>
1201
1202	* d-builtins2.cc (gcc_type_to_d_type): Remove STRUCTTHISREF condition.
1203	* d-decls.cc (FuncDeclaration::toSymbol): Likewise.
1204	* d-elem.cc (ThisExp::toElem): Likewise.
1205	* d-ctype.cc (TypeSArray::toCtype): Remove SARRAYVALUE condition.
1206	* d-codegen.cc (IRState::isDeclarationReferenceType): Likewise.
1207	(IRState::isArgumentReferenceType): Likewise.
1208
12092013-02-01  Johannes Pfau  <johannespfau@gmail.com>
1210
1211	* d-lang.cc (d_init): Use gcc's config system for predefined CPU versions.
1212	(d_init): Fix definition of D_LP64 version.
1213	* setup-gcc.sh: Likewise.
1214	* target-ver-syms.sh: Likewise.
1215
1216
1217Copyright (C) 2013 Free Software Foundation, Inc.
1218
1219Copying and distribution of this file, with or without modification,
1220are permitted in any medium without royalty provided the copyright
1221notice and this notice are preserved.
1222