aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/libgnat
AgeCommit message (Collapse)AuthorFilesLines
2020-11-30[Ada] s-trasym.ads: update the list of supported platformsPierre-Marie de Rodat1-1/+2
gcc/ada/ * libgnat/s-trasym.ads: Update the list of supported platforms.
2020-11-30[Ada] Enable checks on runtime by defaultArnaud Charlet3-6/+16
gcc/ada/ * gcc-interface/Makefile.in (GNATLIBFLAGS): Enable checks by default. * libgnat/s-bitfie.ads: Suppress alignment checks. * libgnat/s-bituti.adb: Minor reformatting. * libgnat/s-secsta.adb (SS_Allocate): Support Size = 0.
2020-11-30[Ada] Reimplement Ada.Numerics.Big_Numbers.Big_Reals.Fixed_ConversionsEric Botcazou1-8/+61
gcc/ada/ * libgnat/a-nbnbre.adb (Float_Conversions): Instantiate Conv package only once in the body. (Fixed_Conversions.Float_Aux): New instance. (Fixed_Conversions.Conv_I): Likewise. (Fixed_Conversions.Conv_U): Likewise. (Fixed_Conversions.LLLI): New subtype. (Fixed_Conversions.LLLU): Likewise. (Fixed_Conversions.Too_Large): New constant. (Fixed_Conversions.To_Big_Real): Reimplement. (Fixed_Conversions.From_Big_Real): Likewise.
2020-11-30[Ada] Expand integer-only implementation of ordinary fixed-point typesEric Botcazou15-474/+871
gcc/ada/ * doc/gnat_rm/implementation_defined_attributes.rst (Pool_Address): Fix pasto. (Small_Denominator): New entry. (Small_Numerator): Likewise. * doc/gnat_rm/implementation_defined_characteristics.rst (3.5.9): Relax conditions on 128-bit smalls and integer-only implementation. * gnat_rm.texi: Regenerate. * exp_attr.adb (Expand_N_Attribute_Reference) <Attribute_Fore>: Relax conditions on integer implementation for ordinary fixed-point types and pass a third parameter to the routine. <Attribute_Small_Denominator>: Raise Program_Error. <Attribute_Small_Numerator>: Likewise. * exp_fixd.adb (Expand_Convert_Fixed_To_Fixed): Use a scaled divide if the numerator and denominator of the small ratio are sufficiently small integers. (Expand_Convert_Fixed_To_Integer): Use a scaled divide if numerator and denominator of the small value are sufficiently small integers. (Expand_Convert_Integer_To_Fixed): Likewise. * exp_imgv.adb (Expand_Image_Attribute): Relax the conditions on the integer implementation for ordinary fixed-point types. (Expand_Value_Attribute): Likewise. * freeze.adb (Freeze_Fixed_Point_Type): Relax conditions on 128-bit smalls. * sem_attr.adb (Analyze_Attribute) <Attribute_Small_Denominator>: Check no arguments, fixed-point and set type to Universal_Integer. <Attribute_Small_Numerator>: Likewise. (Eval_Attribute) <Attribute_Small_Denominator>: Fold statically. <Attribute_Small_Numerator>: Likewise. * snames.ads-tmpl (Name_Small_Denominator): New attribute name. (Name_Small_Numerator): Likewise. (Attribute_Id): Add Attribute_Small_{Denominator,Numerator}. * libgnat/a-tifiio.adb (Exact): Delete. (Need_64): Likewise. (OK_Get_32): New boolean constant. (OK_Put_32): Likewise. (OK_Get_64): Likewise. (OK_Put_64): Likewise. (E): Adjust. (Get procedures): Likewise. (Put procedures): Likewise. * libgnat/a-tifiio__128.adb (Exact): Delete. (Need_64): Likewise. (Need_128): Likewise. (OK_Get_32): New boolean constant. (OK_Put_32): Likewise. (OK_Get_64): Likewise. (OK_Put_64): Likewise. (OK_Get_128): Likewise. (OK_Put_128): Likewise. (E): Adjust. (Get procedures): Likewise. (Put procedures): Likewise. * libgnat/a-wtfiio.adb (Exact): Delete. (Need_64): Likewise. (OK_Get_32): New boolean constant. (OK_Put_32): Likewise. (OK_Get_64): Likewise. (OK_Put_64): Likewise. (E): Adjust. (Get procedures): Likewise. (Put procedures): Likewise. * libgnat/a-wtfiio__128.adb (Exact): Delete. (Need_64): Likewise. (Need_128): Likewise. (OK_Get_32): New boolean constant. (OK_Put_32): Likewise. (OK_Get_64): Likewise. (OK_Put_64): Likewise. (OK_Get_128): Likewise. (OK_Put_128): Likewise. (E): Adjust. (Get procedures): Likewise. (Put procedures): Likewise. * libgnat/a-ztfiio.adb (Exact): Delete. (Need_64): Likewise. (OK_Get_32): New boolean constant. (OK_Put_32): Likewise. (OK_Get_64): Likewise. (OK_Put_64): Likewise. (E): Adjust. (Get procedures): Likewise. (Put procedures): Likewise. * libgnat/a-ztfiio__128.adb (Exact): Delete. (Need_64): Likewise. (Need_128): Likewise. (OK_Get_32): New boolean constant. (OK_Put_32): Likewise. (OK_Get_64): Likewise. (OK_Put_64): Likewise. (OK_Get_128): Likewise. (OK_Put_128): Likewise. (E): Adjust. (Get procedures): Likewise. (Put procedures): Likewise. * libgnat/s-fore_f.ads (Fore_Fixed): Adjust signature. * libgnat/s-fore_f.adb (Fore_Fixed): Reimplement. * libgnat/s-fofi32.ads (Fore_Fixed32): Adjust signature. * libgnat/s-fofi64.ads (Fore_Fixed64): Likewise. * libgnat/s-fofi128.ads (Fore_Fixed128): Likewise. * libgnat/s-imagef.ads: Adjust description. * libgnat/s-imagef.adb (Maxdigs): Move around. (Set_Image_Integer): Remove assertion. * libgnat/s-valuef.ads: Adjust description. * libgnat/s-valuef.adb (Integer_To_Fixed): Minor tweak.
2020-11-30[Ada] Add stream-oriented attributes support for 128-bit integer typesEric Botcazou2-110/+207
gcc/ada/ * doc/gnat_ugn/building_executable_programs_with_gnat.rst (-xdr): Document that XDR is not supported for 128-bit integer types. * gnat_ugn.texi: Regenerate. * exp_strm.adb (Build_Elementary_Input_Call): Deal with types larger than Long_Long_Integer. (Build_Elementary_Write_Call): Likewise. * rtsfind.ads (RE_Id): Add RE_I_LLL{I,U] and RE_W_LLL{I,U}. (RE_Unit_Table): Add entries for them. * libgnat/s-stratt.ads (I_LLLI): New inline function. (I_LLLU): Likewise. (W_LLLI): New inline procedure. (W_LLLU): Likewise. * libgnat/s-stratt.adb (S_LLLI): New subtype of SEA. (S_LLLU): Likewise. (From_LLLI): New instance of Unchecked_Conversion. (From_LLLU): Likewise. (To_LLLI): Likewise. (To_LLLU): Likewise. (I_LLLI): Implement. (I_LLLU): Likewise. (W_LLLI): Likewise. (W_LLLU): Likewise.
2020-11-30[Ada] Fix serial port control setting on GNU/LinuxPascal Obry1-30/+1
gcc/ada/ * libgnat/g-sercom__linux.adb (Set): Fix control flags of the serial port setting.
2020-11-30[Ada] Minor style fixesPascal Obry1-3/+2
gcc/ada/ * libgnat/g-sercom__linux.adb: Minor style fixes.
2020-11-30[Ada] Small cleanup in System.Value_FEric Botcazou1-30/+16
gcc/ada/ * libgnat/s-valuef.adb (Integer_To_Fixed): Do not modify numerator or denominator in order to reduce the exponent.
2020-11-27[Ada] Small tweaks to couple of Value routinesEric Botcazou2-9/+14
gcc/ada/ * libgnat/s-valuef.adb (Integer_To_Fixed): Take into account the extra digit when scaling up the input. * libgnat/s-valuer.adb (Scan_Decimal_Digits): Restrict previous change to fixed-point types. (Scan_Integral_Digits): Likewise.
2020-11-27[Ada] Small improvement to System.Value_R.Scan_Raw_RealEric Botcazou1-6/+40
gcc/ada/ * libgnat/s-valuer.adb (Scan_Decimal_Digits): Round Extra. (Scan_Integral_Digits): Likewise.
2020-11-27[Ada] To_GM_Time returning invalid value for Invalid_TimeArnaud Charlet1-1/+24
gcc/ada/ * libgnat/s-os_lib.adb (To_GM_Time): Return valid and consistent values for Invalid_Time.
2020-11-27[Ada] Reimplement Ada.Numerics.Big_Numbers.Big_Reals.Float_ConversionsEric Botcazou1-9/+168
gcc/ada/ * libgnat/a-nbnbre.adb: Remove clauses for System.Img_Real and add them for System.Unsigned_Types. (Float_Conversions.To_Big_Real): Reimplement. (Float_Conversions.From_Big_Real): Likewise.
2020-11-27[Ada] Abort defer mismatch with SJLJ exceptionsArnaud Charlet1-30/+0
gcc/ada/ * libgnarl/s-tasren.adb (Local_Complete_Rendezvous): Always call Defer_Abort. * libgnat/a-except.adb: Abort does not need to be deferred. * libgnarl/s-tpobop.adb (Exceptional_Complete_Entry_Body): Abort never needs to be undeferred here. * exp_ch11.adb (Expand_Exception_Handlers): Remove difference between ZCX and SJLJ. * exp_ch9.adb (Expand_N_Asynchronous_Select): Remove different handling for sjlj. * exp_sel.ads, exp_sel.adb (Build_Abort_Block, Build_Abort_Block_Handler): Ditto.
2020-11-27[Ada] To_Big_Integer and 128bits integersArnaud Charlet3-4/+30
gcc/ada/ * libgnat/s-genbig.ads, libgnat/s-genbig.adb (To_Bignum): New variant taking an Unsigned_128. * libgnat/a-nbnbin.adb (To_Big_Integer): Add support for 128 bits signed and unsigned types.
2020-11-27[Ada] Small tweaks to new implementation of Set_Image_FixedEric Botcazou1-14/+31
gcc/ada/ * libgnat/s-imagef.adb (Set_Image_Fixed): Pass the full value of the quotient to Set_Image_Integer during the first round and adjust the handling of the minus sign.
2020-11-27[Ada] Error in Big_Real comparisonArnaud Charlet1-4/+4
gcc/ada/ * libgnat/a-nbnbre.adb ("=", "<"): Fix.
2020-11-27[Ada] Fix oversignt in genericized package System.Value_REric Botcazou1-3/+3
gcc/ada/ * libgnat/s-valuer.adb (Scan_Raw_Real): Move pragma Annotate around and adjust its parameters.
2020-11-26[Ada] Ada.Numerics.Big_Numbers.Big_Reals.To_Big_Real looses precisionArnaud Charlet1-1/+9
gcc/ada/ * libgnat/a-nbnbre.adb (To_Big_Real): Do not loose precision.
2020-11-26[Ada] Add support for 128-bit fixed-point types on 64-bit platformsEric Botcazou131-1996/+6464
gcc/ada/ * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Likewise. (GNATRTL_128BIT_OBJS): Likewise. (GNATRTL_128BIT_PAIRS): Add new 128-bit variants. * cstand.adb (Create_Standard): Create Standard_Integer_128. * doc/gnat_rm/implementation_defined_characteristics.rst: Document new limits on 64-bit platforms in entry for 3.5.9(10). * gnat_rm.texi: Regenerate. * exp_attr.adb: Add with and use clauses for Urealp. (Expand_N_Attribute_Reference) <Attribute_Fore>: Call new routines for decimal fixed-point types and common ordinary fixed-point types. * exp_ch4.adb (Real_Range_Check): Extend conversion trick to all ordinary fixed-point types and use Small_Integer_Type_For. * exp_fixd.adb: Add with and use clauses for Ttypes. (Build_Divide): Add special case for 32-bit values and deal with 128-bit types. (Build_Double_Divide): Deal with 128-bit types. (Build_Double_Divide_Code): Likewise. Do not apply conversions before calling Build_Multiply. (Build_Multiply): Likewise. Add special case for 32-bit values. (Build_Scaled_Divide): Deal with 128-bit types. (Build_Scaled_Divide_Code): Likewise. Fix size computation. Do not apply conversions before calling Build_Multiply. (Do_Multiply_Fixed_Fixed): Minor tweak. (Integer_Literal): Deal with 128-bit values. * exp_imgv.adb (Has_Decimal_Small): Delete. (Expand_Image_Attribute): Call new routines for common ordinary fixed-point types. (Expand_Value_Attribute): Likewise. (Expand_Width_Attribute): Add new expansion for fixed-point types. * freeze.adb (Freeze_Entity): Move error checks for ordinary fixed-point types to... (Freeze_Fixed_Point_Type): ...here. Deal with 128-bit types and adjust limitations for 32-bnt and 64-bit types. * rtsfind.ads (RTU_Id): Add entries for new System_Fore, System_Img, and System_Val units and remove them for obsolete units. (RE_Id): Add entries for Double_Divide128, Scaled_Divide128, the new Fore, Image, Value routines and remove them for obsolete units. (RE_Unit_Table): Likewise. * sem_ch3.adb (Decimal_Fixed_Point_Type_Declaration): Deal with 128-bit types. * stand.ads (Standard_Entity_Type): Add Standard_Integer_128. * uintp.ads (Uint_31): New deferred constant. (Uint_Minus_18): Likewise. (Uint_Minus_31): Likewise. (Uint_Minus_76): Likewise. (Uint_Minus_127): Likewise. * urealp.ads (Ureal_2_31): New function. (Ureal_2_63): Likewise. (Ureal_2_127): Likewise. (Ureal_2_M_127): Likewise. (Ureal_2_10_18): Likewise. (Ureal_M_2_10_18): Likewise. (Ureal_9_10_36): Likewise. (Ureal_M_9_10_36): Likewise. (Ureal_10_76): Likewise. (Ureal_M_10_76): Likewise. (Ureal_10_36): Delete. (Ureal_M_10_36): Likewise. * urealp.adb (UR_2_10_18): New variable. (UR_9_10_36): Likewise. (UR_10_76): Likewise. (UR_M_2_10_18): Likewise. (UR_M_9_10_36): Likewise. (UR_M_10_76): Likewise. (UR_2_31): Likewise. (UR_2_63): Likewise. (UR_2_127): Likewise. (UR_2_M_127): Likewise. (UR_10_36): Delete. (UR_M_10_36): Likewise. (Initialize): Initialize them. (UR_Write): Do not use awkward Ada literal style. (Ureal_2_10_18): New function. (Ureal_9_10_36): Likewise. (Ureal_10_76): Likewise. (Ureal_2_31): Likewise. (Ureal_2_63): Likewise. (Ureal_2_127): Likewise. (Ureal_2_M_127): Likewise. (Ureal_M_2_10_18): Likewise. (Ureal_M_9_10_36): Likewise. (Ureal_10_76): Likewise. (Ureal_M_10_76): Likewise. (Ureal_10_36): Delete. (Ureal_M_10_36): Likewise. * libgnat/a-decima__128.ads: New file. * libgnat/a-tideau.ads, libgnat/a-tideau.adb: Reimplement as generic unit. * libgnat/a-tideio.adb: Reimplement. * libgnat/a-tideio__128.adb: New file. * libgnat/a-tifiau.ads, libgnat/a-tifiau.adb: New generic unit. * libgnat/a-tifiio.adb: Move bulk of implementation to s-imagef and reimplement. * libgnat/a-tifiio__128.adb: New file. * libgnat/a-tiflau.adb (Get): Minor consistency fix. (Gets): Likewise. * libgnat/a-wtdeau.ads, libgnat/a-wtdeau.adb: Reimplement as generic unit. * libgnat/a-wtdeio.adb: Reimplement. * libgnat/a-wtdeio__128.adb: New file. * libgnat/a-wtfiau.ads, libgnat/a-wtfiau.adb: New generic unit. * libgnat/a-wtfiio.adb: Reimplement. * libgnat/a-wtfiio__128.adb: New file. * libgnat/a-ztdeau.ads, libgnat/a-ztdeau.adb: Reimplement as generic unit. * libgnat/a-ztdeio.adb: Reimplement. * libgnat/a-ztdeio__128.adb: New file. * libgnat/a-ztfiau.ads, libgnat/a-ztfiau.adb: New generic unit. * libgnat/a-ztfiio.adb: Reimplement. * libgnat/a-ztfiio__128.adb: New file. * libgnat/g-rannum.adb (Random_Decimal_Fixed): Use a subtype of the appropiate size for the instantiation. (Random_Ordinary_Fixed): Likewise. * libgnat/s-arit32.ads, libgnat/s-arit32.adb: New support unit. * libgnat/s-fode128.ads: New instantiation. * libgnat/s-fode32.ads: Likewise. * libgnat/s-fode64.ads: Likewise. * libgnat/s-fofi128.ads: Likewise. * libgnat/s-fofi32.ads: Likewise. * libgnat/s-fofi64.ads: Likewise. * libgnat/s-fore_d.ads, libgnat/s-fore_d.adb: New generic unit. * libgnat/s-fore_f.ads, libgnat/s-fore_f.adb: Likewise. * libgnat/s-fore.ads, libgnat/s-fore.adb: Rename into... * libgnat/s-forrea.ads, libgnat/s-forrea.adb: ...this. * libgnat/s-imaged.ads, libgnat/s-imaged.adb: New generic unit. * libgnat/s-imagef.ads, libgnat/s-imagef.adb: Likewise, taken from a-tifiio.adb. * libgnat/s-imde128.ads: New instantiation. * libgnat/s-imde32.ads: Likewise. * libgnat/s-imde64.ads: Likewise. * libgnat/s-imfi128.ads: Likewise. * libgnat/s-imfi32.ads: Likewise. * libgnat/s-imfi64.ads: Likewise. * libgnat/s-imgdec.ads, libgnat/s-imgdec.adb: Delete. * libgnat/s-imglld.ads, libgnat/s-imglld.adb: Likewise. * libgnat/s-imgrea.adb (Set_Image_Real): Replace Sign local variable with Minus local variable for the sake of consistency. * libgnat/s-imguti.ads, libgnat/s-imguti.adb: New support unit. * libgnat/s-vade128.ads: New instantiation. * libgnat/s-vade32.ads: Likewise. * libgnat/s-vade64.ads: Likewise. * libgnat/s-vafi128.ads: Likewise. * libgnat/s-vafi32.ads: Likewise. * libgnat/s-vafi64.ads: Likewise. * libgnat/s-valdec.ads, libgnat/s-valdec.adb: Delete. * libgnat/s-vallld.ads, libgnat/s-vallld.adb: Likewise. * libgnat/s-valued.ads, libgnat/s-valued.adb: New generic unit. * libgnat/s-valuef.ads, libgnat/s-valuef.adb: Likewise. * libgnat/s-valuei.adb: Minor rewording. * libgnat/s-valrea.adb: Move bulk of implementation to... * libgnat/s-valuer.ads, libgnat/s-valuer.adb: ...here. New generic unit. * libgnat/system-aix.ads (Max_Mantissa): Adjust. * libgnat/system-darwin-arm.ads (Max_Mantissa): Likewise. * libgnat/system-darwin-ppc.ads (Max_Mantissa): Likewise. * libgnat/system-darwin-x86.ads (Max_Mantissa): Likewise. * libgnat/system-djgpp.ads (Max_Mantissa): Likewise. * libgnat/system-dragonfly-x86_64.ads (Max_Mantissa): Likewise. * libgnat/system-freebsd.ads (Max_Mantissa): Likewise. * libgnat/system-hpux-ia64.ads (Max_Mantissa): Likewise. * libgnat/system-hpux.ads (Max_Mantissa): Likewise. * libgnat/system-linux-alpha.ads (Max_Mantissa): Likewise. * libgnat/system-linux-arm.ads (Max_Mantissa): Likewise. * libgnat/system-linux-hppa.ads (Max_Mantissa): Likewise. * libgnat/system-linux-ia64.ads (Max_Mantissa): Likewise. * libgnat/system-linux-m68k.ads (Max_Mantissa): Likewise. * libgnat/system-linux-mips.ads (Max_Mantissa): Likewise. * libgnat/system-linux-ppc.ads (Max_Mantissa): Likewise. * libgnat/system-linux-riscv.ads (Max_Mantissa): Likewise. * libgnat/system-linux-s390.ads (Max_Mantissa): Likewise. * libgnat/system-linux-sh4.ads (Max_Mantissa): Likewise. * libgnat/system-linux-sparc.ads (Max_Mantissa): Likewise. * libgnat/system-linux-x86.ads (Max_Mantissa): Likewise. * libgnat/system-lynxos178-ppc.ads (Max_Mantissa): Likewise. * libgnat/system-lynxos178-x86.ads (Max_Mantissa): Likewise. * libgnat/system-mingw.ads (Max_Mantissa): Likewise. * libgnat/system-qnx-aarch64.ads (Max_Mantissa): Likewise. * libgnat/system-rtems.ads (Max_Mantissa): Likewise. * libgnat/system-solaris-sparc.ads (Max_Mantissa): Likewise. * libgnat/system-solaris-x86.ads (Max_Mantissa): Likewise. * libgnat/system-vxworks-arm-rtp-smp.ads (Max_Mantissa): Likewise. * libgnat/system-vxworks-arm-rtp.ads (Max_Mantissa): Likewise. * libgnat/system-vxworks-arm.ads (Max_Mantissa): Likewise. * libgnat/system-vxworks-e500-kernel.ads (Max_Mantissa): Likewise. * libgnat/system-vxworks-e500-rtp-smp.ads (Max_Mantissa): Likewise. * libgnat/system-vxworks-e500-rtp.ads (Max_Mantissa): Likewise. * libgnat/system-vxworks-e500-vthread.ads (Max_Mantissa): Likewise. * libgnat/system-vxworks-ppc-kernel.ads (Max_Mantissa): Likewise. * libgnat/system-vxworks-ppc-ravenscar.ads (Max_Mantissa): Likewise. * libgnat/system-vxworks-ppc-rtp-smp.ads (Max_Mantissa): Likewise. * libgnat/system-vxworks-ppc-rtp.ads (Max_Mantissa): Likewise. * libgnat/system-vxworks-ppc-vthread.ads (Max_Mantissa): Likewise. * libgnat/system-vxworks-ppc.ads (Max_Mantissa): Likewise. * libgnat/system-vxworks-x86-kernel.ads (Max_Mantissa): Likewise. * libgnat/system-vxworks-x86-rtp-smp.ads (Max_Mantissa): Likewise. * libgnat/system-vxworks-x86-rtp.ads (Max_Mantissa): Likewise. * libgnat/system-vxworks-x86-vthread.ads (Max_Mantissa): Likewise. * libgnat/system-vxworks-x86.ads (Max_Mantissa): Likewise. * libgnat/system-vxworks7-aarch64-rtp-smp.ads (Max_Mantissa): Likewise. * libgnat/system-vxworks7-aarch64.ads (Max_Mantissa): Likewise. * libgnat/system-vxworks7-arm-rtp-smp.ads (Max_Mantissa): Likewise. * libgnat/system-vxworks7-arm.ads (Max_Mantissa): Likewise. * libgnat/system-vxworks7-e500-kernel.ads (Max_Mantissa): Likewise. * libgnat/system-vxworks7-e500-rtp-smp.ads (Max_Mantissa): Likewise. * libgnat/system-vxworks7-e500-rtp.ads (Max_Mantissa): Likewise. * libgnat/system-vxworks7-ppc-kernel.ads (Max_Mantissa): Likewise. * libgnat/system-vxworks7-ppc-rtp-smp.ads (Max_Mantissa): Likewise. * libgnat/system-vxworks7-ppc-rtp.ads (Max_Mantissa): Likewise. * libgnat/system-vxworks7-ppc64-kernel.ads (Max_Mantissa): Likewise. * libgnat/system-vxworks7-ppc64-rtp-smp.ads (Max_Mantissa): Likewise. * libgnat/system-vxworks7-x86-kernel.ads (Max_Mantissa): Likewise. * libgnat/system-vxworks7-x86-rtp-smp.ads (Max_Mantissa): Likewise. * libgnat/system-vxworks7-x86-rtp.ads (Max_Mantissa): Likewise. * libgnat/system-vxworks7-x86_64-kernel.ads (Max_Mantissa): Likewise. * libgnat/system-vxworks7-x86_64-rtp-smp.ads (Max_Mantissa): Likewise. gcc/testsuite/ * gnat.dg/multfixed.adb: Robustify.
2020-11-26[Ada] Add the remark concerning the use of Image_Ordinary_Fixed_PointLiaiss Merzougue1-0/+3
gcc/ada/ * libgnat/s-imgrea.ads (Image_Ordinary_Fixed_Point): Add a remark concerning the irrelevant use of Inf and -0.0
2020-11-26[Ada] Sync wide Ada.String hashing unitsPiotr Trojanek2-9/+11
gcc/ada/ * libgnat/a-stzhas.adb (Wide_Wide_Hash): Instantiate inside a wrapper function. * libgnat/a-stzhas.ads (Wide_Wide_Hash): Likewise; remove wrong comment, because this is indeed a RM unit, as described in Ada RM A.4.8 (1/3).
2020-11-26[Ada] Remove extra whitespace in bounded container Read proceduresPiotr Trojanek3-3/+3
gcc/ada/ * libgnat/a-cbhase.adb (Read): Remove extra whitespace. * libgnat/a-cbmutr.ads (Read): Likewise. * libgnat/a-cborse.adb (Read): Likewise.
2020-11-26[Ada] Add contracts to Ada.Strings.MapsJoffrey Huguet1-21/+158
gcc/ada/ * libgnat/a-strmap.ads: Add preconditions and postconditions to all subprograms.
2020-11-25[Ada] Adjust support for 128-bit integer types in System.Random_NumbersEric Botcazou1-0/+35
gcc/ada/ * libgnat/s-rannum.adb (Random_Discrete): Specifically deal with the case where the size of the base type is larger than 64 bits.
2020-11-25[Ada] Add support for 128-bit integer types to GNAT.Random_NumbersEric Botcazou2-2/+16
gcc/ada/ * libgnat/g-rannum.ads (Random): New functions returning 128-bit. * libgnat/g-rannum.adb (Random): Implement them and alphabetize. (To_Signed): New unchecked conversion function for 128-bit.
2020-11-25[Ada] Unrecursify Set_Digit/Set_Image_Unsigned procedureLiaiss Merzougue2-36/+50
gcc/ada/ * libgnat/s-imagei.adb (Set_Digits): Rewrite the procedure to remove recursion. (Image_Integer, Set_Image_Integer): Update assertions and remove redundant ones. * libgnat/s-imageu.adb (Set_Image_Unsigned): Rewrite the procedure to remove recursion.
2020-11-24[Ada] Implement No_Unrecognized_{Aspects,Pragmas} restrictionsGhjuvan Lacambre1-0/+2
gcc/ada/ * libgnat/s-rident.ads (System.Rident): Register new restriction IDs. * par-ch13.adb (Get_Aspect_Specifications): Add restriction check. * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): Register No_Unrecognized_Aspects restriction. * sem_prag.adb (Analyze_Pragma): Add restriction check. * snames.ads-tmpl: Create restriction names.
2020-11-24[Ada] Small cleanup in the Ada.Text_IO hierarchyEric Botcazou16-114/+66
gcc/ada/ * libgnat/a-wtdeio.adb (TFT): Delete and adjust throughout. * libgnat/a-wtenau.adb (TFT): Likewise. * libgnat/a-wtfiio.adb (TFT): Likewise. * libgnat/a-wtflio.adb (TFT): Likewise. * libgnat/a-wtinio.adb (TFT): Likewise. * libgnat/a-wtinio__128.adb (TFT): Likewise. * libgnat/a-wtmoio.adb (TFT): Likewise. * libgnat/a-wtmoio__128.adb (TFT): Likewise. * libgnat/a-ztdeio.adb (TFT): Likewise. * libgnat/a-ztenau.adb (TFT): Likewise. * libgnat/a-ztfiio.adb (TFT): Likewise. * libgnat/a-ztflio.adb (TFT): Likewise. * libgnat/a-ztinio.adb (TFT): Likewise. * libgnat/a-ztinio__128.adb (TFT): Likewise. * libgnat/a-ztmoio.adb (TFT): Likewise. * libgnat/a-ztmoio__128.adb (TFT): Likewise.
2020-11-24[Ada] AI12-0394 Named Numbers and User-Defined Numeric LiteralsArnaud Charlet4-4/+13
gcc/ada/ * sem_ch13.adb (Validate_Literal_Aspect): Add support for named numbers and in particular overload of the Real_Literal function. * sem_res.adb (Resolve): Add support for named numbers in Real_Literal and Integer_Literal resolution. * einfo.adb, einfo.ads (Related_Expression, Set_Related_Expression): Allow E_Function. * uintp.ads (UI_Image_Max): Bump size of buffer to avoid loosing precision. * sem_eval.adb: Fix typo in comment. * libgnat/a-nbnbin.adb, libgnat/a-nbnbin.ads (From_String): Return a Valid_Big_Integer. * libgnat/a-nbnbre.adb, libgnat/a-nbnbre.ads (From_String): New variant taking two strings. Return a Valid_Big_Real.
2020-11-24[Ada] Implement Big_Integer.From_String fullyArnaud Charlet1-1/+186
gcc/ada/ * libgnat/a-nbnbin.adb (From_String): Implement fully.
2020-11-24[Ada] Wrong handling of _ in Big_Reals.From_StringArnaud Charlet1-1/+1
gcc/ada/ * libgnat/a-nbnbre.adb (From_String): Handle properly '_' characters.
2020-10-27[Ada] Warnings on g-spogwa.adbArnaud Charlet1-4/+2
gcc/ada/ * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add g-spogwa object. * libgnat/g-spogwa.adb: Fix style errors.
2020-10-27[Ada] Improve EINTR error handling on "poll" system callDmitriy Anisimkov1-2/+1
gcc/ada/ * libgnat/g-socpol.adb (Wait): Do not exit from loop on EINTR error and timeout is over.
2020-10-26[Ada] Further small edition to documentation of Ada.Text_IO.Fixed_IOEric Botcazou2-3/+3
gcc/ada/ * libgnat/a-tifiio.adb: Add missing sign in documentation. * libgnat/s-imgrea.ads: Minor fixes in commentary.
2020-10-26[Ada] Further small edition to documentation of Ada.Text_IO.Fixed_IOEric Botcazou1-17/+14
gcc/ada/ * libgnat/a-tifiio.adb: Minor editions to documentation.
2020-10-26[Ada] Another small edition to documentation of Ada.Text_IO.Fixed_IOEric Botcazou1-15/+14
gcc/ada/ * libgnat/a-tifiio.adb: Move around documentaton paragraph.
2020-10-26[Ada] Relax assertion on Small in Ada.Text_IO.Fixed_IOEric Botcazou1-11/+11
gcc/ada/ * libgnat/a-tifiio.adb: Change the range of supported Small values. (E0, E1, E2): Adjust factors. (Exact): Return false if the Small does not fit in 64 bits.
2020-10-26[Ada] Fix Accept_Socket and Connect_Socket timeout supportDmitriy Anisimkov1-50/+25
gcc/ada/ * libgnat/g-socket.adb (Wait_On_Socket): Boolean parameter For_Read changed to Event parameter of type GNAT.Sockets.Poll.Wait_Event_Set. Implementation is simplified and based on call to GNAT.Sockets.Poll.Wait now.
2020-10-26[Ada] Minor editions to documentation of Ada.Text_IO.Fixed_IOEric Botcazou1-35/+33
gcc/ada/ * libgnat/a-tifiio.adb: Minor editions to documentation.
2020-10-26[Ada] Restore hex addresses and improve symbolic backtracesOlivier Hainque1-9/+12
gcc/ada/ * libgnat/s-dwalin.adb (Symbolic_Traceback): Always emit the hex address at the beginning of an entry if suppression is not requested. Consistently output a "???" for the subprogram name when it is unknown.
2020-10-26[Ada] Delete: set Position to No_ElementBob Duff3-0/+6
gcc/ada/ * libgnat/a-cihama.adb, libgnat/a-cohama.adb, libgnat/a-cohase.adb (Delete): Set Position.Position, and assert.
2020-10-23[Ada] Sockets.Poll implementationDmitriy Anisimkov11-4/+1147
gcc/ada/ * Makefile.rtl (GNATRTL_SOCKETS_OBJS): New object g-socpol$(objext) New source files noted: g-socpol.adb, g-socpol.ads, g-socpol__dummy.adb, g-socpol__dummy.ads, g-sopowa.adb, g-sopowa__posix.adb, g-sopowa__mingw.adb, g-spogwa.adb, g-spogwa.ads. * impunit.adb (Non_Imp_File_Names_95): New base filename g-socpol in "GNAT Library Units" section for GNAT.Sockets.Poll unit. * libgnat/g-socket.ads, libgnat/g-socket.adb: (Raise_Socket_Error): Moved from body to private part of specification to use in GNAT.Sockets.Poll. * libgnat/g-socpol.ads, libgnat/g-socpol.adb: Main unit of the implementation. * libgnat/g-socpol__dummy.ads, libgnat/g-socpol__dummy.adb: Empty unit for the systems without sockets support. * libgnat/g-spogwa.ads, libgnat/g-spogwa.adb: Generic unit implementing sockets poll on top of select system call. * libgnat/g-sopowa.adb (Wait): Separate implementation for operation systems with poll system call support. * libgnat/g-sopowa__posix.adb (Wait): Separate implementation for POSIX select system call. * libgnat/g-sopowa__mingw.adb (Wait): Separate implementation for Windows select system call. * gsocket.h (_WIN32_WINNT): Increase to 0x0600 for winsock2.h to allow WSAPoll related definitions. * s-oscons-tmplt.c: Fix comment next to #endif for #if defined (__linux__) || defined (__ANDROID__) line. Include <poll.h> for all except VxWorks and Windows. (SIZEOF_nfds_t): New definition. (SIZEOF_fd_type): New definition. (SIZEOF_pollfd_events): New definition. (POLLIN, POLLPRI, POLLOUT, POLLERR, POLLHUP, POLLNVAL): New definitions for VxWorks to be able to emulate poll on top of select in it. Define POLLPRI as zero on Windows as it is not supported there. (Poll_Linkname): New definition, because the poll system call has different name in Windows and POSIX.
2020-10-23[Ada] GNAT.Sockets: fix comment typoPhilippe Gil1-4/+4
gcc/ada/ * libgnat/g-socket.ads: Fix comment typo.
2020-10-23[Ada] Fix logic in C_Select under mingwArnaud Charlet1-11/+10
gcc/ada/ * libgnat/g-socthi__mingw.adb (C_Select): Fix logic in code and make it explicit that we are checking against null values before dereferencing them.
2020-10-23[Ada] Error when closing c_streamArnaud Charlet1-2/+2
gcc/ada/ * libgnat/s-fileio.adb (Open): Fix setting of Tempfile.
2020-10-23[Ada] Take advantage of Long_Long_Long_Integer in From_StringArnaud Charlet3-8/+58
gcc/ada/ * libgnat/a-nbnbin.adb (From_String): Take advantage of Long_Long_Long_Integer. * libgnat/s-genbig.ads, libgnat/s-genbig.adb (To_Bignum): New function taking a Long_Long_Long_Integer.
2020-10-22[Ada] Enable the support of 128-bit integer types by defaultEric Botcazou1-0/+851
gcc/ada/ * Makefile.rtl (GNATRTL_128BIT_PAIRS): Add i-cexten.ads. * debug.adb (d.H): Document new usage. * doc/gnat_rm/representation_clauses_and_pragmas.rst (Size Clauses): Document new limit on 64-bit platforms. (Component_Size Clauses): Likewise. (Pragma Pack for Arrays): Likewise. (Pragma Pack for Records): Likewise. (Record Representation Clauses): Likewise. * gnat_rm.texi: Regenerate. * gnat1drv.adb (Adjust_Global_Switches): Rewrite code enabling or disabling the support for 128-bit integer types. * switch-c.adb (Scan_Front_End_Switches): Do not deal with e128. * usage.adb (Write_Switch_Char): Do not print -gnate128 switch. * libgnat/i-cexten__128.ads: New file. gcc/testsuite/ * ada/acats/run_all.sh: Define and substitute target_{max,min}_int. * ada/acats/support/macro.dfs: Parameterize {MAX,MIN}_INT. * gnat.dg/assert1.adb: Adjust conditionally to 128-bit integer types. * gnat.dg/size_clause1.adb: Do not expect a warning for LP64 targets. * gnat.dg/warn11.adb: Likewise. * gnat.dg/specs/rep_clause5.ads (Array_2_Type): Add alignment clause.
2020-10-22[Ada] Add more annotations and assertions in the runtimeArnaud Charlet2-2/+14
gcc/ada/ * libgnat/s-imenne.adb, libgnat/s-imgrea.adb: Add assertions.
2020-10-22[Ada] Update annotations for codepeer analysis on GNAT runtimeArnaud Charlet1-2/+2
gcc/ada/ * libgnat/s-imgrea.adb (Set_Image_Real): Update annotations.
2020-10-22[Ada] Add No_Implicit_Task_Allocations and No_Implicit_PO_Allocations to JorvikPatrick Bernardi1-42/+9
gcc/ada/ * libgnat/s-rident.ads (Profile_Info): Use a common profile definition for Jorvik and GNAT Extended Ravenscar, using the GNAT Extended Ravenscar definition.