-- The aim of this test is to check that Ada types appear in the proper -- context in the debug info. -- -- Checking this directly would be really tedious just scanning for assembly -- lines, so instead we rely on DWARFv4's .debug_types sections, which must be -- created only for global-scope types. Checking the number of .debug_types is -- some hackish way to check that types are output in the proper context (i.e. -- at global or local scope). -- -- { dg-skip-if "No dwarf-4 support" { hppa*-*-hpux* } } -- { dg-options "-cargs -gdwarf-4 -fdebug-types-section -dA -margs" } -- { dg-final { scan-assembler-times "\\(DIE \\(0x\[a-f0-9\]*\\) DW_TAG_type_unit\\)" 0 } } procedure Debug9 is type Array_Type is array (Natural range <>) of Integer; type Record_Type (L1, L2 : Natural) is record I1 : Integer; A1 : Array_Type (1 .. L1); I2 : Integer; A2 : Array_Type (1 .. L2); I3 : Integer; end record; function Get (L1, L2 : Natural) return Record_Type is Result : Record_Type (L1, L2); begin Result.I1 := 1; for I in Result.A1'Range loop Result.A1 (I) := I; end loop; Result.I2 := 2; for I in Result.A2'Range loop Result.A2 (I) := I; end loop; Result.I3 := 3; return Result; end Get; R1 : Record_Type := Get (0, 0); R2 : Record_Type := Get (1, 0); R3 : Record_Type := Get (0, 1); R4 : Record_Type := Get (2, 2); procedure Process (R : Record_Type) is begin null; end Process; begin Process (R1); Process (R2); Process (R3); Process (R4); end Debug9;