Skip to content
Snippets Groups Projects
  1. Jan 16, 2024
  2. Jan 15, 2024
  3. Jan 12, 2024
  4. Jan 10, 2024
  5. Jan 09, 2024
    • James K. Lowden's avatar
      remangle program names · 8086565d
      James K. Lowden authored
      8086565d
    • James K. Lowden's avatar
      fixed all but last bug · 4752b60d
      James K. Lowden authored
      4752b60d
    • James K. Lowden's avatar
    • James K. Lowden's avatar
    • James K. Lowden's avatar
      defend against duplicate program-ids · cb409623
      James K. Lowden authored
      cb409623
    • rdubner's avatar
    • rdubner's avatar
    • rdubner's avatar
      Merge branch 'parser' into bobdev · 0e20e76c
      rdubner authored
      0e20e76c
    • James K. Lowden's avatar
    • Eric Botcazou's avatar
      Fix internal error on function call returning extension of limited interface · 36ddb523
      Eric Botcazou authored
      The problem occurs when this function call is the expression of a return in
      a function returning the limited interface; in this peculiar case, there is
      a mismatch between the callee, which has BIP formals but is not a BIP call,
      and the caller, which is a BIP function, that is spotted by an assertion.
      
      This is fixed by restoring the semantics of Is_Build_In_Place_Function_Call,
      which returns again true only for calls to BIP functions, introducing the
      Is_Function_Call_With_BIP_Formals predicate, which also returns true for
      calls to functions with BIP formals that are not BIP functions, and moving
      down the assertion in Expand_Simple_Function_Return.
      
      gcc/ada/
      	PR ada/112781
      	* exp_ch6.ads (Is_Build_In_Place_Function): Adjust description.
      	* exp_ch6.adb (Is_True_Build_In_Place_Function_Call): Delete.
      	(Is_Function_Call_With_BIP_Formals): New predicate.
      	(Is_Build_In_Place_Function_Call): Restore original semantics.
      	(Expand_Call_Helper): Adjust conditions guarding the calls to
      	Add_Dummy_Build_In_Place_Actuals to above renaming.
      	(Expand_N_Extended_Return_Statement): Adjust to above renaming.
      	(Expand_Simple_Function_Return): Likewise.  Move the assertion
      	to after the transformation into an extended return statement.
      	(Make_Build_In_Place_Call_In_Allocator): Remove unreachable code.
      	(Make_Build_In_Place_Call_In_Assignment): Likewise.
      
      gcc/testsuite/
      	* gnat.dg/bip_prim_func2.adb: New test.
      	* gnat.dg/bip_prim_func2_pkg.ads, gnat.dg/bip_prim_func2_pkg.adb:
      	New helper package.
      36ddb523
    • Javier Miranda's avatar
      ada: Fix unsupported dispatching constructor call · 12f06156
      Javier Miranda authored
      Add dummy build-in-place parameters when a BIP function does not
      require the BIP parameters but it is a dispatching operation that
      inherited them.
      
      gcc/ada/
      
      	* einfo-utils.adb (Underlying_Type): Protect recursion call
      	against non-available attribute Etype.
      	* einfo.ads (Protected_Subprogram): Fix typo in documentation.
      	* exp_ch3.adb (BIP_Function_Call_Id): New subprogram.
      	(Expand_N_Object_Declaration): Improve code that evaluates if the
      	object is initialized with a BIP function call.
      	* exp_ch6.adb (Is_True_Build_In_Place_Function_Call): New
      	subprogram.
      	(Add_Task_Actuals_To_Build_In_Place_Call): Add dummy actuals if
      	the function does not require the BIP task actuals but it is a
      	dispatching operation that inherited them.
      	(Build_In_Place_Formal): Improve code to avoid never-ending loop
      	if the BIP formal is not found.
      	(Add_Dummy_Build_In_Place_Actuals): New subprogram.
      	(Expand_Call_Helper): Add calls to
      	Add_Dummy_Build_In_Place_Actuals.
      	(Expand_N_Extended_Return_Statement): Adjust assertion.
      	(Expand_Simple_Function_Return): Adjust assertion.
      	(Make_Build_In_Place_Call_In_Allocator): No action needed if the
      	called function inherited the BIP extra formals but it is not a
      	true BIP function.
      	(Make_Build_In_Place_Call_In_Assignment): Ditto.
      	* exp_intr.adb (Expand_Dispatching_Constructor_Call): Remove code
      	reporting unsupported case (since this patch adds support for it).
      	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Adding assertion
      	to ensure matching of BIP formals when setting the
      	Protected_Formal field of a protected subprogram to reference the
      	corresponding extra formal of the subprogram that implements it.
      	(Might_Need_BIP_Task_Actuals): New subprogram.
      	(Create_Extra_Formals): Improve code adding inherited extra
      	formals.
      12f06156
    • Eric Botcazou's avatar
      Fix internal error on function call returning extension of limited interface · 275de350
      Eric Botcazou authored
      This is a regression present on the mainline and 13 branch, in the form of a
      series of internal errors (3) on a function call returning the extension of
      a limited interface.
      
      This is only a partial fix for the first two assertion failures; the third
      one is the most problematic and will be dealt with separately.
      
      The first issue is in Instantiate_Type, where we use Base_Type in a specific
      case to compute the ancestor of a derived type, which will later trigger the
      assertion on line 16960 of sem_ch3.adb since Parent_Base and Generic_Actual
      are the same node.  This is changed to use Etype like in other cases around.
      
      The second issue is an unprotected use of Designated_Type on type T in
      Analyze_Explicit_Dereference, while another use in an equivalent context
      is guarded by Is_Access_Type a few lines above.
      
      gcc/ada
      	PR ada/112781
      	* sem_ch12.adb (Instantiate_Type): Use Etype instead of Base_Type
      	consistently to retrieve the ancestor for a derived type.
      	* sem_ch4.adb (Analyze_Explicit_Dereference): Test Is_Access_Type
      	consistently before accessing Designated_Type.
      275de350
    • Eric Botcazou's avatar
      Fix internal error on anonymous access type equality · 13f8c71a
      Eric Botcazou authored
      This is a small regression present on the mainline and 13 branch, in the
      form of an internal error in gigi on anonymous access type equality.  We
      now need to also accept them for anonymous access types that point to
      compatible object subtypes in the language sense.
      
      gcc/ada/
      	* gcc-interface/utils2.cc (build_binary_op) <EQ_EXPR>: Relax
      	assertion for regular pointer types.
      
      gcc/testsuite/
      	* gnat.dg/specs/anon4.ads: New test.
      13f8c71a
    • Eric Botcazou's avatar
      Fix segfault during delay slot scheduling pass · 6ddc3fe2
      Eric Botcazou authored
      This is a small regression present on the mainline and 13 branch, although
      the underlying problem has probably been there for ages, in the form of a
      segfault during the delay slot scheduling pass, for a function that falls
      through to exit without any instruction generated for the end of function.
      
      gcc/
      	PR rtl-optimization/113140
      	* reorg.cc (fill_slots_from_thread): If we are to branch after the
      	last instruction of the function, create an end label.
      
      gcc/testsuite/
      	* g++.dg/opt/delay-slot-2.C: New test.
      6ddc3fe2
    • GCC Administrator's avatar
      Daily bump. · d4905489
      GCC Administrator authored
      d4905489
  6. Jan 08, 2024
Loading