diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2023-05-25 16:40:35 +0200 |
---|---|---|
committer | Marc Poulhiès <poulhies@adacore.com> | 2023-06-20 09:30:48 +0200 |
commit | 298a486c58180adddd99c81217b394f7e4d4bd35 (patch) | |
tree | 2731434d273547bb7062f9702109d585594bd181 | |
parent | adc853f0661dcb4d1204d1a89ed49446ec01a980 (diff) | |
download | gcc-298a486c58180adddd99c81217b394f7e4d4bd35.zip gcc-298a486c58180adddd99c81217b394f7e4d4bd35.tar.gz gcc-298a486c58180adddd99c81217b394f7e4d4bd35.tar.bz2 |
ada: Introduce -gnateH switch to force reverse Bit_Order threshold to 64
This can be helpful for legacy code that still makes use of an original
reverse Bit_Order clause, i.e. without a Scalar_Storage_Order clause.
gcc/ada/
* doc/gnat_ugn/building_executable_programs_with_gnat.rst (Compiler
Switches): Document -gnateH.
* opt.ads (Reverse_Bit_Order_Threshold): New variable.
* sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order): Use its value
if it is nonnegative instead of System_Max_Integer_Size.
* switch-c.adb (Scan_Front_End_Switches): Deal with -gnateH.
* usage.adb (Usage): Print -gnateH.
* gnat_ugn.texi: Regenerate.
-rw-r--r-- | gcc/ada/doc/gnat_ugn/building_executable_programs_with_gnat.rst | 8 | ||||
-rw-r--r-- | gcc/ada/gnat_ugn.texi | 14 | ||||
-rw-r--r-- | gcc/ada/opt.ads | 5 | ||||
-rw-r--r-- | gcc/ada/sem_ch13.adb | 4 | ||||
-rw-r--r-- | gcc/ada/switch-c.adb | 6 | ||||
-rw-r--r-- | gcc/ada/usage.adb | 5 |
6 files changed, 40 insertions, 2 deletions
diff --git a/gcc/ada/doc/gnat_ugn/building_executable_programs_with_gnat.rst b/gcc/ada/doc/gnat_ugn/building_executable_programs_with_gnat.rst index 20e003d..8e47967 100644 --- a/gcc/ada/doc/gnat_ugn/building_executable_programs_with_gnat.rst +++ b/gcc/ada/doc/gnat_ugn/building_executable_programs_with_gnat.rst @@ -1612,6 +1612,14 @@ Alphabetical List of All Switches Save result of preprocessing in a text file. +.. index:: -gnateH (gcc) + +:switch:`-gnateH` + Set the threshold from which the RM 13.5.1(13.3/2) clause applies to 64. + This is useful only on 64-bit plaforms where this threshold is 128, but + used to be 64 in earlier versions of the compiler. + + .. index:: -gnatei (gcc) :switch:`-gnatei{nnn}` diff --git a/gcc/ada/gnat_ugn.texi b/gcc/ada/gnat_ugn.texi index 88123df..021c267 100644 --- a/gcc/ada/gnat_ugn.texi +++ b/gcc/ada/gnat_ugn.texi @@ -19,7 +19,7 @@ @copying @quotation -GNAT User's Guide for Native Platforms , Jun 01, 2023 +GNAT User's Guide for Native Platforms , Jun 16, 2023 AdaCore @@ -9075,6 +9075,18 @@ information. Save result of preprocessing in a text file. @end table +@geindex -gnateH (gcc) + + +@table @asis + +@item @code{-gnateH} + +Set the threshold from which the RM 13.5.1(13.3/2) clause applies to 64. +This is useful only on 64-bit plaforms where this threshold is 128, but +used to be 64 in earlier versions of the compiler. +@end table + @geindex -gnatei (gcc) diff --git a/gcc/ada/opt.ads b/gcc/ada/opt.ads index bcafba9..87399c8 100644 --- a/gcc/ada/opt.ads +++ b/gcc/ada/opt.ads @@ -1342,6 +1342,11 @@ package Opt is -- GNATPREP -- Set to True if -C switch used. + Reverse_Bit_Order_Threshold : Int := -1; + -- GNAT + -- Set to the threshold from which the RM 13.5.1(13.3/2) clause applies, + -- or -1 if the size of the largest machine scalar is to be used. + RTS_Lib_Path_Name : String_Ptr := null; RTS_Src_Path_Name : String_Ptr := null; -- GNAT diff --git a/gcc/ada/sem_ch13.adb b/gcc/ada/sem_ch13.adb index 6562732..c3ea8d63 100644 --- a/gcc/ada/sem_ch13.adb +++ b/gcc/ada/sem_ch13.adb @@ -426,7 +426,9 @@ package body Sem_Ch13 is procedure Adjust_Record_For_Reverse_Bit_Order (R : Entity_Id) is Max_Machine_Scalar_Size : constant Uint := - UI_From_Int (System_Max_Integer_Size); + UI_From_Int (if Reverse_Bit_Order_Threshold >= 0 + then Reverse_Bit_Order_Threshold + else System_Max_Integer_Size); -- We use this as the maximum machine scalar size SSU : constant Uint := UI_From_Int (System_Storage_Unit); diff --git a/gcc/ada/switch-c.adb b/gcc/ada/switch-c.adb index f6207e4..bbbb536 100644 --- a/gcc/ada/switch-c.adb +++ b/gcc/ada/switch-c.adb @@ -635,6 +635,12 @@ package body Switch.C is Generate_Processed_File := True; Ptr := Ptr + 1; + -- -gnateH (set reverse Bit_Order threshold to 64) + + when 'H' => + Reverse_Bit_Order_Threshold := 64; + Ptr := Ptr + 1; + -- -gnatei (max number of instantiations) when 'i' => diff --git a/gcc/ada/usage.adb b/gcc/ada/usage.adb index 58cfa78..681ece5 100644 --- a/gcc/ada/usage.adb +++ b/gcc/ada/usage.adb @@ -199,6 +199,11 @@ begin Write_Switch_Char ("eG"); Write_Line ("Generate preprocessed source"); + -- Line for -gnateH switch + + Write_Switch_Char ("eH"); + Write_Line ("Set reverse Bit_Order threshold to 64"); + -- Line for -gnatei switch Write_Switch_Char ("einn"); |