diff options
Diffstat (limited to 'gcc/testsuite/gnat.dg/pack4.adb')
-rw-r--r-- | gcc/testsuite/gnat.dg/pack4.adb | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/gcc/testsuite/gnat.dg/pack4.adb b/gcc/testsuite/gnat.dg/pack4.adb new file mode 100644 index 000000000..2c73e1dd4 --- /dev/null +++ b/gcc/testsuite/gnat.dg/pack4.adb @@ -0,0 +1,38 @@ +-- { dg-do run } + +procedure Pack4 is + + type Time_T is record + Hour : Integer; + end record; + + type Date_And_Time_T is record + Date : Integer; + Time : Time_T; + end record; + + pragma Pack(Date_And_Time_T); + + procedure + Assign_Hour_Of (T : out Time_T) + is + begin + T.Hour := 44; + end; + + procedure + Clobber_Hour_Of (DT: out Date_And_Time_T) + is + begin + Assign_Hour_Of (Dt.Time); + end; + + DT : Date_And_Time_T; + +begin + DT.Time.Hour := 22; + Clobber_Hour_Of (DT); + if DT.Time.Hour /= 44 then + raise Program_Error; + end if; +end; |