Skip to content
Snippets Groups Projects
  1. Dec 15, 2020
    • Piotr Trojanek's avatar
      [Ada] Simplify check for extra parens · 7d07d75d
      Piotr Trojanek authored
      gcc/ada/
      
      	* par-ch5.adb (P_Condition): Simplify condition for warning
      	about extra parens and make it easier to understand.
      7d07d75d
    • Piotr Trojanek's avatar
      [Ada] Refactor repeated complains about missing -gnat2005 switch · 3a6298d6
      Piotr Trojanek authored
      gcc/ada/
      
      	* errout.ads (Error_Msg_Ada_2005_Extension): New routine (spec).
      	* errout.adb (Error_Msg_Ada_2005_Extension): New routine (body).
      	* par-ch10.adb: Reuse new routine; correct casing for "LIMITED
      	WITH".
      	* par-ch11.adb: Likewise.
      	* par-ch12.adb: Likewise.
      	* par-ch3.adb: Likewise.
      	* par-ch4.adb: Likewise; replace "box" with "<>".
      	* par-ch6.adb: Likewise.
      	* par-ch9.adb: Likewise; correct casing for "THEN ABORT".
      3a6298d6
    • Eric Botcazou's avatar
      [Ada] Small adjustment to parameterization of System.Value_R · 04974721
      Eric Botcazou authored
      gcc/ada/
      
      	* doc/gnat_ugn/gnat_and_program_execution.rst: Minor fix.
      	* gnat_ugn.texi: Regenerate.
      	* libgnat/s-valuer.ads (Precision_Limit): New formal parameter.
      	* libgnat/s-valuer.adb (Precision_Limit): Remove.
      	(Scan_Decimal_Digits): Robustify overflow check.
      	(Scan_Integral_Digits): Likewise.
      	* libgnat/s-valrea.adb: Add assertion on the size of the unsigned
      	type and instantiate System.Value_R with the mantissa limit.
      	(Integer_to_Real): Add Extra parameter and take it into account.
      	(Scan_Real): Pass Extra to Integer_to_Real.
      	(Value_Real): Likewise.
      	* libgnat/s-valued.adb: Add assertion on the size of the unsigned
      	type and instantiate System.Value_R with the mantissa limit.
      	* libgnat/s-valuef.adb: Likewise.
      04974721
    • Justin Squirek's avatar
      [Ada] Postcondition checks performed before finalization · a1023434
      Justin Squirek authored
      gcc/ada/
      
      	* contracts.adb, contracts.ads (Build_Postconditions_Procedure):
      	Add declarations for Postcond_Enabled,
      	Result_Object_For_Postcondition, and
      	Return_Success_For_Postcond, and place all postconditions within
      	an if statement to control their execution for interactions when
      	cleanup actions get generated.
      	(Get_Postcond_Enabled): Created to fetch object declared to
      	handle new expansion of postconditions.
      	(Get_Result_Object_For_Postcond): Created to fetch object
      	declared to handle new expansion of postconditions.
      	(Get_Return_Success_For_Postcond): Created to fetch object
      	declared to handle new expansion of postconditions.
      	* einfo.adb, einfo.ads: Modify flag Stores_Attribute_Old_Prefix
      	to apply to constants, variables, and types.
      	* exp_ch6.adb (Add_Return): Add assignment to
      	Return_Success_For_Postcond.
      	(Expand_Non_Function_Return): Add assignment to
      	Return_Success_For_Postcond
      	(Expand_Simple_Function_Return): Add assignment to
      	Result_Object_For_Postcond and Return_Success_For_Postcond.
      	* exp_ch7.adb (Build_Finalization_Master): Mark finalization
      	masters which finalize types created store 'Old objects as
      	storing 'Old objects.
      	(Build_Finalizer): Created to generated a unified and special
      	expansion for finalization when postconditions are present.
      	(Build_Finalizer_Helper): Renamed Build_Finalizer and added
      	parameter to facilitate the creation of separate finalization
      	routines for 'Old objects and general objects.
      	(Create_Finalizer): Add condition for the insertion of the
      	finalizer spec to avoid malformed trees.
      	(Expand_Cleanup_Actions): Move _postconditions and related
      	declarations to the new declarative section.  Fix the loop to
      	properly stop at the subprogram declaration for the
      	postconditions procedure and exclude its body from being moved
      	to the new list of declarations to avoid freezing issues.
      	* exp_prag.adb (Expand_Attributes): Mark temporary created to
      	store 'Old objects as storing a 'Old attribute.
      	* sem_ch6.adb (Find_What_Applies_To): Remove strange exception
      	to postconditions when traversing the scope stack.
      	* sem_prag.adb (Find_Related_Declaration_Or_Body): Use the newly
      	created Enclosing_HSS function to find the HSS for a potentially
      	nested statement.
      	* sem_util.adb, sem_util.ads (Declare_Indirect_Temp): Mark types
      	created to store 'Old objects as storing 'Old attributes.
      	(Enclosing_HSS): Created to find the enclosing handled sequence
      	of statements for a given statement.
      	* snames.ads-tmpl: Add multiple names to aid in the expansion of
      	finalization and to control the evaluation of postconditions.
      	Including _finalization_controller, a new routine to centralize
      	finalization actions and postcondition evaluation.
      a1023434
    • Piotr Trojanek's avatar
      [Ada] Complain about missing -gnat2020 switch on iterator_filter · 43852482
      Piotr Trojanek authored
      gcc/ada/
      
      	* par-ch5.adb (P_Loop_Parameter_Specification): Complain about
      	missing -gnat2020 switch.
      	(P_Iterator_Specification): Likewise.
      43852482
    • Piotr Trojanek's avatar
      [Ada] Reuse Append_New in parsing aggregates · 320be7e2
      Piotr Trojanek authored
      gcc/ada/
      
      	* par-ch4.adb (P_Aggregate_Or_Paren_Expr): Simplify with
      	Append_New.
      320be7e2
    • Eric Botcazou's avatar
      [Ada] Implement tiered support for floating-point input operations · 338e5133
      Eric Botcazou authored
      gcc/ada/
      
      	* Makefile.rtl (GNATRTL_NONTASKING_OBJS): Remove s-fatsfl$(objext)
      	and add s-valflt$(objext), s-vallfl$(objext), s-valllf$(objext).
      	* exp_attr.adb (Find_Fat_Info): Merge Short_Float and Float cases.
      	* exp_imgv.adb (Expand_Value_Attribute): Replace RE_Value_Real with
      	RE_Value_Long_Long_Float for fixed-point types and use appropriate
      	base type for floating-point types.
      	* rtsfind.ads (RTU_Id): Remove System_Fat_IEEE_Long_Float,
      	System_Fat_IEEE_Short_Float and System_Val_Real, add System_Val_Flt,
      	System_Val_LFlt and System_Val_LLF.
      	(RE_Id): Remove RE_Attr_IEEE_Long, RE_Fat_IEEE_Long,
      	RE_Attr_IEEE_Short, RE_Fat_IEEE_Short, RE_Attr_Short_Float, add
      	RE_Value_Float, RE_Value_Long_Float, RE_Value_Long_Long_Float,
      	(RE_Unit_Table): Likewise.
      	* libgnat/a-ticoau.ads: Add with clause for Float_Aux and make the
      	package generic.
      	(Get): Change parameter types to Num.
      	(Put): Likewise.
      	(Gets): Likewise.
      	(Puts): Likewise.
      	* libgnat/a-ticoau.adb: Remove clause and renaming for Float_Aux.
      	(Get): Change parameter types to Num.
      	(Gets): Likewise.
      	(Put): Likewise.
      	(Puts): Likewise.  Add conversion to Long_Long_Float.
      	* libgnat/a-ticoio.adb: Remove with clause for Ada.Text_IO, add with
      	clause for Float_Aux, add with and use clauses for System.Val_Flt,
      	System.Val_LFlt and System.Val_LLF. Instantiate Float_Aux and
      	Complex_Aux on Float, Long_Float, and Long_Long_Float.
      	(OK_Float): New boolean constant.
      	(OK_Long_Float): Likewise.
      	(Get): Call appropriate Get routine from auxiliary package.
      	(Get): Call appropriate Gets routine from auxiliary package.
      	(Put): Call appropriate Put routine from auxiliary package.
      	(Put): Call appropriate Puts routine from auxiliary package.
      	* libgnat/a-tideau.adb: Remove with and use clause for Float_Aux.
      	* libgnat/a-tifiau.adb: Likewise.
      	* libgnat/a-tifiio.adb: Add with and use clause for System.Val_LLF.
      	Instantiate Float_Aux on Long_Long_Float.
      	(Get): Adjust call to Get routine from auxiliary package.
      	(Get): Adjust call to Gets routine from auxiliary package.
      	(Put): Adjust call to Put routine from auxiliary package.
      	(Put): Adjust call to Puts routine from auxiliary package.
      	* libgnat/a-tifiio__128.adb: Likewise.
      	(Get): Likewise.
      	(Get): Likewise.
      	(Put): Likewise.
      	(Put): Likewise.
      	* libgnat/a-tiflau.ads: Make the package generic.
      	(Get): Change parameter type to Num.
      	(Put): Likewise.
      	(Gets): Likewise.
      	(Puts): Likewise.
      	* libgnat/a-tiflau.adb: Remove clauses for System.Val_Real.
      	(Get): Change parameter type to Num and call Scan routine.
      	(Gets): Likewise.
      	(Load_Real): Move to...
      	(Put): Change parameter type and add conversion to Long_Long_Float.
      	(Puts): Likewise.
      	* libgnat/a-tiflio.adb: Add with and use clauses for System.Val_Flt,
      	System.Val_LFlt and System.Val_LLF. Instantiate Float_Aux on Float,
      	Long_Float and Long_Long_Float.
      	(OK_Float): New boolean constant.
      	(OK_Long_Float): Likewise.
      	(Get): Call appropriate Get routine from auxiliary package.
      	(Get): Call previous variant.
      	(Get): Call appropriate Gets routine from auxiliary package.
      	(Put): Call appropriate Put routine from auxiliary package.
      	(Put): Call previous variant.
      	(Put): Call appropriate Puts routine from auxiliary package.
      	* libgnat/a-tigeau.ads (Load_Real): New procedure.
      	* libgnat/a-tigeau.adb (Load_Real): ...here.
      	* libgnat/a-wtcoau.ads: Add with clause for Float_Aux and make the
      	package generic.
      	(Get): Change parameter types to Num.
      	(Put): Likewise.
      	(Gets): Likewise.
      	(Puts): Likewise.
      	* libgnat/a-wtcoau.adb: Remove clause and renaming for Float_Aux.
      	(Get): Change parameter types to Num.
      	(Gets): Likewise.
      	(Put): Likewise.
      	(Puts): Likewise.  Add conversion to Long_Long_Float.
      	* libgnat/a-wtcoio.ads: Remove use clause for Complex_Types and use
      	qualified names throughout accordingly.
      	* libgnat/a-wtcoio.adb: Remove clause for Ada.Unchecked_Conversion,
      	add with clause for Float_Aux, add clauses for System.Val_Flt,
      	System.Val_LFlt and System.Val_LLF. Add clause for Complex_Types.
      	Instantiate Float_Aux and Complex_Aux on Float, Long_Float, and
      	Long_Long_Float.  Remove LLF subtype and TFT instantiation.
      	(OK_Float): New boolean constant.
      	(OK_Long_Float): Likewise.
      	(Get): Call appropriate Get routine from auxiliary package.
      	(Get): Call appropriate Gets routine from auxiliary package.
      	(Put): Call appropriate Put routine from auxiliary package.
      	(Put): Call appropriate Puts routine from auxiliary package.
      	* libgnat/a-wtdeau.adb: Remove with and use clause for Float_Aux.
      	* libgnat/a-wtfiau.adb: Likewise.
      	* libgnat/a-wtfiio.adb: Add with and use clause for System.Val_LLF.
      	Instantiate Float_Aux on Long_Long_Float.
      	(Get): Adjust call to Get routine from auxiliary package.
      	(Get): Adjust call to Gets routine from auxiliary package.
      	(Put): Adjust call to Put routine from auxiliary package.
      	(Put): Adjust call to Puts routine from auxiliary package.
      	* libgnat/a-wtfiio__128.adb: Likewise.
      	(Get): Likewise.
      	(Get): Likewise.
      	(Put): Likewise.
      	(Put): Likewise.
      	* libgnat/a-wtflau.ads: Make the package generic.
      	(Get): Change parameter type to Num.
      	(Put): Likewise.
      	(Gets): Likewise.
      	(Puts): Likewise.
      	* libgnat/a-wtflau.adb: Remove clauses for System.Val_Real.
      	(Get): Change parameter type to Num and call Scan routine. Set
      	Ptr parameter lazily.
      	(Gets): Likewise.
      	(Load_Real): Move to...
      	(Put): Change parameter type and add conversion to Long_Long_Float.
      	Bump buffer length to Max_Real_Image_Length.
      	(Puts): Likewise.
      	* libgnat/a-wtflio.adb: Add with and use clauses for System.Val_Flt,
      	System.Val_LFlt and System.Val_LLF. Instantiate Float_Aux on Float,
      	Long_Float and Long_Long_Float.
      	(OK_Float): New boolean constant.
      	(OK_Long_Float): Likewise.
      	(Get): Call appropriate Get routine from auxiliary package.  Add
      	pragma Unsuppress (Range_Check) and manual validity check.
      	(Get): Call appropriate Gets routine from auxiliary package. Add
      	pragma Unsuppress (Range_Check) and manual validity check.
      	(Put): Call appropriate Put routine from auxiliary package.
      	(Put): Call appropriate Puts routine from auxiliary package.
      	* libgnat/a-wtgeau.ads (Load_Real): New procedure.
      	* libgnat/a-wtgeau.adb (Load_Real): ...here.
      	* libgnat/a-ztcoau.ads: Add with clause for Float_Aux and make the
      	package generic.
      	(Get): Change parameter types to Num.
      	(Put): Likewise.
      	(Gets): Likewise.
      	(Puts): Likewise.
      	* libgnat/a-ztcoau.adb: Remove clause and renaming for Float_Aux.
      	(Get): Change parameter types to Num.
      	(Gets): Likewise.
      	(Put): Likewise.
      	(Puts): Likewise.  Add conversion to Long_Long_Float.
      	* libgnat/a-ztcoio.ads: Remove use clause for Complex_Types and use
      	qualified names throughout accordingly.
      	* libgnat/a-ztcoio.adb: Remove clause for Ada.Unchecked_Conversion,
      	add with clause for Float_Aux, add clauses for System.Val_Flt,
      	System.Val_LFlt and System.Val_LLF. Add clause for Complex_Types.
      	Instantiate Float_Aux and Complex_Aux on Float, Long_Float, and
      	Long_Long_Float. Remove LLF subtype and TFT instantiation.
      	(OK_Float): New boolean constant.
      	(OK_Long_Float): Likewise.
      	(Get): Call appropriate Get routine from auxiliary package.
      	(Get): Call appropriate Gets routine from auxiliary package.
      	(Put): Call appropriate Put routine from auxiliary package.
      	(Put): Call appropriate Puts routine from auxiliary package.
      	* libgnat/a-ztdeau.adb: Remove with and use clause for Float_Aux.
      	* libgnat/a-ztfiau.adb: Likewise.
      	* libgnat/a-ztfiio.adb: Add with and use clause for System.Val_LLF.
      	Instantiate Float_Aux on Long_Long_Float.
      	(Get): Adjust call to Get routine from auxiliary package.
      	(Get): Adjust call to Gets routine from auxiliary package.
      	(Put): Adjust call to Put routine from auxiliary package.
      	(Put): Adjust call to Puts routine from auxiliary package.
      	* libgnat/a-ztfiio__128.adb: Likewise.
      	(Get): Likewise.
      	(Get): Likewise.
      	(Put): Likewise.
      	(Put): Likewise.
      	* libgnat/a-ztflau.ads: Make the package generic.
      	(Get): Change parameter type to Num.
      	(Put): Likewise.
      	(Gets): Likewise.
      	(Puts): Likewise.
      	* libgnat/a-ztflau.adb: Remove clauses for System.Val_Real.
      	(Get): Change parameter type to Num and call Scan routine. Set
      	Ptr parameter lazily.
      	(Gets): Likewise.
      	(Load_Real): Move to...
      	(Put): Change parameter type and add conversion to Long_Long_Float.
      	Bump buffer length to Max_Real_Image_Length.
      	(Puts): Likewise.
      	* libgnat/a-ztflio.adb: Add with and use clauses for System.Val_Flt,
      	System.Val_LFlt and System.Val_LLF. Instantiate Float_Aux on Float,
      	Long_Float and Long_Long_Float.
      	(OK_Float): New boolean constant.
      	(OK_Long_Float): Likewise.
      	(Get): Call appropriate Get routine from auxiliary package.  Add
      	pragma Unsuppress (Range_Check) and manual validity check.
      	(Get): Call appropriate Gets routine from auxiliary package. Add
      	pragma Unsuppress (Range_Check) and manual validity check.
      	(Put): Call appropriate Put routine from auxiliary package.
      	(Put): Call appropriate Puts routine from auxiliary package.
      	* libgnat/a-ztgeau.ads (Load_Real): New procedure.
      	* libgnat/a-ztgeau.adb (Load_Real): ...here.
      	* libgnat/s-fatsfl.ads: Delete.
      	* libgnat/s-valflt.ads: New package.
      	* libgnat/s-vallfl.ads: Likewise.
      	* libgnat/s-valllf.ads: Likewise.
      	* libgnat/s-valrea.ads: Make generic. Add assertions, defensive
      	code and clarify intent.
      	(Scan_Real): Change parameter type to Num.
      	(Value_Real): Likewise.
      	* libgnat/s-valrea.adb: Instantiate Value_R on Uns.
      	(Integer_to_Real): Change parameter and result to Num.
      	Call Float_Control.Reset only if the mantissa is 64 bits.  Use
      	a divide to compute the final value if the scale is negative.
      	(Scan_Real): Change result to Num.
      	(Value_Real): Likewise.
      	* libgnat/s-valuer.adb: Add assertions, defensive code and
      	clarify intent.
      	(F_Limit): Delete.
      	(I_Limit): Likewise.
      	(Precision_Limit): Always use the integer limit.
      	* libgnat/s-fatgen.adb: Add pragma Annotate.
      338e5133
    • Yannick Moy's avatar
      [Ada] Mark generic body outside of SPARK · 1851d3ce
      Yannick Moy authored
      gcc/ada/
      
      	* libgnat/a-tiflio.adb: Mark body not in SPARK.
      	* libgnat/a-tiflio.ads: Mark spec in SPARK.
      1851d3ce
    • Arnaud Charlet's avatar
      [Ada] Transform_Function_Array issues · d79e7af5
      Arnaud Charlet authored
      gcc/ada/
      
      	* exp_ch6.adb (Build_Procedure_Body_Form): Adjust, the
      	declaration of the procedure form is now insert before the
      	original function body rather than after.
      	(Expand_N_Subprogram_Declaration): Deal with private types whose
      	full views are arrays.
      	* exp_unst.adb (Unnest_Subprogram): Deal with private types.
      	(Needs_Fat_Pointer): Code cleanup.
      	* freeze.adb (Freeze_Subprogram): Ditto.
      	* exp_util.adb (Build_Procedure_Form): Insert the procedure form
      	decl before and not after.
      	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Build missing
      	spec when needed for Transform_Function_Array.
      	* sem_util.adb (Get_Fullest_View): Deal with null entity.
      d79e7af5
    • Piotr Trojanek's avatar
      [Ada] Simplify discarding nodes when processing aspect/pragma Priority · 958eed88
      Piotr Trojanek authored
      gcc/ada/
      
      	* sem_ch13.adb (Analyze_Aspect_Specifications): Simplify code
      	for aspect Priority.
      	* sem_prag.adb (Analyze_Pragma): Simplify code for pragma
      	Priority.
      958eed88
    • Arnaud Charlet's avatar
      [Ada] Crash on unnesting unnamed blocks · 2e188579
      Arnaud Charlet authored
      gcc/ada/
      
      	* exp_ch7.adb (Reset_Scopes_To_Block_Elab_Proc): Do not crash on
      	a block with no Identifier. Code cleanups.
      2e188579
    • Piotr Trojanek's avatar
      [Ada] Refactor repeated code for Value attributes · b2304663
      Piotr Trojanek authored
      gcc/ada/
      
      	* sem_attr.adb (Analyze_Attribute): Reuse existing code for
      	attribute Value when analyzing attributes Wide_Value and
      	Wide_Wide_Value.
      b2304663
    • Pascal Obry's avatar
      [Ada] Fix possible infinite recursion in directory iterator · 3a6021dc
      Pascal Obry authored
      gcc/ada/
      
      	* libgnat/g-diopit.adb (Find): Fix possible infinite recursion
      	in Find iterator.
      	* libgnat/g-diopit.ads (Find): Update comments accordingly.
      3a6021dc
    • Piotr Trojanek's avatar
      [Ada] Refactor repeated code for Callable and Terminated attributes · afed612d
      Piotr Trojanek authored
      gcc/ada/
      
      	* sem_attr.adb (Analyze_Attribute): Merge identical code for
      	Callable and Terminated attributes; refactor calls to Set_Etype
      	occurring in both THEN and ELSE branches of an IF statement for
      	attribute Storage_Size.
      afed612d
    • Piotr Trojanek's avatar
      [Ada] Refactor repeated code for Width attributes · ce20ff02
      Piotr Trojanek authored
      gcc/ada/
      
      	* sem_attr.adb (Analyze_Attribute): Merge identical code for
      	Wide_Wide_Width, Wide_Width and Width attributes.
      ce20ff02
    • Piotr Trojanek's avatar
      [Ada] Refactor repeated code for Pred and Succ attributes · bc576410
      Piotr Trojanek authored
      gcc/ada/
      
      	* sem_attr.adb (Analyze_Attribute): Merge identical code for
      	Pred and Succ attributes.
      bc576410
    • Piotr Trojanek's avatar
      [Ada] Refactor repeated code for size attributes · 7addd1ce
      Piotr Trojanek authored
      gcc/ada/
      
      	* sem_attr.adb (Analyze_Attribute): Merge identical code for
      	Size, Object_Size and Value_Size attributes.
      7addd1ce
    • Piotr Trojanek's avatar
      [Ada] Refactor repeated code for fixed point attributes · 57d5ceda
      Piotr Trojanek authored
      gcc/ada/
      
      	* sem_attr.adb (Analyze_Attribute): Consistently call
      	Check_Fixed_Point_Type before checking the number of attribute
      	expressions (like it is done for floating point types); reuse
      	Check_Fixed_Point_Type_0.
      57d5ceda
    • Piotr Trojanek's avatar
      [Ada] Remove redundant calls to UI_To_Int in relational operands · 9c852dfb
      Piotr Trojanek authored
      gcc/ada/
      
      	* exp_disp.adb (Make_Tags): Remove call to UI_To_Int.
      	* sem_attr.adb (Check_Array_Type): Likewise; also, refine type
      	of a local variable.
      	(Analyze_Attribute): Likewise.
      	(Get_Enclosing_Object): Likewise.
      	* sem_util.adb (Get_Enum_Lit_From_Pos): Likewise.
      9c852dfb
    • Piotr Trojanek's avatar
      [Ada] Refactor repeated code for component attributes · 10853d6e
      Piotr Trojanek authored
      gcc/ada/
      
      	* sem_attr.adb (Analyze_Attribute): Merge identical code for
      	First_Bit/Last_Bit and Position attributes.
      10853d6e
    • Piotr Trojanek's avatar
      [Ada] Refactor repeated code for real type attributes returning integers · cb84595d
      Piotr Trojanek authored
      gcc/ada/
      
      	* sem_attr.adb (Analyze_Attribute): Merge identical code for
      	Machine_Radix and Mantissa attributes.
      cb84595d
    • Piotr Trojanek's avatar
      [Ada] Refactor repeated code for real type attributes returning booleans · f9c82ff4
      Piotr Trojanek authored
      gcc/ada/
      
      	* sem_attr.adb (Analyze_Attribute): Merge identical code for
      	Machine_Overflows and Machine_Rounds attributes.
      f9c82ff4
    • Piotr Trojanek's avatar
      [Ada] Refactor repeated code for real type attributes returning reals · 4c11930d
      Piotr Trojanek authored
      gcc/ada/
      
      	* sem_attr.adb (Analyze_Attribute): Merge identical code for
      	Large, Small, Safe_Large and Safe_Small attributes.
      4c11930d
    • Piotr Trojanek's avatar
      [Ada] Refactor repeated code for floating point attributes returning reals · 156f9796
      Piotr Trojanek authored
      gcc/ada/
      
      	* sem_attr.adb (Analyze_Attribute): Merge identical code for
      	Epsilon, Model_Epsilon, Model_Small, Safe_First and Safe_Las
      	attributes.
      156f9796
    • Piotr Trojanek's avatar
      [Ada] Refactor repeated code for floating point attributes returning ints · 82b4bbb7
      Piotr Trojanek authored
      gcc/ada/
      
      	* sem_attr.adb (Analyze_Attribute): Merge identical code for
      	Emax, Machine_Emax, Machine_Emin, Machine_Mantissa, Model_Emin,
      	Model_Mantissa and Safe_Emax attributes.
      82b4bbb7
    • Piotr Trojanek's avatar
      [Ada] Refactor duplicated code for Denorm and Signed_Zeros attributes · e5f53db7
      Piotr Trojanek authored
      gcc/ada/
      
      	* sem_attr.adb (Analyze_Attribute): Merge identical code for
      	Denorm and Signed_Zeros attributes.
      e5f53db7
    • Piotr Trojanek's avatar
      [Ada] Refactor duplicated code for Adjacent, Copy_Sign and Remainder · e30609bf
      Piotr Trojanek authored
      gcc/ada/
      
      	* sem_attr.adb (Analyze_Attribute): Merge identical code for
      	Adjacent, Copy_Sign and Remainder attributes.
      	(Check_Floating_Point_Type_2): Fix style in comment.
      e30609bf
    • Piotr Trojanek's avatar
      [Ada] Refactor duplicated code for Compose, Leading_Part and Scaling · a8ecf5ec
      Piotr Trojanek authored
      gcc/ada/
      
      	* sem_attr.adb (Analyze_Attribute): Merge identical code for
      	Compose, Leading_Part and Scaling attributes.
      a8ecf5ec
    • Jakub Jelinek's avatar
      i386: Fix up -march=x86-64-v[234] vs. target attribute [PR98274] · 69bd5d47
      Jakub Jelinek authored
      The following testcase fails to compile.  The problem is that
      when ix86_option_override_internal is called the first time for command
      line, it sees -mtune= wasn't present on the command line and so as fallback
      sets ix86_tune_string to ix86_arch_string value ("x86-64-v2"), but
      ix86_tune_specified is false, so we don't find the tuning in the table
      but don't error on it.
      When processing the target attribute, ix86_tune_string is what
      it was earlier left with, but this time ix86_tune_specified is true and
      so we error on it.
      
      The following patch does what is done already e.g. for "x86-64" march,
      in particular default the tuning to "generic".
      
      2020-12-15  Jakub Jelinek  <jakub@redhat.com>
      
      	PR target/98274
      	* config/i386/i386-options.c (ix86_option_override_internal): Set
      	ix86_tune_string to "generic" even when it wasn't specified and
      	ix86_arch_string is "x86-64-v2", "x86-64-v3" or "x86-64-v4".
      	Remove useless {}s around a single statement.
      
      	* gcc.target/i386/pr98274.c: New test.
      69bd5d47
    • Martin Liska's avatar
      lto: set nthreads_var to 1 if it is zero · cab1b0eb
      Martin Liska authored
      gcc/ChangeLog:
      
      	PR lto/98275
      	* lto-wrapper.c: Do not use -j0 when we are unable to detect
      	number of cores.
      cab1b0eb
    • Jakub Jelinek's avatar
      i386: Make -march=x86-64-v[234] behave more like other -march= options · 59482fa1
      Jakub Jelinek authored
      If somebody has -march=x86-64-v2 (or -v3 or -v4) in $CFLAGS, $CXXFLAGS etc.,
      then -m32 or -mabi=ms stops working.
      What is worse, if one configures gcc --with-arch-64=x86-64-v2 (or -v3 or -v4),
      then -mabi=ms stops working.
      
      I think that is a nightmare user experience.  It is ok that x86-64-v[234]
      behave slightly different from other -march= options (in that they imply
      unless overridden -mtune=generic rather then -mtune= equal to the -march
      argument), but the error when one mixes it with -mabi=ms, or -m32 doesn't
      improve anything.
      It is true that the exact option set is only defined in the x86-64 psABI
      (IMHO that is a mistake too, we should copy that into the GCC documentation
      like we document it for any other -march= option), but there is no reason
      why that exact set of CPU features can't be used for other ABIs, it is just
      a set of CPU features.  If we add micro-architecture levels to the 32-bit
      ABI (I doubt anyone wants to do that, but just hypothetically), then those
      micro-architecture levels wouldn't certainly be called x86-64-v* but perhaps
      i386-v*.
      In the tests, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16 can't be expected on -m32
      not because the CPU feature wouldn't be set, but because the instruction
      is 64-bit only and 32-bit code doesn't have __int128 etc. support.
      
      2020-12-15  Jakub Jelinek  <jakub@redhat.com>
      
      	* config/i386/i386-options.c (ix86_option_override_internal): Don't
      	error on -march=x86-64-v[234] with -m32 or -mabi=ms.
      	* config.gcc: Don't reject --with-arch=x86-64-v[234] or
      	--with-arch_32=x86-64-v[234].
      	* doc/invoke.texi (-march=x86-64-v[234]): Document what the option
      	does for other ABIs.
      
      	* gcc.target/i386/x86-64-v2.c: Don't expect
      	__GCC_HAVE_SYNC_COMPARE_AND_SWAP_16 to be defined with -m32.
      	* gcc.target/i386/x86-64-v2-other.c: New test.
      	* gcc.target/i386/x86-64-v2-msabi.c: New test.
      	* gcc.target/i386/x86-64-v3.c: Fix a comment pasto.  Don't expect
      	__GCC_HAVE_SYNC_COMPARE_AND_SWAP_16 to be defined with -m32.
      	* gcc.target/i386/x86-64-v3-other.c: New test.
      	* gcc.target/i386/x86-64-v3-msabi.c: New test.
      	* gcc.target/i386/x86-64-v4.c:Don't expect
      	__GCC_HAVE_SYNC_COMPARE_AND_SWAP_16 to be defined with -m32.
      	* gcc.target/i386/x86-64-v4-other.c: New test.
      	* gcc.target/i386/x86-64-v4-msabi.c: New test.
      59482fa1
    • Martin Liska's avatar
      gcov: fix line output for nested functions in JSON format · efd08ad5
      Martin Liska authored
      gcc/ChangeLog:
      
      	PR gcov-profile/98273
      	* gcov.c (output_json_intermediate_file): Use stack of nested
      	functions for lines in a source file.  Pop when a function ends.
      efd08ad5
    • Gerald Pfeifer's avatar
      libstdc++: Update link to Unicode-HOWTO · 23900be4
      Gerald Pfeifer authored
      libstdc++-v3/ChangeLog:
      
      2020-12-15  Gerald Pfeifer  <gerald@pfeifer.com>
      
      	* doc/xml/manual/codecvt.xml: Update link to Unicode-HOWTO.
      	* doc/html/manual/facets.html: Regenerate.
      23900be4
    • Gerald Pfeifer's avatar
      doc: Update link to KernelAddressSanitizer · e51ef5f9
      Gerald Pfeifer authored
      gcc/ChangeLog:
      
      2020-12-15  Gerald Pfeifer  <gerald@pfeifer.com>
      
      	* doc/invoke.texi (Instrumentation Options): Update link to
      	KernelAddressSanitizer.
      e51ef5f9
    • Max Filippov's avatar
      gcc: xtensa: fix PR target/98285 · 06ff8708
      Max Filippov authored
      2020-12-14  Max Filippov  <jcmvbkbc@gmail.com>
      gcc/
      	* config/xtensa/predicates.md (addsubx_operand): Change accepted
      	values from 2/4/8 to 1..3.
      	* config/xtensa/xtensa.md (*addx, *subx): Change RTL pattern
      	to use 'ashift' instead of 'mult'. Update operands[3] value.
      
      gcc/testsuite/
      	* gcc.target/xtensa/pr98285.c: New test.
      06ff8708
    • Ian Lance Taylor's avatar
      go-test.exp: retain any characters at end of ERROR line · 773a4106
      Ian Lance Taylor authored
      	* go.test/go-test.exp (errchk): Retain any characters at the end
      	of the comment.
      773a4106
    • liuhongt's avatar
      Fix up testcase. · e2e0c7b8
      liuhongt authored
      gcc/testsuite
      
      	* gcc.target/i386/pr78102.c: Adjust testcase.
      e2e0c7b8
    • GCC Administrator's avatar
      Daily bump. · d52945ce
      GCC Administrator authored
      d52945ce
  2. Dec 14, 2020
Loading