diff -Nrcpad gcc-14-20260423/LAST_UPDATED gcc-14-20260430/LAST_UPDATED
*** gcc-14-20260423/LAST_UPDATED	Thu Apr 23 22:32:18 2026
--- gcc-14-20260430/LAST_UPDATED	Thu Apr 30 22:32:19 2026
***************
*** 1 ****
! Obtained from git: releases/gcc-14 revision fed7a84a1646514fcbd3d2c2274066973c7f0e7a
--- 1 ----
! Obtained from git: releases/gcc-14 revision 523f778378985933d349a1d3bdcc86c179d6670e
diff -Nrcpad gcc-14-20260423/MD5SUMS gcc-14-20260430/MD5SUMS
*** gcc-14-20260423/MD5SUMS	Thu Apr 23 22:32:22 2026
--- gcc-14-20260430/MD5SUMS	Thu Apr 30 22:32:23 2026
***************
*** 1,5 ****
  # This file contains the MD5 checksums of the files in the
! # gcc-14-20260423.tar.xz tarball.
  #
  # Besides verifying that all files in the tarball were correctly expanded,
  # it also can be used to determine if any files have changed since the
--- 1,5 ----
  # This file contains the MD5 checksums of the files in the
! # gcc-14-20260430.tar.xz tarball.
  #
  # Besides verifying that all files in the tarball were correctly expanded,
  # it also can be used to determine if any files have changed since the
*************** fc9280b02bc68e4fb1ef8d51ccc25061  Change
*** 23,29 ****
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! 78e6a0b27f4ef8238ddb1f663acbc856  LAST_UPDATED
  1671040823f8eb8436a06fdd18065e02  MAINTAINERS
  304c3887135aefa27c21292ec585b0a3  Makefile.def
  8dd93fbf2e32bcbd2faba10e3b8ba2b0  Makefile.in
--- 23,29 ----
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! 7ce15758bdb2cae9be9d04767812f1ab  LAST_UPDATED
  1671040823f8eb8436a06fdd18065e02  MAINTAINERS
  304c3887135aefa27c21292ec585b0a3  Makefile.def
  8dd93fbf2e32bcbd2faba10e3b8ba2b0  Makefile.in
*************** fb3fadb88e1d2b3b640cfaaa5ff11780  gcc/Ch
*** 541,547 ****
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! 95e72ce799f8e12b2c2223b73bd89f1f  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
--- 541,547 ----
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! 9d04bf311bde8566cb7970b7d63bb091  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
*************** ec6799501b2eb2923d5de6a66169dbd2  gcc/ON
*** 553,559 ****
  4ff8b6b00464fd6c37969f80145dca46  gcc/acinclude.m4
  496cb89e62ed3dbfd1af1db0975a4c04  gcc/aclocal.m4
  16a499934b71eb6cf7c0d6899cd6006a  gcc/ada/.gitignore
! c9b9c13c40bdfb1fbc66cc11f6e594e8  gcc/ada/ChangeLog
  683be0b07dc4f64f118fd5e8ae9cb30d  gcc/ada/ChangeLog-2001
  7aff25efb203be4136b8776cdc812956  gcc/ada/ChangeLog-2002
  cd2379152000f40157d349018fb9364d  gcc/ada/ChangeLog-2003
--- 553,559 ----
  4ff8b6b00464fd6c37969f80145dca46  gcc/acinclude.m4
  496cb89e62ed3dbfd1af1db0975a4c04  gcc/aclocal.m4
  16a499934b71eb6cf7c0d6899cd6006a  gcc/ada/.gitignore
! a2310ec3f9f94a42091ba137fc613142  gcc/ada/ChangeLog
  683be0b07dc4f64f118fd5e8ae9cb30d  gcc/ada/ChangeLog-2001
  7aff25efb203be4136b8776cdc812956  gcc/ada/ChangeLog-2002
  cd2379152000f40157d349018fb9364d  gcc/ada/ChangeLog-2003
*************** a11415c08743579770ffcc6a2a101958  gcc/ad
*** 747,754 ****
  bd7720c5f01afd52050aaa1379d7c41e  gcc/ada/exp_ch4.ads
  07415781357054497531ab80a03e3e2e  gcc/ada/exp_ch5.adb
  12989fbdd0324ccca43790feab509aca  gcc/ada/exp_ch5.ads
! ad7056e6b552c5a435d8f718db6cc93d  gcc/ada/exp_ch6.adb
! cd643f66385153e405f6ede55f10df5d  gcc/ada/exp_ch6.ads
  ed117df3c3000174fd1691b77ceaaaec  gcc/ada/exp_ch7.adb
  12c7919095c97ce108181b2f43d11e7e  gcc/ada/exp_ch7.ads
  aef4f29eb0abe39c14db4193d48cfd55  gcc/ada/exp_ch8.adb
--- 747,754 ----
  bd7720c5f01afd52050aaa1379d7c41e  gcc/ada/exp_ch4.ads
  07415781357054497531ab80a03e3e2e  gcc/ada/exp_ch5.adb
  12989fbdd0324ccca43790feab509aca  gcc/ada/exp_ch5.ads
! fad0f20027144371a4b14e851f5e8786  gcc/ada/exp_ch6.adb
! cf3c1390e15217195ce2e5a31c7f435d  gcc/ada/exp_ch6.ads
  ed117df3c3000174fd1691b77ceaaaec  gcc/ada/exp_ch7.adb
  12c7919095c97ce108181b2f43d11e7e  gcc/ada/exp_ch7.ads
  aef4f29eb0abe39c14db4193d48cfd55  gcc/ada/exp_ch8.adb
*************** ab048777605cd1eaf9e72d7870a2f0b0  gcc/ad
*** 2896,2902 ****
  5312c92c9cf432c51de28985511eabb4  gcc/ada/sem_ch9.ads
  ae5a773c940f7d18496faa6dea15ae3a  gcc/ada/sem_dim.adb
  a2d500c96e386078290596a7c11fc749  gcc/ada/sem_dim.ads
! aecb842d76fc399f8fc370849a9d9129  gcc/ada/sem_disp.adb
  fde7a59c931876f5221d8c088f4e9cb9  gcc/ada/sem_disp.ads
  3ed683f4141f83ceb764aef056e360ac  gcc/ada/sem_dist.adb
  744cc764c9e676171c6c9c2a7b7540e6  gcc/ada/sem_dist.ads
--- 2896,2902 ----
  5312c92c9cf432c51de28985511eabb4  gcc/ada/sem_ch9.ads
  ae5a773c940f7d18496faa6dea15ae3a  gcc/ada/sem_dim.adb
  a2d500c96e386078290596a7c11fc749  gcc/ada/sem_dim.ads
! 20fdc60507e4ce5002b1bc493dd9753b  gcc/ada/sem_disp.adb
  fde7a59c931876f5221d8c088f4e9cb9  gcc/ada/sem_disp.ads
  3ed683f4141f83ceb764aef056e360ac  gcc/ada/sem_dist.adb
  744cc764c9e676171c6c9c2a7b7540e6  gcc/ada/sem_dist.ads
*************** f805d118929dd79f6bd4dc75c77c968b  gcc/co
*** 3543,3549 ****
  f68c4ef34df906d99e11d3cda55c8375  gcc/config/arm/arm-tune.md
  718f4f1564d9199b9553b77b6f25bbe4  gcc/config/arm/arm.cc
  d627c9b9062533642a559523336390dc  gcc/config/arm/arm.h
! c70d9422307efae4f75fd6d14a67f113  gcc/config/arm/arm.md
  aafba6eef2fa39161c820beb71e74b41  gcc/config/arm/arm.opt
  d96083967a30e6eb0f75d624af2d831a  gcc/config/arm/arm.opt.urls
  6fdbac79ee439703b0df3733036e4839  gcc/config/arm/arm1020e.md
--- 3543,3549 ----
  f68c4ef34df906d99e11d3cda55c8375  gcc/config/arm/arm-tune.md
  718f4f1564d9199b9553b77b6f25bbe4  gcc/config/arm/arm.cc
  d627c9b9062533642a559523336390dc  gcc/config/arm/arm.h
! bd111e7f974f27bb5a1f63b05bad1dd6  gcc/config/arm/arm.md
  aafba6eef2fa39161c820beb71e74b41  gcc/config/arm/arm.opt
  d96083967a30e6eb0f75d624af2d831a  gcc/config/arm/arm.opt.urls
  6fdbac79ee439703b0df3733036e4839  gcc/config/arm/arm1020e.md
*************** d3a23e380b7e99d29fe507d5a583e69a  gcc/co
*** 3565,3571 ****
  79b208f586b8b79a87d0e0d183a9859b  gcc/config/arm/arm_vfp_builtins.def
  44aabc3fd5a327f292ac676c9f8d4e0f  gcc/config/arm/bpabi.h
  ad6e059da4221423e47cd82a275f8334  gcc/config/arm/common.md
! c49b9146cf22c71d29acf0f62892637c  gcc/config/arm/constraints.md
  b7fc6c4cf02e42b67011a38656264b4d  gcc/config/arm/cortex-a15-neon.md
  95acd1f05e4d798ed609c28a7b3ebd2d  gcc/config/arm/cortex-a15.md
  02d2088e0a2904b232a292e7102ba647  gcc/config/arm/cortex-a17-neon.md
--- 3565,3571 ----
  79b208f586b8b79a87d0e0d183a9859b  gcc/config/arm/arm_vfp_builtins.def
  44aabc3fd5a327f292ac676c9f8d4e0f  gcc/config/arm/bpabi.h
  ad6e059da4221423e47cd82a275f8334  gcc/config/arm/common.md
! b382ae68ae3f155921129ca982bd5b13  gcc/config/arm/constraints.md
  b7fc6c4cf02e42b67011a38656264b4d  gcc/config/arm/cortex-a15-neon.md
  95acd1f05e4d798ed609c28a7b3ebd2d  gcc/config/arm/cortex-a15.md
  02d2088e0a2904b232a292e7102ba647  gcc/config/arm/cortex-a17-neon.md
*************** f962d4dc02fe6670fc9ae9ee9d71d55b  gcc/co
*** 3638,3644 ****
  89fac906bcc09977ddb7f431282695ae  gcc/config/arm/unknown-elf.h
  cbf753ccacebb14f1ea069d00bd48785  gcc/config/arm/unspecs.md
  03d75586d505d936b481025195452fcc  gcc/config/arm/vec-common.md
! 0ecf35b93594826345444b0a0d454df4  gcc/config/arm/vfp.md
  37331c99c09350c25917558f4d26ecee  gcc/config/arm/vfp11.md
  7ad219ccd35d0a98f29c2f2a4552334c  gcc/config/arm/vxworks.h
  0d3ded2f97981b036dd0ae73cfa93a0c  gcc/config/arm/vxworks.opt
--- 3638,3644 ----
  89fac906bcc09977ddb7f431282695ae  gcc/config/arm/unknown-elf.h
  cbf753ccacebb14f1ea069d00bd48785  gcc/config/arm/unspecs.md
  03d75586d505d936b481025195452fcc  gcc/config/arm/vec-common.md
! d237e72422cceeac3321fa360f244887  gcc/config/arm/vfp.md
  37331c99c09350c25917558f4d26ecee  gcc/config/arm/vfp11.md
  7ad219ccd35d0a98f29c2f2a4552334c  gcc/config/arm/vxworks.h
  0d3ded2f97981b036dd0ae73cfa93a0c  gcc/config/arm/vxworks.opt
*************** c6c1c759a610556eca59987a77084f45  gcc/te
*** 64961,64967 ****
  53e11cdab71cca17d6fdaf4ed9224a30  gcc/testsuite/gcc.target/arm/armv8_2-fp16-arith-1.c
  5790d3efd74c1ddf5aeb2e8743385c60  gcc/testsuite/gcc.target/arm/armv8_2-fp16-arith-2.c
  e760d8a00f0e4b4ceedce756dc61f6c1  gcc/testsuite/gcc.target/arm/armv8_2-fp16-conv-1.c
! 2f54b8d253156a2be1577d30ce773f07  gcc/testsuite/gcc.target/arm/armv8_2-fp16-move-1.c
  8411d0e77a0611b1b9aef23030254fbe  gcc/testsuite/gcc.target/arm/armv8_2-fp16-move-2.c
  43365e7220d0c89c221983b0088e64ec  gcc/testsuite/gcc.target/arm/armv8_2-fp16-neon-1.c
  dc2445fc2ce3b9779058431b1cfb377b  gcc/testsuite/gcc.target/arm/armv8_2-fp16-neon-2.c
--- 64961,64967 ----
  53e11cdab71cca17d6fdaf4ed9224a30  gcc/testsuite/gcc.target/arm/armv8_2-fp16-arith-1.c
  5790d3efd74c1ddf5aeb2e8743385c60  gcc/testsuite/gcc.target/arm/armv8_2-fp16-arith-2.c
  e760d8a00f0e4b4ceedce756dc61f6c1  gcc/testsuite/gcc.target/arm/armv8_2-fp16-conv-1.c
! 1e4a9e637ba2067c00eb31092a65dfb4  gcc/testsuite/gcc.target/arm/armv8_2-fp16-move-1.c
  8411d0e77a0611b1b9aef23030254fbe  gcc/testsuite/gcc.target/arm/armv8_2-fp16-move-2.c
  43365e7220d0c89c221983b0088e64ec  gcc/testsuite/gcc.target/arm/armv8_2-fp16-neon-1.c
  dc2445fc2ce3b9779058431b1cfb377b  gcc/testsuite/gcc.target/arm/armv8_2-fp16-neon-2.c
*************** a1fe9428938050a47df83f9ccfccf156  gcc/te
*** 68022,68027 ****
--- 68022,68028 ----
  39327fb26a438561d0617a9bfe99c59f  gcc/testsuite/gcc.target/arm/pr115188.c
  01f3623877a32b45af0d229eab49f4cf  gcc/testsuite/gcc.target/arm/pr117675.c
  82da20b2c4061a368f405dbeb1cdb341  gcc/testsuite/gcc.target/arm/pr123271.c
+ 236563c6007691d6571ab9e909e2c81e  gcc/testsuite/gcc.target/arm/pr124933.c
  3ce2c6a399da67ae36390d522e1f1296  gcc/testsuite/gcc.target/arm/pr19599.c
  3425143e88f989a8f52f345e6237106a  gcc/testsuite/gcc.target/arm/pr26702.c
  fc0dd660f56108005b4f0b142e94d10d  gcc/testsuite/gcc.target/arm/pr37780_1.c
*************** b2c755599d8ed47e117bbf82c6a6b12f  gcc/te
*** 105971,105976 ****
--- 105972,105979 ----
  35dc80c5b5ed756d2cc1c930f85a4456  gcc/testsuite/gnat.dg/task3_pkg2.ads
  c32b560114a348976d0298262741b6ea  gcc/testsuite/gnat.dg/task4.adb
  70bd634f46004ffa96eb4070f11592ef  gcc/testsuite/gnat.dg/task5.adb
+ 2eaa9f1d0d240e9dd1698e9211bd233e  gcc/testsuite/gnat.dg/task6.adb
+ b348428ccd472508457f80ed401511e5  gcc/testsuite/gnat.dg/task6.ads
  029ef2213e407fd423e0ce3d19a60a80  gcc/testsuite/gnat.dg/task_name.adb
  2d192de9da9a98892aa2c605de044591  gcc/testsuite/gnat.dg/task_name.ads
  91463323d692d06c9031a056ff412414  gcc/testsuite/gnat.dg/task_stack_align.adb
*************** a418f2a12bc2c1ec76cd9ee5444af0f5  gcc/te
*** 108474,108480 ****
  a27ad08178b52070e08d7c22e2387cef  gcc/testsuite/lib/scanwpaipa.exp
  dbc2129f79274a41f1128a281f81019b  gcc/testsuite/lib/target-libpath.exp
  c103f8a73343128b0e916a2296fc1ac1  gcc/testsuite/lib/target-supports-dg.exp
! 2ba283f83489466553a049b75a3f7ea6  gcc/testsuite/lib/target-supports.exp
  d84983886d0708605af864226f6beac0  gcc/testsuite/lib/target-utils.exp
  64f7537fc29d3ab37e44b5aaf37c5fb4  gcc/testsuite/lib/timeout-dg.exp
  75cfa45901d445df376345935b79fa37  gcc/testsuite/lib/timeout.exp
--- 108477,108483 ----
  a27ad08178b52070e08d7c22e2387cef  gcc/testsuite/lib/scanwpaipa.exp
  dbc2129f79274a41f1128a281f81019b  gcc/testsuite/lib/target-libpath.exp
  c103f8a73343128b0e916a2296fc1ac1  gcc/testsuite/lib/target-supports-dg.exp
! 7119942b0d94ac26de9a25bbdfd186e1  gcc/testsuite/lib/target-supports.exp
  d84983886d0708605af864226f6beac0  gcc/testsuite/lib/target-utils.exp
  64f7537fc29d3ab37e44b5aaf37c5fb4  gcc/testsuite/lib/timeout-dg.exp
  75cfa45901d445df376345935b79fa37  gcc/testsuite/lib/timeout.exp
*************** a4d7b3990585330fb0fbc99e5afaf019  libsan
*** 123752,123758 ****
  0865bdc585846a1c9cfa5d1df0517d02  libsanitizer/sanitizer_common/sanitizer_platform_limits_netbsd.h
  d41d8cd98f00b204e9800998ecf8427e  libsanitizer/sanitizer_common/sanitizer_platform_limits_openbsd.cpp
  d41d8cd98f00b204e9800998ecf8427e  libsanitizer/sanitizer_common/sanitizer_platform_limits_openbsd.h
! 5f00dd4cf135e46663fd6d3b724b06c1  libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
  621396f7d74ae5075a70cd01f5daac83  libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
  711b54008ada7faff939a95e325b185b  libsanitizer/sanitizer_common/sanitizer_platform_limits_solaris.cpp
  ab1ad414331f77e459da9a32b756cbac  libsanitizer/sanitizer_common/sanitizer_platform_limits_solaris.h
--- 123755,123761 ----
  0865bdc585846a1c9cfa5d1df0517d02  libsanitizer/sanitizer_common/sanitizer_platform_limits_netbsd.h
  d41d8cd98f00b204e9800998ecf8427e  libsanitizer/sanitizer_common/sanitizer_platform_limits_openbsd.cpp
  d41d8cd98f00b204e9800998ecf8427e  libsanitizer/sanitizer_common/sanitizer_platform_limits_openbsd.h
! 724970b4f29581a62f244e93bd147d1e  libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
  621396f7d74ae5075a70cd01f5daac83  libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
  711b54008ada7faff939a95e325b185b  libsanitizer/sanitizer_common/sanitizer_platform_limits_solaris.cpp
  ab1ad414331f77e459da9a32b756cbac  libsanitizer/sanitizer_common/sanitizer_platform_limits_solaris.h
diff -Nrcpad gcc-14-20260423/gcc/DATESTAMP gcc-14-20260430/gcc/DATESTAMP
*** gcc-14-20260423/gcc/DATESTAMP	Thu Apr 23 22:32:05 2026
--- gcc-14-20260430/gcc/DATESTAMP	Thu Apr 30 22:32:05 2026
***************
*** 1 ****
! 20260423
--- 1 ----
! 20260430
diff -Nrcpad gcc-14-20260423/gcc/ada/ChangeLog gcc-14-20260430/gcc/ada/ChangeLog
*** gcc-14-20260423/gcc/ada/ChangeLog	Thu Apr 23 22:32:05 2026
--- gcc-14-20260430/gcc/ada/ChangeLog	Thu Apr 30 22:32:05 2026
***************
*** 1,3 ****
--- 1,11 ----
+ 2026-04-29  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/125044
+ 	* exp_ch6.ads (Needs_BIP_Task_Actuals): Adjust description.
+ 	* exp_ch6.adb (Expand_N_Extended_Return_Statement): Move activation
+ 	chain for every build-in-place function with task formal parameters
+ 	when the type of the return object might have tasks.
+ 
  2026-04-12  Eric Botcazou  <ebotcazou@adacore.com>
  
  	PR ada/124836
diff -Nrcpad gcc-14-20260423/gcc/ada/exp_ch6.adb gcc-14-20260430/gcc/ada/exp_ch6.adb
*** gcc-14-20260423/gcc/ada/exp_ch6.adb	Thu Apr 23 22:32:05 2026
--- gcc-14-20260430/gcc/ada/exp_ch6.adb	Thu Apr 30 22:32:05 2026
*************** package body Exp_Ch6 is
*** 5541,5548 ****
        Loc          : constant Source_Ptr := Sloc (N);
        Func_Id      : constant Entity_Id :=
                         Return_Applies_To (Return_Statement_Entity (N));
-       Is_BIP_Func  : constant Boolean   :=
-                        Is_Build_In_Place_Function (Func_Id);
        Ret_Obj_Id   : constant Entity_Id :=
                         First_Entity (Return_Statement_Entity (N));
        Ret_Obj_Decl : constant Node_Id   := Parent (Ret_Obj_Id);
--- 5541,5546 ----
*************** package body Exp_Ch6 is
*** 5671,5682 ****
           --  master. But Move_Activation_Chain updates their master to be that
           --  of the caller, so they will not be terminated unless the return
           --  statement completes unsuccessfully due to exception, abort, goto,
!          --  or exit. As a formality, we test whether the function requires the
!          --  result to be built in place, though that's necessarily true for
!          --  the case of result types with task parts.
! 
!          if Is_BIP_Func and then Has_Task (Ret_Typ) then
  
              --  The return expression is an aggregate for a complex type which
              --  contains tasks. This particular case is left unexpanded since
              --  the regular expansion would insert all temporaries and
--- 5669,5681 ----
           --  master. But Move_Activation_Chain updates their master to be that
           --  of the caller, so they will not be terminated unless the return
           --  statement completes unsuccessfully due to exception, abort, goto,
!          --  or exit. Note that we test that the function is both BIP and has
!          --  implicit task formal parameters, because not all functions whose
!          --  result type contains tasks have them (see Needs_BIP_Task_Actuals).
  
+          if Is_Build_In_Place_Function (Func_Id)
+            and then Needs_BIP_Task_Actuals (Func_Id)
+          then
              --  The return expression is an aggregate for a complex type which
              --  contains tasks. This particular case is left unexpanded since
              --  the regular expansion would insert all temporaries and
*************** package body Exp_Ch6 is
*** 5689,5695 ****
              --  Do not move the activation chain if the return object does not
              --  contain tasks.
  
!             if Has_Task (Etype (Ret_Obj_Id)) then
                 Append_To (Stmts, Move_Activation_Chain (Func_Id));
              end if;
           end if;
--- 5688,5694 ----
              --  Do not move the activation chain if the return object does not
              --  contain tasks.
  
!             if Might_Have_Tasks (Etype (Ret_Obj_Id)) then
                 Append_To (Stmts, Move_Activation_Chain (Func_Id));
              end if;
           end if;
diff -Nrcpad gcc-14-20260423/gcc/ada/exp_ch6.ads gcc-14-20260430/gcc/ada/exp_ch6.ads
*** gcc-14-20260423/gcc/ada/exp_ch6.ads	Thu Apr 23 22:32:05 2026
--- gcc-14-20260430/gcc/ada/exp_ch6.ads	Thu Apr 30 22:32:05 2026
*************** package Exp_Ch6 is
*** 292,298 ****
     --  dispatching calls, and descendant types may require finalization.
  
     function Needs_BIP_Task_Actuals (Func_Id : Entity_Id) return Boolean;
!    --  Return True if the function returns an object of a type that has tasks.
  
     function Unqual_BIP_Iface_Function_Call (Expr : Node_Id) return Node_Id;
     --  Return the inner BIP function call removing any qualification from Expr
--- 292,299 ----
     --  dispatching calls, and descendant types may require finalization.
  
     function Needs_BIP_Task_Actuals (Func_Id : Entity_Id) return Boolean;
!    --  Ada 2005 (AI-318-02): Return True if the function needs implicit
!    --  BIP_Task_Master and BIP_Activation_Chain parameters.
  
     function Unqual_BIP_Iface_Function_Call (Expr : Node_Id) return Node_Id;
     --  Return the inner BIP function call removing any qualification from Expr
diff -Nrcpad gcc-14-20260423/gcc/ada/sem_disp.adb gcc-14-20260430/gcc/ada/sem_disp.adb
*** gcc-14-20260423/gcc/ada/sem_disp.adb	Thu Apr 23 22:32:06 2026
--- gcc-14-20260430/gcc/ada/sem_disp.adb	Thu Apr 30 22:32:05 2026
*************** package body Sem_Disp is
*** 306,314 ****
           Ctrl_Type := Check_Controlling_Type (Etype (Formal), Subp);
  
           if Present (Ctrl_Type) then
! 
!             --  Obtain the full type in case we are looking at an incomplete
!             --  view.
  
              if Ekind (Ctrl_Type) = E_Incomplete_Type
                and then Present (Full_View (Ctrl_Type))
--- 306,312 ----
           Ctrl_Type := Check_Controlling_Type (Etype (Formal), Subp);
  
           if Present (Ctrl_Type) then
!             --  Use the full view for an incomplete type
  
              if Ekind (Ctrl_Type) = E_Incomplete_Type
                and then Present (Full_View (Ctrl_Type))
*************** package body Sem_Disp is
*** 316,323 ****
                 Ctrl_Type := Full_View (Ctrl_Type);
              end if;
  
!             --  When controlling type is concurrent and declared within a
!             --  generic or inside an instance use corresponding record type.
  
              if Is_Concurrent_Type (Ctrl_Type)
                and then Present (Corresponding_Record_Type (Ctrl_Type))
--- 314,320 ----
                 Ctrl_Type := Full_View (Ctrl_Type);
              end if;
  
!             --  Use the corresponding record type for a concurrent type
  
              if Is_Concurrent_Type (Ctrl_Type)
                and then Present (Corresponding_Record_Type (Ctrl_Type))
*************** package body Sem_Disp is
*** 392,397 ****
--- 389,410 ----
           Ctrl_Type := Check_Controlling_Type (Etype (Subp), Subp);
  
           if Present (Ctrl_Type) then
+             --  Use the full view for an incomplete type
+ 
+             if Ekind (Ctrl_Type) = E_Incomplete_Type
+               and then Present (Full_View (Ctrl_Type))
+             then
+                Ctrl_Type := Full_View (Ctrl_Type);
+             end if;
+ 
+             --  Use the corresponding record type for a concurrent type
+ 
+             if Is_Concurrent_Type (Ctrl_Type)
+               and then Present (Corresponding_Record_Type (Ctrl_Type))
+             then
+                Ctrl_Type := Corresponding_Record_Type (Ctrl_Type);
+             end if;
+ 
              if Ctrl_Type = Typ then
                 Set_Has_Controlling_Result (Subp);
  
diff -Nrcpad gcc-14-20260423/gcc/config/arm/arm.md gcc-14-20260430/gcc/config/arm/arm.md
*** gcc-14-20260423/gcc/config/arm/arm.md	Thu Apr 23 22:32:06 2026
--- gcc-14-20260430/gcc/config/arm/arm.md	Thu Apr 30 22:32:06 2026
***************
*** 10150,10155 ****
--- 10150,10156 ----
     (set_attr "type" "multiple")]
  )
  
+ ;; (pred4 && pred5) != 0
  (define_insn "*cmp_ite0"
    [(set (match_operand 6 "dominant_cc_register" "")
  	(compare
***************
*** 10166,10172 ****
  	        "lPy,rI,L,lPy,lPy,rI,rI,L,L")])
  	  (const_int 0))
  	 (const_int 0)))]
!   "TARGET_32BIT"
    "*
    {
      static const char * const cmp1[NUM_OF_COND_CMP][2] =
--- 10167,10177 ----
  	        "lPy,rI,L,lPy,lPy,rI,rI,L,L")])
  	  (const_int 0))
  	 (const_int 0)))]
!   "TARGET_32BIT
!    && GET_MODE (operands[6]) != CCmode
!    && (GET_MODE (operands[6])
!        == arm_select_dominance_cc_mode (operands[4], operands[5],
! 					DOM_CC_X_AND_Y))"
    "*
    {
      static const char * const cmp1[NUM_OF_COND_CMP][2] =
***************
*** 10233,10238 ****
--- 10238,10244 ----
             (const_int 10))])]
  )
  
+ ;; (!pred4 || pred5) != 0
  (define_insn "*cmp_ite1"
    [(set (match_operand 6 "dominant_cc_register" "")
  	(compare
***************
*** 10249,10255 ****
  	        "lPy,rI,L,lPy,lPy,rI,rI,L,L")])
  	  (const_int 1))
  	 (const_int 0)))]
!   "TARGET_32BIT"
    "*
    {
      static const char * const cmp1[NUM_OF_COND_CMP][2] =
--- 10255,10265 ----
  	        "lPy,rI,L,lPy,lPy,rI,rI,L,L")])
  	  (const_int 1))
  	 (const_int 0)))]
!   "TARGET_32BIT
!    && GET_MODE (operands[6]) != CCmode
!    && (GET_MODE (operands[6])
!        == arm_select_dominance_cc_mode (operands[4], operands[5],
! 					DOM_CC_NX_OR_Y))"
    "*
    {
      static const char * const cmp1[NUM_OF_COND_CMP][2] =
***************
*** 10332,10338 ****
  	    (match_operand:SI 3 "arm_add_operand"
  	        "lPy,rI,L,lPy,lPy,r,rI,rI,L,L")]))
  	 (const_int 0)))]
!   "TARGET_32BIT"
    "*
    {
      static const char *const cmp1[NUM_OF_COND_CMP][2] =
--- 10342,10352 ----
  	    (match_operand:SI 3 "arm_add_operand"
  	        "lPy,rI,L,lPy,lPy,r,rI,rI,L,L")]))
  	 (const_int 0)))]
!   "TARGET_32BIT
!    && GET_MODE (operands[6]) != CCmode
!    && (GET_MODE (operands[6])
!        == arm_select_dominance_cc_mode (operands[4], operands[5],
! 					DOM_CC_X_AND_Y))"
    "*
    {
      static const char *const cmp1[NUM_OF_COND_CMP][2] =
***************
*** 10417,10423 ****
  	    (match_operand:SI 3 "arm_add_operand"
  	        "lPy,rI,L,lPy,lPy,r,rI,rI,L,L")]))
  	 (const_int 0)))]
!   "TARGET_32BIT"
    "*
    {
      static const char *const cmp1[NUM_OF_COND_CMP][2] =
--- 10431,10441 ----
  	    (match_operand:SI 3 "arm_add_operand"
  	        "lPy,rI,L,lPy,lPy,r,rI,rI,L,L")]))
  	 (const_int 0)))]
!   "TARGET_32BIT
!    && GET_MODE (operands[6]) != CCmode
!    && (GET_MODE (operands[6])
!        == arm_select_dominance_cc_mode (operands[4], operands[5],
! 					DOM_CC_X_OR_Y))"
    "*
    {
      static const char *const cmp1[NUM_OF_COND_CMP][2] =
diff -Nrcpad gcc-14-20260423/gcc/config/arm/constraints.md gcc-14-20260430/gcc/config/arm/constraints.md
*** gcc-14-20260423/gcc/config/arm/constraints.md	Thu Apr 23 22:32:06 2026
--- gcc-14-20260430/gcc/config/arm/constraints.md	Thu Apr 30 22:32:06 2026
***************
*** 471,482 ****
  (define_memory_constraint "Uj"
   "@internal
    In ARM/Thumb-2 state a VFP load/store address that supports writeback
!   for Neon but not for MVE"
   (and (match_code "mem")
!       (match_test "TARGET_32BIT")
!       (match_test "TARGET_HAVE_MVE
!                    ? arm_coproc_mem_operand_no_writeback (op)
!                    : neon_vector_mem_operand (op, 2, true)")))
  
  (define_memory_constraint "Uy"
   "@internal
--- 471,482 ----
  (define_memory_constraint "Uj"
   "@internal
    In ARM/Thumb-2 state a VFP load/store address that supports writeback
!   for Neon but not for MVE or VFP_FP16INST"
   (and (match_code "mem")
!       (match_test "TARGET_32BIT
! 		   && (arm_coproc_mem_operand_no_writeback (op)
! 		       || (TARGET_NEON_FP16
! 			   && neon_vector_mem_operand (op, 2, true)))")))
  
  (define_memory_constraint "Uy"
   "@internal
diff -Nrcpad gcc-14-20260423/gcc/config/arm/vfp.md gcc-14-20260430/gcc/config/arm/vfp.md
*** gcc-14-20260423/gcc/config/arm/vfp.md	Thu Apr 23 22:32:06 2026
--- gcc-14-20260430/gcc/config/arm/vfp.md	Thu Apr 30 22:32:06 2026
***************
*** 424,435 ****
      case 6: /* S register from immediate.  */
        return \"vmov.f16\\t%0, %1\t%@ __<fporbf>\";
      case 7: /* S register from memory.  */
!       if (TARGET_HAVE_MVE)
  	return \"vldr.16\\t%0, %1\";
        else
  	return \"vld1.16\\t{%z0}, %A1\";
      case 8: /* Memory from S register.  */
!       if (TARGET_HAVE_MVE)
  	return \"vstr.16\\t%1, %0\";
        else
  	return \"vst1.16\\t{%z1}, %A0\";
--- 424,435 ----
      case 6: /* S register from immediate.  */
        return \"vmov.f16\\t%0, %1\t%@ __<fporbf>\";
      case 7: /* S register from memory.  */
!       if (!auto_inc_p (XEXP (operands[1], 0)))
  	return \"vldr.16\\t%0, %1\";
        else
  	return \"vld1.16\\t{%z0}, %A1\";
      case 8: /* Memory from S register.  */
!       if (!auto_inc_p (XEXP (operands[0], 0)))
  	return \"vstr.16\\t%1, %0\";
        else
  	return \"vst1.16\\t{%z1}, %A0\";
diff -Nrcpad gcc-14-20260423/gcc/testsuite/gcc.target/arm/armv8_2-fp16-move-1.c gcc-14-20260430/gcc/testsuite/gcc.target/arm/armv8_2-fp16-move-1.c
*** gcc-14-20260423/gcc/testsuite/gcc.target/arm/armv8_2-fp16-move-1.c	Thu Apr 23 22:32:10 2026
--- gcc-14-20260430/gcc/testsuite/gcc.target/arm/armv8_2-fp16-move-1.c	Thu Apr 30 22:32:10 2026
***************
*** 8,14 ****
  /*
  **test_load_1:
  **	...
! **	vld1.16	{d[0-9]+\[[0-9]+\]}, \[r[0-9]+\]
  **	...
  */
  __fp16
--- 8,14 ----
  /*
  **test_load_1:
  **	...
! **	vldr.16	s[0-9]+, \[r[0-9]+\]
  **	...
  */
  __fp16
*************** test_load_1 (__fp16* a)
*** 20,26 ****
  /*
  **test_load_2:
  **	...
! **	vld1.16	{d[0-9]+\[[0-9]+\]}, \[r[0-9]+\]
  **	...
  */
  __fp16
--- 20,26 ----
  /*
  **test_load_2:
  **	...
! **	vldr.16	s[0-9]+, \[r[0-9]+\]
  **	...
  */
  __fp16
*************** test_load_2 (__fp16* a, int i)
*** 32,38 ****
  /*
  **test_store_1:
  **	...
! **	vst1.16	{d[0-9]+\[[0-9]+\]}, \[r[0-9]+\]
  **	...
  */
  void
--- 32,38 ----
  /*
  **test_store_1:
  **	...
! **	vstr.16	s[0-9]+, \[r[0-9]+\]
  **	...
  */
  void
*************** test_store_1 (__fp16* a, __fp16 b)
*** 44,50 ****
  /*
  **test_store_2:
  **	...
! **	vst1.16	{d[0-9]+\[[0-9]+\]}, \[r[0-9]+\]
  **	...
  */
  void
--- 44,50 ----
  /*
  **test_store_2:
  **	...
! **	vstr.16	s[0-9]+, \[r[0-9]+\]
  **	...
  */
  void
*************** test_store_2 (__fp16* a, int i, __fp16 b
*** 56,64 ****
  /*
  **test_load_store_1:
  **	...
! **	vld1.16	{d[0-9]+\[[0-9]+\]}, \[r[0-9]+\]
  **	...
! **	vst1.16	{d[0-9]+\[[0-9]+\]}, \[r[0-9]+\]
  **	...
  */
  __fp16
--- 56,64 ----
  /*
  **test_load_store_1:
  **	...
! **	vldr.16	s[0-9]+, \[r[0-9]+\]
  **	...
! **	vstr.16	s[0-9]+, \[r[0-9]+\]
  **	...
  */
  __fp16
*************** test_load_store_1 (__fp16* a, int i, __f
*** 70,78 ****
  /*
  **test_load_store_2:
  **	...
! **	vld1.16	{d[0-9]+\[[0-9]+\]}, \[r[0-9]+\]
  **	...
! **	vst1.16	{d[0-9]+\[[0-9]+\]}, \[r[0-9]+\]
  **	...
  */
  __fp16
--- 70,78 ----
  /*
  **test_load_store_2:
  **	...
! **	vldr.16	s[0-9]+, \[r[0-9]+\, #4]
  **	...
! **	vstr.16	s[0-9]+, \[r[0-9]+\]
  **	...
  */
  __fp16
diff -Nrcpad gcc-14-20260423/gcc/testsuite/gcc.target/arm/pr124933.c gcc-14-20260430/gcc/testsuite/gcc.target/arm/pr124933.c
*** gcc-14-20260423/gcc/testsuite/gcc.target/arm/pr124933.c	Thu Jan  1 00:00:00 1970
--- gcc-14-20260430/gcc/testsuite/gcc.target/arm/pr124933.c	Thu Apr 30 22:32:10 2026
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-require-effective-target arm_arch_v8_1m_main_fp_hard_ok } */
+ /* { dg-add-options arm_arch_v8_1m_main_fp_hard } */
+ /* { dg-additional-options "-O2 -mfp16-format=ieee" } */
+ /* { dg-do assemble } */
+ 
+ __fp16 f;
+ __fp16 g;
+ 
+ void __attribute__((noinline,noclone)) h (__fp16 x)
+ {
+   g = x;
+ }
+ 
+ void __attribute__((noinline,noclone)) i ()
+ {
+   h (f);
+ }
diff -Nrcpad gcc-14-20260423/gcc/testsuite/gnat.dg/task6.adb gcc-14-20260430/gcc/testsuite/gnat.dg/task6.adb
*** gcc-14-20260423/gcc/testsuite/gnat.dg/task6.adb	Thu Jan  1 00:00:00 1970
--- gcc-14-20260430/gcc/testsuite/gnat.dg/task6.adb	Thu Apr 30 22:32:13 2026
***************
*** 0 ****
--- 1,15 ----
+ -- { dg-do compile }
+ 
+ package body Task6 is
+ 
+    task body T is
+    begin
+      accept E;
+    end T;
+ 
+    function Make return T is
+    begin
+      return Ret : T;
+    end;
+ 
+ end Task6;
diff -Nrcpad gcc-14-20260423/gcc/testsuite/gnat.dg/task6.ads gcc-14-20260430/gcc/testsuite/gnat.dg/task6.ads
*** gcc-14-20260423/gcc/testsuite/gnat.dg/task6.ads	Thu Jan  1 00:00:00 1970
--- gcc-14-20260430/gcc/testsuite/gnat.dg/task6.ads	Thu Apr 30 22:32:13 2026
***************
*** 0 ****
--- 1,13 ----
+ package Task6 is
+ 
+   type Int is task interface;
+ 
+   procedure E (T: Int) is abstract;
+ 
+   task type T is new Int with
+     entry E;
+   end T;
+ 
+   function Make return T;
+ 
+ end Task6;
diff -Nrcpad gcc-14-20260423/gcc/testsuite/lib/target-supports.exp gcc-14-20260430/gcc/testsuite/lib/target-supports.exp
*** gcc-14-20260423/gcc/testsuite/lib/target-supports.exp	Thu Apr 23 22:32:12 2026
--- gcc-14-20260430/gcc/testsuite/lib/target-supports.exp	Thu Apr 30 22:32:13 2026
*************** foreach { armfunc armflag armdefs } {
*** 5687,5692 ****
--- 5687,5693 ----
  	v8_1m_main "-march=armv8.1-m.main+fp -mthumb" __ARM_ARCH_8M_MAIN__
  	v8_1m_main_pacbti "-march=armv8.1-m.main+pacbti+fp -mthumb"
  		"__ARM_ARCH_8M_MAIN__ && __ARM_FEATURE_BTI && __ARM_FEATURE_PAUTH"
+ 	v8_1m_main_fp_hard "-march=armv8.1-m.main+pacbti+fp -mthumb -mfpu=auto -mfloat-abi=hard" "__ARM_ARCH_8M_MAIN__ && (__ARM_FP & 2)"
  	v9a "-march=armv9-a+simd" __ARM_ARCH_9A__ } {
      eval [string map [list FUNC $armfunc FLAG $armflag DEFS $armdefs ] {
  	proc check_effective_target_arm_arch_FUNC_ok { } {
diff -Nrcpad gcc-14-20260423/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp gcc-14-20260430/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
*** gcc-14-20260423/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp	Thu Apr 23 22:32:14 2026
--- gcc-14-20260430/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp	Thu Apr 30 22:32:15 2026
*************** typedef struct user_fpregs elf_fpregset_
*** 145,160 ****
  #if defined(__mips64)
  # include <sys/procfs.h>
  #endif
! #include <sys/user.h>
! #include <linux/if_eql.h>
! #include <linux/if_plip.h>
! #include <linux/lp.h>
! #include <linux/mroute.h>
! #include <linux/mroute6.h>
! #include <linux/scc.h>
! #include <linux/serial.h>
! #include <sys/msg.h>
! #include <sys/ipc.h>
  #endif  // SANITIZER_ANDROID
  
  #include <link.h>
--- 145,159 ----
  #if defined(__mips64)
  # include <sys/procfs.h>
  #endif
! #      include <linux/if_eql.h>
! #      include <linux/if_plip.h>
! #      include <linux/lp.h>
! #      include <linux/mroute.h>
! #      include <linux/mroute6.h>
! #      include <linux/serial.h>
! #      include <sys/ipc.h>
! #      include <sys/msg.h>
! #      include <sys/user.h>
  #endif  // SANITIZER_ANDROID
  
  #include <link.h>
*************** unsigned struct_ElfW_Phdr_sz = sizeof(El
*** 517,524 ****
    unsigned struct_kbsentry_sz = sizeof(struct kbsentry);
    unsigned struct_mtconfiginfo_sz = sizeof(struct mtconfiginfo);
    unsigned struct_nr_parms_struct_sz = sizeof(struct nr_parms_struct);
-   unsigned struct_scc_modem_sz = sizeof(struct scc_modem);
-   unsigned struct_scc_stat_sz = sizeof(struct scc_stat);
    unsigned struct_serial_multiport_struct_sz
        = sizeof(struct serial_multiport_struct);
    unsigned struct_serial_struct_sz = sizeof(struct serial_struct);
--- 516,521 ----
