aboutsummaryrefslogtreecommitdiff
path: root/gcc/d
diff options
context:
space:
mode:
authorIain Buclaw <ibuclaw@gdcproject.org>2018-11-17 11:01:00 +0000
committerIain Buclaw <ibuclaw@gcc.gnu.org>2018-11-17 11:01:00 +0000
commitd7815fc4509e0caf04c4b43de89b20ac57504307 (patch)
tree6238646e5b35ec5f3c92eb2b116ecec4b45877b3 /gcc/d
parent95c0a21042ec73315ccd6f216f07b4361b02b7e9 (diff)
downloadgcc-d7815fc4509e0caf04c4b43de89b20ac57504307.zip
gcc-d7815fc4509e0caf04c4b43de89b20ac57504307.tar.gz
gcc-d7815fc4509e0caf04c4b43de89b20ac57504307.tar.bz2
Fix wrong alignment returned by .alignof property.
The D language expects the value to be the minimum alignment required for the type, not the preferred alignment. gcc/d/ChangeLog: 2018-11-17 Iain Buclaw <ibuclaw@gdcproject.org> PR d/87824 * d-target.cc (Target::alignsize): Return min_align_of_type. From-SVN: r266234
Diffstat (limited to 'gcc/d')
-rw-r--r--gcc/d/ChangeLog5
-rw-r--r--gcc/d/d-target.cc2
2 files changed, 6 insertions, 1 deletions
diff --git a/gcc/d/ChangeLog b/gcc/d/ChangeLog
index d534f36..c706d08 100644
--- a/gcc/d/ChangeLog
+++ b/gcc/d/ChangeLog
@@ -1,3 +1,8 @@
+2018-11-17 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ PR d/87824
+ * d-target.cc (Target::alignsize): Return min_align_of_type.
+
2018-11-05 Iain Buclaw <ibuclaw@gdcproject.org>
PR d/87865
diff --git a/gcc/d/d-target.cc b/gcc/d/d-target.cc
index 3ae791b..86b0429 100644
--- a/gcc/d/d-target.cc
+++ b/gcc/d/d-target.cc
@@ -189,7 +189,7 @@ unsigned
Target::alignsize (Type *type)
{
gcc_assert (type->isTypeBasic ());
- return TYPE_ALIGN_UNIT (build_ctype (type));
+ return min_align_of_type (build_ctype (type));
}
/* Return GCC field alignment size for type TYPE. */