d: Fix run-time SIGSEGV reading ModuleInfo.flags()

The current forced alignment is not necessary, and is problematic on
targets that have strict alignment rules.

gcc/d/ChangeLog:

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

	PR d/88462
	* modules.cc (layout_moduleinfo_fields): Properly align ModuleInfo,
	instead of forcing alignment to be 1.

From-SVN: r270043
This commit is contained in:
Iain Buclaw 2019-03-31 14:34:41 +00:00 committed by Iain Buclaw
parent 16216c7fbe
commit 1605fb3ed0
2 changed files with 9 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2019-03-31 Iain Buclaw <ibuclaw@gdcproject.org>
PR d/88462
* modules.cc (layout_moduleinfo_fields): Properly align ModuleInfo,
instead of forcing alignment to be 1.
2019-03-21 Iain Buclaw <ibuclaw@gdcproject.org>
PR d/89017

View File

@ -534,7 +534,9 @@ layout_moduleinfo_fields (Module *decl, tree type)
layout_moduleinfo_field (make_array_type (Type::tchar, namelen),
type, offset);
finish_aggregate_type (offset, 1, type, NULL);
size_t alignsize = MAX (TYPE_ALIGN_UNIT (type),
TYPE_ALIGN_UNIT (ptr_type_node));
finish_aggregate_type (offset, alignsize, type, NULL);
return type;
}