From: ebotcazou Date: Fri, 19 Mar 2010 07:18:47 +0000 (+0000) Subject: PR ada/43106 X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=commitdiff_plain;h=fbd3f0a96e94374c2c9ad89cff086d1ec7b421cf PR ada/43106 * gnat.dg/case_optimization2.adb: New test. * gnat.dg/case_optimization_pkg2.ad[sb]: New helper. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@157558 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index ef33f4cab91..482b3853c99 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2010-03-19 Eric Botcazou + + PR ada/43106 + * gnat.dg/case_optimization2.adb: New test. + * gnat.dg/case_optimization_pkg2.ad[sb]: New helper. + 2010-03-11 Francois-Xavier Coudert Jack Howarth diff --git a/gcc/testsuite/gnat.dg/case_optimization2.adb b/gcc/testsuite/gnat.dg/case_optimization2.adb new file mode 100644 index 00000000000..f548a848801 --- /dev/null +++ b/gcc/testsuite/gnat.dg/case_optimization2.adb @@ -0,0 +1,14 @@ +-- PR ada/43106 +-- Testcase by Bill Neven + +-- { dg-do run } +-- { dg-options "-O" } + +with Case_Optimization_Pkg2; use Case_Optimization_Pkg2; + +procedure Case_Optimization2 is + Radar : Radar_T; +begin + Radar.Sensor_Type := radcmb; + Initialize (Radar); +end; diff --git a/gcc/testsuite/gnat.dg/case_optimization_pkg2.adb b/gcc/testsuite/gnat.dg/case_optimization_pkg2.adb new file mode 100644 index 00000000000..57f9224e5e7 --- /dev/null +++ b/gcc/testsuite/gnat.dg/case_optimization_pkg2.adb @@ -0,0 +1,23 @@ +package body Case_Optimization_Pkg2 is + + procedure Initialize (Radar : in Radar_T) is + Antenna1 : Antenna_Type_T; + Antenna2 : Antenna_Type_T; + begin + case Radar.Sensor_Type is + when radpr | radssr => + Antenna1 := Radar.Sensor_Type; + Antenna2 := Radar.Sensor_Type; + when radcmb => + Antenna1 := radpr; + Antenna2 := radssr; + when others => + Antenna1 := radpr; + Antenna2 := radssr; + end case; + if Antenna1 /= radpr or Antenna2 /= radssr then + raise Program_Error; + end if; + end Initialize; + +end Case_Optimization_Pkg2; diff --git a/gcc/testsuite/gnat.dg/case_optimization_pkg2.ads b/gcc/testsuite/gnat.dg/case_optimization_pkg2.ads new file mode 100644 index 00000000000..c41a05c2605 --- /dev/null +++ b/gcc/testsuite/gnat.dg/case_optimization_pkg2.ads @@ -0,0 +1,23 @@ +package Case_Optimization_Pkg2 is + + type Unsigned_64 is mod 2 ** 64; + + type Associated_Report_T is (miss, radpr, radssr, radcmb); + + -- sensor type : primary, secondary, co-rotating (combined) + subtype Sensor_Type_T is Associated_Report_T; -- range radpr .. radcmb; + subtype Antenna_Type_T is Sensor_Type_T range radpr .. radssr; + + type Filtering_Level_T is (none, pr_in_clutter, ssr_plots, pr_plots); + type Filtering_Levels_T is array (Filtering_Level_T) of boolean; + + type Radar_T is record + External_Sensor_ID : Unsigned_64; + Dual_Radar_Index : Integer; + Compatible_Filtering_Levels : Filtering_Levels_T; + Sensor_Type : Sensor_Type_T; + end record; + + procedure Initialize (Radar : in Radar_T); + +end Case_Optimization_Pkg2;