diff options
Diffstat (limited to 'debian/patches/ada-revert-pr63225.diff')
-rw-r--r-- | debian/patches/ada-revert-pr63225.diff | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/debian/patches/ada-revert-pr63225.diff b/debian/patches/ada-revert-pr63225.diff new file mode 100644 index 0000000..5355777 --- /dev/null +++ b/debian/patches/ada-revert-pr63225.diff @@ -0,0 +1,97 @@ +# DP: Revert the changes made to allow bootstrapping with -fno-inline. +# DP: We allow inlining during bootstrap and this change breaks aliversion compatibility +# DP: with earlier uploads of libgnatvsn5. This patch shall be removed in the next +# DP: major version of GNAT. + +Index: b/src/gcc/ada/uintp.adb +=================================================================== +--- a/src/gcc/ada/uintp.adb ++++ b/src/gcc/ada/uintp.adb +@@ -171,6 +171,22 @@ package body Uintp is + -- If Discard_Quotient is True, Quotient is set to No_Uint + -- If Discard_Remainder is True, Remainder is set to No_Uint + ++ function Vector_To_Uint ++ (In_Vec : UI_Vector; ++ Negative : Boolean) return Uint; ++ -- Functions that calculate values in UI_Vectors, call this function to ++ -- create and return the Uint value. In_Vec contains the multiple precision ++ -- (Base) representation of a non-negative value. Leading zeroes are ++ -- permitted. Negative is set if the desired result is the negative of the ++ -- given value. The result will be either the appropriate directly ++ -- represented value, or a table entry in the proper canonical format is ++ -- created and returned. ++ -- ++ -- Note that Init_Operand puts a signed value in the result vector, but ++ -- Vector_To_Uint is always presented with a non-negative value. The ++ -- processing of signs is something that is done by the caller before ++ -- calling Vector_To_Uint. ++ + ------------ + -- Direct -- + ------------ +Index: b/src/gcc/ada/uintp.ads +=================================================================== +--- a/src/gcc/ada/uintp.ads ++++ b/src/gcc/ada/uintp.ads +@@ -90,18 +90,6 @@ package Uintp is + Uint_Minus_80 : constant Uint; + Uint_Minus_128 : constant Uint; + +- type UI_Vector is array (Pos range <>) of Int; +- -- Vector containing the integer values of a Uint value +- +- -- Note: An earlier version of this package used pointers of arrays of Ints +- -- (dynamically allocated) for the Uint type. The change leads to a few +- -- less natural idioms used throughout this code, but eliminates all uses +- -- of the heap except for the table package itself. For example, Uint +- -- parameters are often converted to UI_Vectors for internal manipulation. +- -- This is done by creating the local UI_Vector using the function N_Digits +- -- on the Uint to find the size needed for the vector, and then calling +- -- Init_Operand to copy the values out of the table into the vector. +- + ----------------- + -- Subprograms -- + ----------------- +@@ -264,22 +252,6 @@ package Uintp is + -- function is used for capacity checks, and it can be one bit off + -- without affecting its usage. + +- function Vector_To_Uint +- (In_Vec : UI_Vector; +- Negative : Boolean) return Uint; +- -- Functions that calculate values in UI_Vectors, call this function to +- -- create and return the Uint value. In_Vec contains the multiple precision +- -- (Base) representation of a non-negative value. Leading zeroes are +- -- permitted. Negative is set if the desired result is the negative of the +- -- given value. The result will be either the appropriate directly +- -- represented value, or a table entry in the proper canonical format is +- -- created and returned. +- -- +- -- Note that Init_Operand puts a signed value in the result vector, but +- -- Vector_To_Uint is always presented with a non-negative value. The +- -- processing of signs is something that is done by the caller before +- -- calling Vector_To_Uint. +- + --------------------- + -- Output Routines -- + --------------------- +@@ -527,6 +499,18 @@ private + -- UI_Vector is defined for this purpose and some internal subprograms + -- used for converting from one to the other are defined. + ++ type UI_Vector is array (Pos range <>) of Int; ++ -- Vector containing the integer values of a Uint value ++ ++ -- Note: An earlier version of this package used pointers of arrays of Ints ++ -- (dynamically allocated) for the Uint type. The change leads to a few ++ -- less natural idioms used throughout this code, but eliminates all uses ++ -- of the heap except for the table package itself. For example, Uint ++ -- parameters are often converted to UI_Vectors for internal manipulation. ++ -- This is done by creating the local UI_Vector using the function N_Digits ++ -- on the Uint to find the size needed for the vector, and then calling ++ -- Init_Operand to copy the values out of the table into the vector. ++ + type Uint_Entry is record + Length : Pos; + -- Length of entry in Udigits table in digits (i.e. in words) |