@@ -7786,6 +7786,7 @@ gnat_to_gnu_field (Entity_Id gnat_field, tree gnu_record_type, int packed,
/* If a size is specified, adjust the field's type to it. */
if (gnu_size)
{
+ tree debug_field_type = gnu_field_type;
tree orig_field_type;
/* If the field's type is justified modular, we would need to remove
@@ -7844,6 +7845,9 @@ gnat_to_gnu_field (Entity_Id gnat_field, tree gnu_record_type, int packed,
&& !DECL_P (TYPE_NAME (gnu_field_type)))
create_type_decl (TYPE_NAME (gnu_field_type), gnu_field_type, true,
debug_info_p, gnat_field);
+
+ if (debug_info_p && gnu_field_type != debug_field_type)
+ SET_TYPE_DEBUG_TYPE (gnu_field_type, debug_field_type);
}
/* Otherwise (or if there was an error), don't specify a position. */
@@ -1,6 +1,7 @@
-- { dg-do compile }
-- { dg-options "-cargs -g -dA -gnatws -fgnat-encodings=gdb -margs" }
-- { dg-final { scan-assembler "DW_AT_GNU_bias" } }
+-- { dg-final { scan-assembler-times "-7.*DW_AT_GNU_bias" 1 } }
procedure Bias1 is
type Small is range -7 .. -4;
@@ -31,4 +32,4 @@ procedure Bias1 is
begin
null;
-end Bias1;
\ No newline at end of file
+end Bias1;