summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gnat.dg/overflow_sum2.adb
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gnat.dg/overflow_sum2.adb')
-rw-r--r--gcc/testsuite/gnat.dg/overflow_sum2.adb32
1 files changed, 32 insertions, 0 deletions
diff --git a/gcc/testsuite/gnat.dg/overflow_sum2.adb b/gcc/testsuite/gnat.dg/overflow_sum2.adb
new file mode 100644
index 000000000..8374eee13
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/overflow_sum2.adb
@@ -0,0 +1,32 @@
+-- { dg-do compile }
+-- { dg-options "-gnato" }
+
+with Namet; use Namet;
+
+function Overflow_Sum2 return Hash_Index_Type is
+
+ Even_Name_Len : Integer;
+
+begin
+
+ if Name_Len > 12 then
+ Even_Name_Len := (Name_Len) / 2 * 2;
+
+ return ((((((((((((
+ Character'Pos (Name_Buffer (01))) * 2 +
+ Character'Pos (Name_Buffer (Even_Name_Len - 10))) * 2 +
+ Character'Pos (Name_Buffer (03))) * 2 +
+ Character'Pos (Name_Buffer (Even_Name_Len - 08))) * 2 +
+ Character'Pos (Name_Buffer (05))) * 2 +
+ Character'Pos (Name_Buffer (Even_Name_Len - 06))) * 2 +
+ Character'Pos (Name_Buffer (07))) * 2 +
+ Character'Pos (Name_Buffer (Even_Name_Len - 04))) * 2 +
+ Character'Pos (Name_Buffer (09))) * 2 +
+ Character'Pos (Name_Buffer (Even_Name_Len - 02))) * 2 +
+ Character'Pos (Name_Buffer (11))) * 2 +
+ Character'Pos (Name_Buffer (Even_Name_Len))) mod Hash_Num;
+ end if;
+
+ return 0;
+
+end;