summaryrefslogtreecommitdiff
path: root/debian/patches/ada-revert-pr63225.diff
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/ada-revert-pr63225.diff')
-rw-r--r--debian/patches/ada-revert-pr63225.diff97
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)