aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2012-10-22 08:19:58 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2012-10-22 08:19:58 +0000
commit00a22e5e4bf265fcc0e6e1a3252194c87fc8d4aa (patch)
treed66cbd99f2ba3518308370e8a9c2f38d3b597486
parentcd177257a5e620006d1902e6659832e9912a4e5a (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--gcc/ada/gcc-interface/trans.c3
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gnat.dg/modular4.adb11
-rw-r--r--gcc/testsuite/gnat.dg/modular4_pkg.ads9
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;