aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/gcc-interface/decl.c
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2009-10-21 10:12:55 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2009-10-21 10:12:55 +0000
commit9a1c0fd9f2a59bbbfb4801064bf7cad898389e70 (patch)
tree2d23da8685908b2b3b685be1676b5a0216d721ea /gcc/ada/gcc-interface/decl.c
parentcfbb663cd1011704022248912b904571c2f4d49e (diff)
downloadgcc-9a1c0fd9f2a59bbbfb4801064bf7cad898389e70.zip
gcc-9a1c0fd9f2a59bbbfb4801064bf7cad898389e70.tar.gz
gcc-9a1c0fd9f2a59bbbfb4801064bf7cad898389e70.tar.bz2
decl.c (gnat_to_gnu_entity): Do not create a new TYPE_DECL when a type is padded if...
* gcc-interfaces/decl.c (gnat_to_gnu_entity): Do not create a new TYPE_DECL when a type is padded if there is already one and reset TYPE_STUB_DECL in this case. From-SVN: r153053
Diffstat (limited to 'gcc/ada/gcc-interface/decl.c')
-rw-r--r--gcc/ada/gcc-interface/decl.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/ada/gcc-interface/decl.c b/gcc/ada/gcc-interface/decl.c
index a2af179..70ced84 100644
--- a/gcc/ada/gcc-interface/decl.c
+++ b/gcc/ada/gcc-interface/decl.c
@@ -4436,7 +4436,7 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition)
us when we make the new TYPE_DECL below. */
if (gnu_size || align > 0)
gnu_type = maybe_pad_type (gnu_type, gnu_size, align, gnat_entity,
- false, true, definition, false);
+ false, !gnu_decl, definition, false);
if (TYPE_IS_PADDING_P (gnu_type))
{
@@ -4555,7 +4555,10 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition)
!Comes_From_Source (gnat_entity),
debug_info_p, gnat_entity);
else
- TREE_TYPE (gnu_decl) = gnu_type;
+ {
+ TREE_TYPE (gnu_decl) = gnu_type;
+ TYPE_STUB_DECL (gnu_type) = gnu_decl;
+ }
}
if (is_type && !TYPE_IS_DUMMY_P (TREE_TYPE (gnu_decl)))