diff options
Diffstat (limited to 'gcc/d')
-rw-r--r-- | gcc/d/d-codegen.cc | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/d/d-codegen.cc b/gcc/d/d-codegen.cc index 5a04192..5c6c300 100644 --- a/gcc/d/d-codegen.cc +++ b/gcc/d/d-codegen.cc @@ -2706,6 +2706,11 @@ build_frame_type (tree ffi, FuncDeclaration *fd) TREE_ADDRESSABLE (field) = TREE_ADDRESSABLE (vsym); DECL_NONADDRESSABLE_P (field) = !TREE_ADDRESSABLE (vsym); TREE_THIS_VOLATILE (field) = TREE_THIS_VOLATILE (vsym); + SET_DECL_ALIGN (field, DECL_ALIGN (vsym)); + + /* Update alignment for frame record type. */ + if (TYPE_ALIGN (frame_rec_type) < DECL_ALIGN (field)) + SET_TYPE_ALIGN (frame_rec_type, DECL_ALIGN (field)); if (DECL_LANG_NRVO (vsym)) { |