aboutsummaryrefslogtreecommitdiff
path: root/util/crossgcc/patches/gcc-8.3.0_gnat-bad_constant.patch
diff options
context:
space:
mode:
Diffstat (limited to 'util/crossgcc/patches/gcc-8.3.0_gnat-bad_constant.patch')
-rw-r--r--util/crossgcc/patches/gcc-8.3.0_gnat-bad_constant.patch150
1 files changed, 0 insertions, 150 deletions
diff --git a/util/crossgcc/patches/gcc-8.3.0_gnat-bad_constant.patch b/util/crossgcc/patches/gcc-8.3.0_gnat-bad_constant.patch
deleted file mode 100644
index e98f933a13..0000000000
--- a/util/crossgcc/patches/gcc-8.3.0_gnat-bad_constant.patch
+++ /dev/null
@@ -1,150 +0,0 @@
-commit b6f742f96c62bab0582021455328ae3be58e16d3
-Author: pmderodat <pmderodat@138bc75d-0d04-0410-961f-82ee72b054a4>
-Date: Fri May 25 09:05:10 2018 +0000
-
- [Ada] Remove "constant" attribute on Osint.Unknown_Attributes
-
- 2018-05-25 Arnaud Charlet <charlet@adacore.com>
-
- gcc/ada/
-
- * exp_aggr.adb (Convert_To_Positional): Bump default for
- Max_Others_Replicate to 32. Update comments.
- * osint.ads (Unknown_Attributes): No longer pretend this is a constant.
- (No_File_Info_Cache): Initialize separately.
- * osint.adb (No_File_Info_Cache): Update initializer.
-
- git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260739 138bc75d-0d04-0410-961f-82ee72b054a4
-
-diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
-index e4127e472aa..d56240b7b82 100644
---- a/gcc/ada/ChangeLog
-+++ b/gcc/ada/ChangeLog
-@@ -188,6 +188,14 @@
- an allocator if the type is an unconstrained record type with default
- discriminant.
-
-+2018-05-25 Arnaud Charlet <charlet@adacore.com>
-+
-+ * exp_aggr.adb (Convert_To_Positional): Bump default for
-+ Max_Others_Replicate to 32. Update comments.
-+ * osint.ads (Unknown_Attributes): No longer pretend this is a constant.
-+ (No_File_Info_Cache): Initialize separately.
-+ * osint.adb (No_File_Info_Cache): Update initializer.
-+
- 2018-05-04 John Marino <gnugcc@marino.st>
-
- PR ada/85635
-diff --git a/gcc/ada/exp_aggr.adb b/gcc/ada/exp_aggr.adb
-index f723c1b4d99..ff5210eb4e4 100644
---- a/gcc/ada/exp_aggr.adb
-+++ b/gcc/ada/exp_aggr.adb
-@@ -284,14 +284,14 @@ package body Exp_Aggr is
-
- procedure Convert_To_Positional
- (N : Node_Id;
-- Max_Others_Replicate : Nat := 5;
-+ Max_Others_Replicate : Nat := 32;
- Handle_Bit_Packed : Boolean := False);
- -- If possible, convert named notation to positional notation. This
- -- conversion is possible only in some static cases. If the conversion is
- -- possible, then N is rewritten with the analyzed converted aggregate.
- -- The parameter Max_Others_Replicate controls the maximum number of
- -- values corresponding to an others choice that will be converted to
-- -- positional notation (the default of 5 is the normal limit, and reflects
-+ -- positional notation (the default of 32 is the normal limit, and reflects
- -- the fact that normally the loop is better than a lot of separate
- -- assignments). Note that this limit gets overridden in any case if
- -- either of the restrictions No_Elaboration_Code or No_Implicit_Loops is
-@@ -301,11 +301,6 @@ package body Exp_Aggr is
- -- Packed_Array_Aggregate_Handled, we set this parameter to True, since
- -- these are cases we handle in there.
-
-- -- It would seem useful to have a higher default for Max_Others_Replicate,
-- -- but aggregates in the compiler make this impossible: the compiler
-- -- bootstrap fails if Max_Others_Replicate is greater than 25. This
-- -- is unexpected ???
--
- procedure Expand_Array_Aggregate (N : Node_Id);
- -- This is the top-level routine to perform array aggregate expansion.
- -- N is the N_Aggregate node to be expanded.
-@@ -4292,7 +4287,7 @@ package body Exp_Aggr is
-
- procedure Convert_To_Positional
- (N : Node_Id;
-- Max_Others_Replicate : Nat := 5;
-+ Max_Others_Replicate : Nat := 32;
- Handle_Bit_Packed : Boolean := False)
- is
- Typ : constant Entity_Id := Etype (N);
-diff --git a/gcc/ada/osint.adb b/gcc/ada/osint.adb
-index 0c23761b6dc..896fbc7ee37 100644
---- a/gcc/ada/osint.adb
-+++ b/gcc/ada/osint.adb
-@@ -250,8 +250,7 @@ package body Osint is
- Attr : aliased File_Attributes;
- end record;
-
-- No_File_Info_Cache : constant File_Info_Cache :=
-- (No_File, Unknown_Attributes);
-+ No_File_Info_Cache : constant File_Info_Cache := (No_File, (others => 0));
-
- package File_Name_Hash_Table is new GNAT.HTable.Simple_HTable (
- Header_Num => File_Hash_Num,
-diff --git a/gcc/ada/osint.ads b/gcc/ada/osint.ads
-index 65a87fe4ce3..6c75b521456 100644
---- a/gcc/ada/osint.ads
-+++ b/gcc/ada/osint.ads
-@@ -255,10 +255,26 @@ package Osint is
- -- from the disk and then cached in the File_Attributes parameter (possibly
- -- along with other values).
-
-- type File_Attributes is private;
-- Unknown_Attributes : constant File_Attributes;
-+ File_Attributes_Size : constant Natural := 32;
-+ -- This should be big enough to fit a "struct file_attributes" on any
-+ -- system. It doesn't cause any malfunction if it is too big (which avoids
-+ -- the need for either mapping the struct exactly or importing the sizeof
-+ -- from C, which would result in dynamic code). However, it does waste
-+ -- space (e.g. when a component of this type appears in a record, if it is
-+ -- unnecessarily large). Note: for runtime units, use System.OS_Constants.
-+ -- SIZEOF_struct_file_attributes instead, which has the exact value.
-+
-+ type File_Attributes is
-+ array (1 .. File_Attributes_Size)
-+ of System.Storage_Elements.Storage_Element;
-+ for File_Attributes'Alignment use Standard'Maximum_Alignment;
-+
-+ Unknown_Attributes : File_Attributes;
- -- A cache for various attributes for a file (length, accessibility,...)
-- -- This must be initialized to Unknown_Attributes prior to the first call.
-+ -- Will be initialized properly at elaboration (for efficiency later on,
-+ -- avoid function calls every time we want to reset the attributes) prior
-+ -- to the first usage. We cannot make it constant since the compiler may
-+ -- put it in a read-only section.
-
- function Is_Directory
- (Name : C_File_Name;
-@@ -754,22 +770,4 @@ private
- -- detected, the file being written is deleted, and a fatal error is
- -- signalled.
-
-- File_Attributes_Size : constant Natural := 32;
-- -- This should be big enough to fit a "struct file_attributes" on any
-- -- system. It doesn't cause any malfunction if it is too big (which avoids
-- -- the need for either mapping the struct exactly or importing the sizeof
-- -- from C, which would result in dynamic code). However, it does waste
-- -- space (e.g. when a component of this type appears in a record, if it is
-- -- unnecessarily large). Note: for runtime units, use System.OS_Constants.
-- -- SIZEOF_struct_file_attributes instead, which has the exact value.
--
-- type File_Attributes is
-- array (1 .. File_Attributes_Size)
-- of System.Storage_Elements.Storage_Element;
-- for File_Attributes'Alignment use Standard'Maximum_Alignment;
--
-- Unknown_Attributes : constant File_Attributes := (others => 0);
-- -- Will be initialized properly at elaboration (for efficiency later on,
-- -- avoid function calls every time we want to reset the attributes).
--
- end Osint;