From: Eric Botcazou Date: Mon, 22 Oct 2012 08:19:58 +0000 (+0000) Subject: trans.c (Loop_Statement_to_gnu): Use gnat_type_for_size directly to obtain an unsigne... X-Git-Tag: misc/gccgo-go1_1_2~56 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=00a22e5e4bf265fcc0e6e1a3252194c87fc8d4aa;p=thirdparty%2Fgcc.git 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 --- diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 30428c6ce325..5d39ca7f876b 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,8 @@ +2012-10-22 Eric Botcazou + + * 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 * gcc-interface/decl.c (gnat_to_gnu_entity) : Do not diff --git a/gcc/ada/gcc-interface/trans.c b/gcc/ada/gcc-interface/trans.c index aac483cafaa7..c4a40c72cc4d 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 7f2ddb101516..dbe23bf7cd7e 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2012-10-22 Eric Botcazou + + * gnat.dg/modular4.adb: New test. + * gnat.dg/modular4_pkg.ads: New helper. + 2012-10-21 Eric Botcazou * 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 000000000000..e8e8f2956e19 --- /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 000000000000..b38026201ed2 --- /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;