Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/gnat.dg/debug9.adb @ 158:494b0b89df80 default tip
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 25 May 2020 18:13:55 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
-- 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;