aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
AgeCommit message (Collapse)AuthorFilesLines
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] Simplify Parent_Is_Boolean with subtype membershipsPiotr Trojanek1-26/+8
gcc/ada/ * sem_res.adb (Parent_Is_Boolean): Simplify. (Resolve_Op_Not): Reduce scope of a local variable.
2020-11-27[Ada] Reuse Append_New_Elmt where possiblePiotr Trojanek2-15/+3
gcc/ada/ * cstand.adb: Simplify with Append_New_Elmt. * sem_util.adb: Likewise.
2020-11-27[Ada] Wrong compile time evaluation of Shift_RightArnaud Charlet1-6/+23
gcc/ada/ * sem_eval.adb (Fold_Shift): Fix evaluation of Shift_Right on negative values.
2020-11-27[Ada] Reference before declaration on C392015Arnaud Charlet1-1/+2
gcc/ada/ * exp_ch6.adb (Expand_Call): Properly split Transform_Function_Array and Modify_Tree_For_C.
2020-11-27[Ada] Restore access type instead of mode out parameterPiotr Trojanek3-24/+24
gcc/ada/ * sem_eval.ads (Compile_Time_Compare): Restore parameter Diff to be of an access type. * sem_eval.adb (Compile_Time_Compare): Adapt body and callers. * sem_attr.adb (Eval_Attribute): Adapt callers.
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] Do not apply range checks inside generics in GNATprove modeYannick Moy1-3/+3
gcc/ada/ * checks.adb (Selected_Range_Checks): Adapt the condition for applying range checks so that it is not done inside generics.
2020-11-27[Ada] Do not use 128-bit division for 64-bit fixed-point typesEric Botcazou1-22/+38
gcc/ada/ * exp_fixd.adb (Build_Double_Divide): Only use a 128-bit division if one of the operands is larger than 64 bits. (Build_Double_Divide_Code): Likewise. (Build_Scaled_Divide): Likewise. (Build_Scaled_Divide_Code): 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] Implement AI12-0187 (Stable properties of abstract data types)Steve Baird8-39/+777
gcc/ada/ * snames.ads-tmpl: Define new Name_Stable_Properties Name_Id value. * aspects.ads, aspects.adb: Add new Aspect_Stable_Properties enumeration literal to Aspect_Id type. Add Class_Present parameter to Find_Aspect and related functions (Find_Value_Of_Aspect and Has_Aspect). * sem_util.adb (Has_Nontrivial_Precondition): Fix previously-latent bug uncovered by adding Class_Present parameter to Aspect.Find_Aspect. The code was wrong before, but with the change the bug was more likely to make a user-visible difference. * sem_ch6.adb (Analyze_Operator_Symbol): If a string literal like "abs" or "-" occurs in a Stable_Properties aspect specification, then it is to be interpreted as an operator symbol and not as a string literal. * sem_ch13.ads: Export new Parse_Aspect_Stable_Properties function, analogous to the existing Parse_Aspect_Aggregate exported procedure. * sem_ch13.adb: (Parse_Aspect_Stable_Properties): New function; analogous to existing Parse_Aspect_Aggregate. (Validate_Aspect_Stable_Properties): New procedure; analogous to existing Validate_Aspect_Aggregate. Called from the same case statement (casing on an Aspect_Id value) where Validate_Aspect_Aggregate is called. (Resolve_Aspect_Stable_Properties): New procedure; analogous to existing Resolve_Aspect_Aggregate. Called from the same two case statements (each casing on an Aspect_Id value) where Resolve_Aspect_Aggregate is called. (Analyze_Aspect_Specifications): Set Has_Delayed_Aspects and Is_Delayed_Aspect attributes for Aspect_Stable_Properties aspect specifications. (Check_Aspect_At_End_Of_Declarations): The syntactic "expression" for a Stable_Properties aspect specification is not semantically an expression; it doesn't have a type. Thus, force T to be empty in this case. * contracts.adb (Expand_Subprogram_Contract): Add call to new local procedure, Expand_Subprogram_Contract.Add_Stable_Property_Contracts, which generates Postcondition pragmas corresponding to stable property checks.
2020-11-27[Ada] Default_Initial_Condition assertion policy is now RM definedPiotr Trojanek2-54/+54
gcc/ada/ * doc/gnat_rm/implementation_defined_pragmas.rst: (Assertion_Policy): Move "Default_Initial_Condition" from ID_ASSERTION_KIND to RM_ASSERTION_KIND section. * gnat_rm.texi: Regenerate.
2020-11-27[Ada] Sync doc and code for pragma Assertion_PolicyPiotr Trojanek2-31/+37
gcc/ada/ * doc/gnat_rm/implementation_defined_pragmas.rst (Assertion_Policy): Add "Default_Initial_Condition", "Initial_Condition" and "Subprogram_Variant". * gnat_rm.texi: Regenerate.
2020-11-27[Ada] Assertion_Policy is not a valid assertion policyPiotr Trojanek1-1/+0
gcc/ada/ * sem_prag.adb (Is_Valid_Assertion_Kind): Return False on "Assertion_Policy"
2020-11-27[Ada] Do not compile predefined units with -gnatp in gnatmakeEric Botcazou1-3/+3
gcc/ada/ * make.adb (GNAT_Flag): Change to "-gnatg". (Compile): Adjust comments accordingly.
2020-11-27[Ada] Restore general case for folding comparison of static stringsPiotr Trojanek3-63/+74
gcc/ada/ * exp_ch4.adb (Rewrite_Comparison): Add assertion to confirm that evaluation folds comparisons with static operands; when folding comparison with non-static operands, the resulting literal is non-static. * sem_eval.adb (Eval_Relational_Op): Refactor nested IF statement for the special case in the THEN branch; move code for the "general case" out of the ELSE branch. * sem_res.adb (Resolve_Comparison_Op): Only apply a dubious special-case for GNATprove in the GNATprove_Mode.
2020-11-27[Ada] Change parameter from access type to mode outPiotr Trojanek3-24/+24
gcc/ada/ * sem_eval.ads (Compile_Time_Compare): Change parameter Diff from access to mode out. * sem_eval.adb (Compile_Time_Compare): Adapt body and callers. * sem_attr.adb (Eval_Attribute): Adapt callers.
2020-11-27[Ada] Move down call to Narrow_Large_Operation in Expand_N_Op_MultiplyEric Botcazou1-10/+10
gcc/ada/ * exp_ch4.adb (Expand_N_Op_Multiply): Move down block calling Narrow_Large_Operation if the type is Universal_Integer.
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] Optimize generation of checks for fixed-point typesEric Botcazou5-122/+139
gcc/ada/ * checks.ads (Determine_Range_To_Discrete): New procedure. * checks.adb (Apply_Scalar_Range_Check): Call it to determine a range for the expression when the target type is discrete. And also apply the tests for discrete types to fixed-point types when they are treated as integers. (Apply_Type_Conversion_Checks): Apply checks to conversions involving fixed-point types when they are treated as integers. (Determine_Range) <N_Type_Conversion>: Factor out code into... (Determine_Range_To_Discrete): ...this new procedure and add support for fixed-point types when they are treated as integers. * einfo.ads (Type_High_Bound): Remove obsolete sentence. (Type_Low_Bound): Likewise. * exp_ch4.adb (Discrete_Range_Check): Remove obsolete code. (Real_Range_Check): Likewise. (Expand_N_Type_Conversion): In case of a no-op conversion, clear the Do_Range_Check flag on the operand before substituting it. Remove calls to Real_Range_Check and Discrete_Range_Check that are not guarded by the Do_Range_Check flag, and an assertion. * sem_res.adb (Resolve_Type_Conversion): Always apply range checks in GNATprove mode; in normal mode, use the updated type of the operand in the test against Universal_Fixed. Remove obsolete code setting the Do_Range_Check flag at the end.
2020-11-27[Ada] Simplify check for illegal non-returning proceduresPiotr Trojanek1-17/+11
gcc/ada/ * sem_prag.adb (Analyze_Pragma): Change "Ref Manual" to RM; replace uses of an unnecessary "Ok" variable with RETURN statements; replace nested IF with ELSIF.
2020-11-27[Ada] Abort defer mismatch with SJLJ exceptionsArnaud Charlet7-164/+7
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] Emit error messages for null/generic nonreturning proceduresGhjuvan Lacambre1-4/+62
gcc/ada/ * sem_prag.adb (Analyze_Pragma): declare new Check_No_Return function and call it.
2020-11-27[Ada] Fix tree for expanded instantiations corresponding to formal packagesArnaud Charlet1-1/+1
gcc/ada/ * sem_ch12.adb (Instantiate_Object): Consistently use New_Copy_Tree instead of New_Copy.
2020-11-27[Ada] Adjust head comment of various subprograms in Exp_FixdEric Botcazou1-9/+8
gcc/ada/ * exp_fixd.adb (Build_Conversion): Adjust head comment. (Build_Divide): Likewise. (Build_Double_Divide): Likewise. (Build_Multiply): Likewise. (Build_Rem): Likewise. (Build_Scaled_Divide): Likewise.
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-27[Ada] Optimize magnitude of integer operations for fixed pointEric Botcazou1-17/+17
gcc/ada/ * exp_fixd.adb (Build_Double_Divide): Use the RM size of types and a more precise estimate for the size of the denominator. (Build_Double_Divide_Code): Likewise. (Build_Multiply): Use a more precise estimate for the size of the result. (Build_Scaled_Divide): Use the RM size of types and a more precise estimate for the size of the numerator. (Build_Scaled_Divide_Code): Likewise.
2020-11-27Daily bump.GCC Administrator1-0/+396
2020-11-26ada: c++: Get rid of libposix4, librt on SolarisRainer Orth2-7/+2
I recently noticed that neither libposix4 nor librt are needed on Solaris 11 any longer: * libposix4 was renamed to librt in Solaris 7 back in 1998. * librt was folded into libc in the OpenSolaris timeframe, leaving librt only as a filter on libc. Thus, it's no longer needed on either Solaris 11 or Illumos. The following patch removes both uses. At the same time, Ada's use of libthread has gone: it was folded into libc in Solaris 10 already. TIME_LIBRARY and friends in g++ are likewise removed: Solaris was the only user. Bootstrapped without regressions on i386-pc-solaris2.11, sparc-sun-solaris2.11, and x86_64-pc-linux-gnu. 2020-11-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> gcc/cp: * g++spec.c (TIMELIB, TIME_LIBRARY): Remove. (lang_specific_driver): Remove TIME_LIBRARY handling. gcc: * config/sol2.h (TIME_LIBRARY): Remove. libstdc++-v3: * acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Remove libposix4 references. <solaris*>: Don't use -lrt any longer. * configure: Regenerate. * doc/xml/manual/configure.xml (--enable-libstdcxx-time=OPTION): Remove libposix4 reference. gcc/ada: * Makefile.rtl <sparc*-sun-solaris*> (THREADSLIB): Remove. (MISCLIB): Remove -lposix4. <*86-*-solaris2*>: Likewise. * libgnarl/s-osinte__solaris.ads (System.OS_Interface): Remove -lposix4 -lthread.
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] Ada 2020 AI12-0401 Renaming of qualified expression of variableArnaud Charlet1-0/+16
gcc/ada/ * sem_ch8.adb (Analyze_Object_Renaming): Check for AI12-0401.
2020-11-26[Ada] Add support for 128-bit fixed-point types on 64-bit platformsEric Botcazou146-2349/+7389
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] Add support for .c output fileArnaud Charlet1-5/+4
gcc/ada/ * osint-c.adb (Set_Output_Object_File_Name): Add support for .c output file.
2020-11-26[Ada] Reuse Is_Generic_Subprogram where possiblePiotr Trojanek3-11/+5
gcc/ada/ * lib-writ.adb, sem_ch8.adb, sem_prag.adb: Use Is_Generic_Subprogram instead of low-level membership tests.
2020-11-26[Ada] Minor reformatting and a typo fixGary Dismukes2-4/+3
gcc/ada/ * sem_ch6.adb (Analyze_Call_And_Resolve): Reformatted a comment. * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings): Fixed a typo.
2020-11-26[Ada] Replace warning suppression with assertionPiotr Trojanek1-1/+1
gcc/ada/ * sem_res.adb (Resolve_Membership_Op): Replace pragma Warnings with pragma Assert.
2020-11-26[Ada] Improve error message on illegal prefixed procedure callEd Schonberg1-0/+21
gcc/ada/ * sem_ch6.adb (Analyze_Call_And_Resolve): Add information to the error message on an illegal procedure call, when the illegality is due to the presence of a component of the full view of the target object, as well as a procedure with the same name (See RM 4.1.3 (9.2/3)).
2020-11-26[Ada] Crash on task declaration with Restriction_Warning (No_Tasking)Ed Schonberg1-3/+6
gcc/ada/ * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings): when the restriction is a configuration pragma and specifies No_Tasking, a global flag is set to reject task declarations, and to prevent the construction of Master entities. The flag must not be set if the pragma is a Restriction_Warning, in which case task declarationns are allowed.
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] Avoid potentially repeated calls to Prefix in Eval_SlicePiotr Trojanek1-2/+3
gcc/ada/ * sem_eval.adb (Eval_Slice): Refactor repeated calls to Prefix with a local constant (named just like in Resolve_Slice).
2020-11-26[Ada] Warn on slices of the form A (subtype) for all objectsPiotr Trojanek1-1/+1
gcc/ada/ * sem_eval.adb (Eval_Slice): Emit warning not just for constants, but for any objects.
2020-11-26[Ada] Remove duplicated calls to Set_EntityPiotr Trojanek3-4/+2
gcc/ada/ * sem_ch4.adb (Indicate_Name_And_Type): Fix whitespace in comment. * sem_res.adb (Resolve_Call): Remove redundant parens. * sem_util.adb (Set_Entity_With_Checks): Remove extra call to Set_Entity.
2020-11-26[Ada] Memory leak in concatenation with Initialize_ScalarsBob Duff1-0/+9
gcc/ada/ * exp_ch4.adb (Expand_Concatenate): Call Set_No_Initialization on the N_Allocator node that is supposed to allocate on the secondary stack.
2020-11-26[Ada] Reuse Is_Concurrent_Type when detecting protected or task typesPiotr Trojanek4-9/+7
gcc/ada/ * exp_ch13.adb, exp_ch9.adb, sem_ch8.adb, sem_util.adb: Replace a combination of Is_Protected_Type and Is_Task_Type by Is_Concurrent_Type.
2020-11-26[Ada] Constraint_Error in Task_Wrapper and -u0Arnaud Charlet1-6/+5
gcc/ada/ * libgnarl/s-tassta.adb (Task_Wrapper): Fix computation of Pattern_Size.
2020-11-26[Ada] Pass base type to Set_Has_Own_InvariantsBob Duff3-9/+2
gcc/ada/ * freeze.adb (Freeze_Array_Type): Remove propagation of Has_Own_Invariants to the first subtype. This is a no-op, because the current (incorrect) version of Has_Own_Invariants calls Base_Type. * sem_prag.adb, sem_util.adb: Pass the base type to Set_Has_Own_Invariants.