diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2012-10-22 08:19:58 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2012-10-22 08:19:58 +0000 |
commit | 00a22e5e4bf265fcc0e6e1a3252194c87fc8d4aa (patch) | |
tree | d66cbd99f2ba3518308370e8a9c2f38d3b597486 | |
parent | cd177257a5e620006d1902e6659832e9912a4e5a (diff) | |
download | gcc-00a22e5e4bf265fcc0e6e1a3252194c87fc8d4aa.zip gcc-00a22e5e4bf265fcc0e6e1a3252194c87fc8d4aa.tar.gz gcc-00a22e5e4bf265fcc0e6e1a3252194c87fc8d4aa.tar.bz2 |
trans.c (Loop_Statement_to_gnu): Use gnat_type_for_size directly to obtain an unsigned version of the base type.
* gcc-interface/trans.c (Loop_Statement_to_gnu): Use gnat_type_for_size
directly to obtain an unsigned version of the base type.
From-SVN: r192669
-rw-r--r-- | gcc/ada/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/ada/gcc-interface/trans.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/modular4.adb | 11 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/modular4_pkg.ads | 9 |
5 files changed, 32 insertions, 1 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 30428c6..5d39ca7 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,5 +1,10 @@ 2012-10-22 Eric Botcazou <ebotcazou@adacore.com> + * gcc-interface/trans.c (Loop_Statement_to_gnu): Use gnat_type_for_size + directly to obtain an unsigned version of the base type. + +2012-10-22 Eric Botcazou <ebotcazou@adacore.com> + * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Out_Parameter>: Do not generate the special PARM_DECL for an Out parameter in LTO mode. diff --git a/gcc/ada/gcc-interface/trans.c b/gcc/ada/gcc-interface/trans.c index aac483c..c4a40c72 100644 --- a/gcc/ada/gcc-interface/trans.c +++ b/gcc/ada/gcc-interface/trans.c @@ -2431,7 +2431,8 @@ Loop_Statement_to_gnu (Node_Id gnat_node) { if (TYPE_PRECISION (gnu_base_type) > TYPE_PRECISION (size_type_node)) - gnu_base_type = gnat_unsigned_type (gnu_base_type); + gnu_base_type + = gnat_type_for_size (TYPE_PRECISION (gnu_base_type), 1); else gnu_base_type = size_type_node; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 7f2ddb1..dbe23bf 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2012-10-22 Eric Botcazou <ebotcazou@adacore.com> + + * gnat.dg/modular4.adb: New test. + * gnat.dg/modular4_pkg.ads: New helper. + 2012-10-21 Eric Botcazou <ebotcazou@adacore.com> * gnat.dg/specs/atomic1.ads: XFAIL on MIPS. diff --git a/gcc/testsuite/gnat.dg/modular4.adb b/gcc/testsuite/gnat.dg/modular4.adb new file mode 100644 index 0000000..e8e8f29 --- /dev/null +++ b/gcc/testsuite/gnat.dg/modular4.adb @@ -0,0 +1,11 @@ +-- { dg-do compile } +-- { dg-options "-O" } + +with Modular4_Pkg; use Modular4_Pkg; + +procedure Modular4 is +begin + for I in Zero .. F mod 8 loop + raise Program_Error; + end loop; +end; diff --git a/gcc/testsuite/gnat.dg/modular4_pkg.ads b/gcc/testsuite/gnat.dg/modular4_pkg.ads new file mode 100644 index 0000000..b380262 --- /dev/null +++ b/gcc/testsuite/gnat.dg/modular4_pkg.ads @@ -0,0 +1,9 @@ +package Modular4_Pkg is + + type Word is mod 2**48; + + Zero : constant Word := 0; + + function F return Word; + +end Modular4_Pkg; |