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

	* d-codegen.cc (empty_aggregate_p): New function.
	(d_build_call): Don't pass empty aggregates by value.
	(build_struct_memcmp): Don't compare empty aggregates by value.
	* d-elem.cc (IdentityExp::toElem): Likewise.
	(EqualExp::toElem): Likewise.
	* (StructLiteralExp::toElem): Don't create temporaries or initialize
	holes for empty	aggregates.
	* d-lang.cc (empty_modify_p): New function.
	(d_gimplify_expr): Remove assignments that involve empty aggregates.

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

	* d-builtins.cc (d_builtin_type): Define DEF_FUNCTION_TYPE_9,
	DEF_FUNCTION_TYPE_10, and DEF_FUNCTION_TYPE_11.
	(d_init_builtins): Likewise.
	* d-longdouble.cc (machineMode): Remove function.
	(longdouble::init): Don't use initialize real format by reference.
	(longdouble::operator+): Use real_arithmetic instead of
	REAL_ARITHMETIC.
	(longdouble::operator-): Likewise.
	(longdouble::operator*): Likewise.
	(longdouble::operator/): Likewise.
	(longdouble::operator%): Likewise.
	* d-port.cc (Port::isSignallingNan): Use REAL_VALUE_ISSIGNALING_NAN.
	(Port::fequal): Use real_identical instead of REAL_VALUES_IDENTICAL.
	* d-target.cc: Include stor-layout.h header.
	* lang.opt: Remove documentation for switches defined elsewhere.

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

	* d-codegen.cc (get_libcall): Use set_call_expr_flags to apply runtime
	function attributes.
	* d-codegen.h (LibCallFlag): Remove type.
	* runtime.def: Replace LibCallFlag with ECF everywhere.

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