diff options
Diffstat (limited to 'gcc/testsuite/gnat.dg/overflow_sum2.adb')
-rw-r--r-- | gcc/testsuite/gnat.dg/overflow_sum2.adb | 32 |
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; |