------
WITH PATCH:

diff --git a/gcc/fortran/coarray.cc b/gcc/fortran/coarray.cc
index ef8fd4e42d0..07e4f91d2d5 100644
--- a/gcc/fortran/coarray.cc
+++ b/gcc/fortran/coarray.cc
@@ -696,21 +696,11 @@ check_add_new_component (gfc_symbol *type, gfc_expr *e, 
gfc_symbol *add_data)
            check_add_new_component (type, actual->expr, add_data);
          break;
        case EXPR_FUNCTION:
-         if (!e->symtree->n.sym->attr.pure
-             && !e->symtree->n.sym->attr.elemental
-             && !(e->value.function.isym
-                  && (e->value.function.isym->pure
-                      || e->value.function.isym->elemental)))
-           /* Treat non-pure/non-elemental functions.  */
-           check_add_new_comp_handle_array (e, type, add_data);
-         else
-           for (gfc_actual_arglist *actual = e->value.function.actual; actual;
-                actual = actual->next)
-             check_add_new_component (type, actual->expr, add_data);
+         check_add_new_comp_handle_array (e, type, add_data);
          break;
        case EXPR_VARIABLE:
-           check_add_new_comp_handle_array (e, type, add_data);
-           break;
+         check_add_new_comp_handle_array (e, type, add_data);
+         break;
        case EXPR_ARRAY:
        case EXPR_PPC:
        case EXPR_STRUCTURE:
diff --git a/gcc/fortran/resolve.cc b/gcc/fortran/resolve.cc
index b1d2ff220bf..44dc485b245 100644
--- a/gcc/fortran/resolve.cc
+++ b/gcc/fortran/resolve.cc
@@ -14201,10 +14201,33 @@ start:
              code->ext.actual = gfc_get_actual_arglist ();
              code->ext.actual->expr = code->expr1;
              code->ext.actual->next = gfc_get_actual_arglist ();
-             code->ext.actual->next->expr = code->expr2;
+             if (code->expr2->expr_type != EXPR_VARIABLE
+                 && code->expr2->expr_type != EXPR_CONSTANT)
+               {
+                 /* Convert assignments of expr1[...] = expr2 into
+                       tvar = expr2
+                       expr1[...] = tvar
+                    when expr2 is not trivial.  */
+                 gfc_expr *tvar = get_temp_from_expr (code->expr2, ns);
+                 gfc_code next_code = *code;
+                 gfc_code *rhs_code
+                   = build_assignment (EXEC_ASSIGN, tvar, code->expr2, NULL,
+                                       NULL, code->expr2->where);
+                 *code = *rhs_code;
+                 code->next = rhs_code;
+                 *rhs_code = next_code;
+
+                 rhs_code->ext.actual->next->expr = tvar;
+                 rhs_code->expr1 = NULL;
+                 rhs_code->expr2 = NULL;
+               }
+             else
+               {
+                 code->ext.actual->next->expr = code->expr2;
 
-             code->expr1 = NULL;
-             code->expr2 = NULL;
+                 code->expr1 = NULL;
+                 code->expr2 = NULL;
+               }
              break;
            }
 
diff --git a/gcc/fortran/trans-decl.cc b/gcc/fortran/trans-decl.cc
index 419de2c63cf..ed5ecf99067 100644
--- a/gcc/fortran/trans-decl.cc
+++ b/gcc/fortran/trans-decl.cc
@@ -4296,10 +4296,9 @@ gfc_build_builtin_function_decls (void)
        get_identifier (PREFIX ("caf_sync_team")), ". r w w w ", void_type_node,
        4, pvoid_type_node, pint_type, pchar_type_node, size_type_node);
 
-      gfor_fndecl_caf_team_number
-       = gfc_build_library_function_decl_with_spec (
-           get_identifier (PREFIX("caf_team_number")), ". r ",
-           integer_type_node, 1, integer_type_node);
+      gfor_fndecl_caf_team_number = gfc_build_library_function_decl_with_spec (
+       get_identifier (PREFIX ("caf_team_number")), ". r ", integer_type_node,
+       1, pvoid_type_node);
 
       gfor_fndecl_caf_image_status = gfc_build_library_function_decl_with_spec 
(
        get_identifier (PREFIX ("caf_image_status")), ". r r ",
------

LAST_UPDATED: Fri Feb  6 08:04:02 UTC 2026 (revision e23390a7868)

Native configuration is aarch64-unknown-linux-gnu

                === libatomic tests ===


Running target unix

                === libatomic Summary ===

# of expected passes            54
                === libgomp tests ===


Running target unix
FAIL: libgomp.graphite/force-parallel-1.c scan-tree-dump-times graphite "2 
loops carried no dependency" 1
FAIL: libgomp.graphite/force-parallel-1.c scan-tree-dump-times optimized 
"loopfn" 8

                === libgomp Summary ===

# of expected passes            17231
# of unexpected failures        2
# of expected failures          285
# of unsupported tests          769
                === libitm tests ===


Running target unix

                === libitm Summary ===

# of expected passes            44
# of expected failures          3
# of unsupported tests          1
                === libstdc++ tests ===


Running target unix

                === libstdc++ Summary ===

# of expected passes            19418
# of expected failures          135
# of unsupported tests          785
                === gcc tests ===


Running target unix
FAIL: gcc.dg/vla-1.c scan-tree-dump-times optimized " s=> i" 2
FAIL: gcc.dg/rtl/aarch64/subs_adds_sp.c (internal compiler error: in 
df_scan_verify, at df-scan.cc:4232)
FAIL: gcc.dg/rtl/aarch64/subs_adds_sp.c (test for excess errors)
UNRESOLVED: gcc.dg/rtl/aarch64/subs_adds_sp.c scan-assembler-not adds\\\\tsp
UNRESOLVED: gcc.dg/rtl/aarch64/subs_adds_sp.c scan-assembler-not subs\\\\tsp
UNRESOLVED: gcc.dg/rtl/aarch64/subs_adds_sp.c scan-assembler-times 
adds\\\\tx[0-9]+, sp 1
UNRESOLVED: gcc.dg/rtl/aarch64/subs_adds_sp.c scan-assembler-times 
subs\\\\tx[0-9]+, sp 1
FAIL: c-c++-common/torture/pr116156-1.c   -O1  (test for excess errors)
FAIL: c-c++-common/torture/pr116156-1.c   -O2  (test for excess errors)
FAIL: c-c++-common/torture/pr116156-1.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  (test for excess errors)
FAIL: c-c++-common/torture/pr116156-1.c   -O3 -fomit-frame-pointer 
-funroll-loops -fpeel-loops -ftracer -finline-functions  (test for excess 
errors)
FAIL: c-c++-common/torture/pr116156-1.c   -O3 -g  (test for excess errors)
FAIL: c-c++-common/torture/pr116156-1.c   -Os  (test for excess errors)
FAIL: gcc.dg/tree-ssa/predcom-8.c scan-tree-dump-not pcom "Invalid sum"
FAIL: gcc.dg/vect/complex/fast-math-complex-mls-double.c -flto 
-ffat-lto-objects  scan-tree-dump vect "Found COMPLEX_ADD_ROT270"
FAIL: gcc.dg/vect/complex/fast-math-complex-mls-double.c scan-tree-dump vect 
"Found COMPLEX_ADD_ROT270"
FAIL: gcc.dg/vect/complex/fast-math-complex-mls-float.c -flto -ffat-lto-objects 
 scan-tree-dump vect "Found COMPLEX_ADD_ROT270"
FAIL: gcc.dg/vect/complex/fast-math-complex-mls-float.c scan-tree-dump vect 
"Found COMPLEX_ADD_ROT270"
FAIL: gcc.dg/vect/complex/fast-math-complex-mls-half-float.c -flto 
-ffat-lto-objects  scan-tree-dump vect "Found COMPLEX_ADD_ROT270"
FAIL: gcc.dg/vect/complex/fast-math-complex-mls-half-float.c scan-tree-dump 
vect "Found COMPLEX_ADD_ROT270"
FAIL: gcc.dg/vect/pr122475.c -flto -ffat-lto-objects execution test
FAIL: gcc.dg/vect/pr122475.c execution test
FAIL: gcc.dg/vect/vect-early-break_39.c -flto -ffat-lto-objects  
scan-tree-dump-times vect "vectorized 1 loops in function" 0
FAIL: gcc.dg/vect/vect-early-break_39.c scan-tree-dump-times vect "vectorized 1 
loops in function" 0
XPASS: gcc.dg/vect/vect-fncall-mask-math.c -flto -ffat-lto-objects  
scan-tree-dump-not ifcvt " gimple_call <expf, _2, _1>"
XPASS: gcc.dg/vect/vect-fncall-mask-math.c scan-tree-dump-not ifcvt " 
gimple_call <expf, _2, _1>"
XPASS: gcc.dg/vect/vect-reduc-dot-s8b.c -flto -ffat-lto-objects  
scan-tree-dump-times vect "vect_recog_dot_prod_pattern: detected(?:(?!Analysis 
failed).)*Analysis succeeded" 1
XPASS: gcc.dg/vect/vect-reduc-dot-s8b.c scan-tree-dump-times vect 
"vect_recog_dot_prod_pattern: detected(?:(?!Analysis failed).)*Analysis 
succeeded" 1
XPASS: gcc.dg/vect/vect-reduc-pattern-2c.c -flto -ffat-lto-objects  
scan-tree-dump-times vect "vect_recog_widen_sum_pattern: detected" 1
XPASS: gcc.dg/vect/vect-reduc-pattern-2c.c scan-tree-dump-times vect 
"vect_recog_widen_sum_pattern: detected" 1
FAIL: gcc.misc-tests/gcov-29.c gcov: 0 failures in line counts, 0 in branch 
percentages, 0 in condition/decision, 1 in prime-paths, 0 in return 
percentages, 0 in intermediate format, 0 failed in filters
FAIL: gcc.misc-tests/gcov-29.c line 826: expected 0/5 covered paths, was 0/6
FAIL: gcc.misc-tests/gcov-30.c gcov: 0 failures in line counts, 0 in branch 
percentages, 0 in condition/decision, 1 in prime-paths, 0 in return 
percentages, 0 in intermediate format, 0 failed in filters
FAIL: gcc.misc-tests/gcov-30.c line 826: expected 0/5 covered paths, was 0/6
FAIL: gcc.misc-tests/gcov-pr83813.c gcov: 1 failures in line counts, 0 in 
branch percentages, 0 in condition/decision, 0 in prime-paths, 0 in return 
percentages, 0 in intermediate format, 0 failed in filters
FAIL: gcc.misc-tests/gcov-pr83813.c line 15: is #####:should be 1
FAIL: gcc.misc-tests/gcov-pr84758.c gcov: 1 failures in line counts, 0 in 
branch percentages, 0 in condition/decision, 0 in prime-paths, 0 in return 
percentages, 0 in intermediate format, 0 failed in filters
FAIL: gcc.misc-tests/gcov-pr84758.c line 13: is 2:should be 1
FAIL: gcc.misc-tests/gcov-pr85332.c gcov: 1 failures in line counts, 0 in 
branch percentages, 0 in condition/decision, 0 in prime-paths, 0 in return 
percentages, 0 in intermediate format, 0 failed in filters
FAIL: gcc.misc-tests/gcov-pr85332.c line 10: is 2:should be 3
FAIL: gcc.misc-tests/gcov-pr85372.c gcov: 1 failures in line counts, 0 in 
branch percentages, 0 in condition/decision, 0 in prime-paths, 0 in return 
percentages, 0 in intermediate format, 0 failed in filters
FAIL: gcc.misc-tests/gcov-pr85372.c line 18: is #####:should be 1
FAIL: gcc.target/aarch64/signbitv2sf.c scan-assembler-not -2147483648
FAIL: gcc.target/aarch64/stack-protector-8.c check-function-bodies test1
FAIL: gcc.target/aarch64/stack-protector-8.c check-function-bodies test2
FAIL: gcc.target/aarch64/stack-protector-8.c check-function-bodies test3
FAIL: gcc.target/aarch64/test_frame_2.c scan-assembler-times stp\\tx30, x19, 
\\\\[sp, -[0-9]+\\\\]! 1
FAIL: gcc.target/aarch64/sme/streaming_mode_1.c  (test for errors, line 10)
FAIL: gcc.target/aarch64/sme/streaming_mode_1.c  (test for errors, line 121)
FAIL: gcc.target/aarch64/sme/streaming_mode_1.c  (test for errors, line 16)
FAIL: gcc.target/aarch64/sme/streaming_mode_1.c  (test for errors, line 30)
FAIL: gcc.target/aarch64/sme/streaming_mode_1.c  (test for errors, line 36)
FAIL: gcc.target/aarch64/sme/streaming_mode_1.c  (test for errors, line 4)
FAIL: gcc.target/aarch64/sme/streaming_mode_1.c  (test for errors, line 42)
FAIL: gcc.target/aarch64/sme/za_state_1.c  (test for errors, line 10)
FAIL: gcc.target/aarch64/sme/za_state_1.c  (test for errors, line 142)
FAIL: gcc.target/aarch64/sme/za_state_1.c  (test for errors, line 16)
FAIL: gcc.target/aarch64/sme/za_state_1.c  (test for errors, line 30)
FAIL: gcc.target/aarch64/sme/za_state_1.c  (test for errors, line 36)
FAIL: gcc.target/aarch64/sme/za_state_1.c  (test for errors, line 4)
FAIL: gcc.target/aarch64/sme/za_state_1.c  (test for errors, line 42)
FAIL: gcc.target/aarch64/sme/za_state_2.c  (test for errors, line 27)
FAIL: gcc.target/aarch64/sme/za_state_2.c  (test for errors, line 33)
FAIL: gcc.target/aarch64/sme/za_state_2.c  (test for errors, line 39)
FAIL: gcc.target/aarch64/sme/za_state_2.c  (test for errors, line 45)
FAIL: gcc.target/aarch64/sme/za_state_2.c (test for excess errors)
FAIL: gcc.target/aarch64/sme/za_state_4.c check-function-bodies test10
FAIL: gcc.target/aarch64/sme/za_state_4.c check-function-bodies test11
FAIL: gcc.target/aarch64/sme/za_state_4.c check-function-bodies test16
FAIL: gcc.target/aarch64/sme/za_state_4.c check-function-bodies test18
FAIL: gcc.target/aarch64/sme/za_state_4.c check-function-bodies test19
FAIL: gcc.target/aarch64/sme/zt0_state_5.c check-function-bodies test10
FAIL: gcc.target/aarch64/sme/zt0_state_5.c check-function-bodies test11
FAIL: gcc.target/aarch64/sve/pcs/saves_5_be.c -march=armv8.2-a+sve 
-fno-stack-protector  check-function-bodies calls_standard
FAIL: gcc.target/aarch64/sve/pcs/saves_5_le.c -march=armv8.2-a+sve 
-fno-stack-protector  check-function-bodies calls_standard

                === gcc Summary ===

# of expected passes            389604
# of unexpected failures        65
# of unexpected successes       6
# of expected failures          1867
# of unresolved testcases       4
# of unsupported tests          5511
/dev/shm/bld3975170/gcc/xgcc  version 16.0.0 20251116 (experimental) 
[devel/gfortran-test e23390a7868] (GCC) 

                === gfortran tests ===


Running target unix
FAIL: gfortran.dg/coarray/stopped_images_2.f08 -fcoarray=lib  -O2  -lcaf_shmem 
execution test

                === gfortran Summary ===

# of expected passes            73866
# of unexpected failures        1
# of expected failures          343
# of unsupported tests          208
/dev/shm/bld3975170/gcc/gfortran  version 16.0.0 20251116 (experimental) 
[devel/gfortran-test e23390a7868] (GCC) 

                === g++ tests ===


Running target unix
FAIL: g++.dg/analyzer/fanalyzer-show-events-in-system-headers-default.C  
-std=c++14  at line 12 (test for warnings, line 11)
FAIL: g++.dg/analyzer/fanalyzer-show-events-in-system-headers-default.C  
-std=c++14  at line 17 (test for warnings, line 10)
FAIL: g++.dg/analyzer/fanalyzer-show-events-in-system-headers-default.C  
-std=c++14  at line 18 (test for warnings, line 11)
FAIL: g++.dg/analyzer/fanalyzer-show-events-in-system-headers-default.C  
-std=c++14  at line 19 (test for warnings, line 11)
FAIL: g++.dg/analyzer/fanalyzer-show-events-in-system-headers-default.C  
-std=c++14  at line 20 (test for warnings, line 11)
FAIL: g++.dg/analyzer/fanalyzer-show-events-in-system-headers-default.C  
-std=c++17  at line 12 (test for warnings, line 11)
FAIL: g++.dg/analyzer/fanalyzer-show-events-in-system-headers-default.C  
-std=c++17  at line 18 (test for warnings, line 11)
FAIL: g++.dg/analyzer/fanalyzer-show-events-in-system-headers-default.C  
-std=c++17  at line 19 (test for warnings, line 11)
FAIL: g++.dg/analyzer/fanalyzer-show-events-in-system-headers-default.C  
-std=c++17  at line 20 (test for warnings, line 11)
FAIL: g++.dg/analyzer/fanalyzer-show-events-in-system-headers-no.C  -std=c++14  
at line 13 (test for warnings, line 12)
FAIL: g++.dg/analyzer/fanalyzer-show-events-in-system-headers-no.C  -std=c++14  
at line 18 (test for warnings, line 11)
FAIL: g++.dg/analyzer/fanalyzer-show-events-in-system-headers-no.C  -std=c++14  
at line 19 (test for warnings, line 12)
FAIL: g++.dg/analyzer/fanalyzer-show-events-in-system-headers-no.C  -std=c++14  
at line 20 (test for warnings, line 12)
FAIL: g++.dg/analyzer/fanalyzer-show-events-in-system-headers-no.C  -std=c++14  
at line 21 (test for warnings, line 12)
FAIL: g++.dg/analyzer/fanalyzer-show-events-in-system-headers-no.C  -std=c++17  
at line 13 (test for warnings, line 12)
FAIL: g++.dg/analyzer/fanalyzer-show-events-in-system-headers-no.C  -std=c++17  
at line 19 (test for warnings, line 12)
FAIL: g++.dg/analyzer/fanalyzer-show-events-in-system-headers-no.C  -std=c++17  
at line 20 (test for warnings, line 12)
FAIL: g++.dg/analyzer/fanalyzer-show-events-in-system-headers-no.C  -std=c++17  
at line 21 (test for warnings, line 12)
FAIL: g++.dg/analyzer/fanalyzer-show-events-in-system-headers.C  -std=c++17  at 
line 12 (test for warnings, line 11)
FAIL: g++.dg/analyzer/fanalyzer-show-events-in-system-headers.C  -std=c++17 
(test for excess errors)
FAIL: g++.dg/analyzer/fanalyzer-show-events-in-system-headers.C  -std=c++17 
telltale event that we are going within a deeper frame than 'main' (test for 
warnings, line 9)
FAIL: g++.dg/analyzer/fanalyzer-show-events-in-system-headers.C  -std=c++26  at 
line 12 (test for warnings, line 11)
FAIL: g++.dg/analyzer/fanalyzer-show-events-in-system-headers.C  -std=c++26 
(test for excess errors)
FAIL: g++.dg/analyzer/fanalyzer-show-events-in-system-headers.C  -std=c++26 
telltale event that we are going within a deeper frame than 'main' (test for 
warnings, line 9)
FAIL: g++.dg/coroutines/torture/func-params-07.C   -O3 -g  execution test
FAIL: g++.dg/coroutines/torture/pr103953.C   -O2  execution test
FAIL: g++.dg/coroutines/torture/pr103953.C   -O3 -g  execution test
FAIL: g++.dg/cpp1z/constexpr-asm-5.C  -std=gnu++23  (test for errors, line 343)
FAIL: g++.dg/cpp1z/constexpr-asm-5.C  -std=gnu++26  (test for errors, line 343)
FAIL: g++.dg/ipa/devirt-2.C  -std=gnu++17  scan-ipa-dump cp "Discovered a 
virtual call to a known target.*B::foo"
FAIL: g++.dg/ipa/devirt-2.C  -std=gnu++26  scan-ipa-dump cp "Discovered a 
virtual call to a known target.*B::foo"
FAIL: g++.dg/ipa/devirt-2.C  -std=gnu++98  scan-ipa-dump cp "Discovered a 
virtual call to a known target.*B::foo"
XPASS: g++.dg/ipa/devirt-23.C  -std=gnu++17  scan-ipa-dump cp "Discovered a 
virtual call to"
XPASS: g++.dg/ipa/devirt-23.C  -std=gnu++26  scan-ipa-dump cp "Discovered a 
virtual call to"
XPASS: g++.dg/ipa/devirt-23.C  -std=gnu++98  scan-ipa-dump cp "Discovered a 
virtual call to"
FAIL: g++-dg-lto-devirt-2-01.exe scan-wpa-ipa-dump cp "Discovered a virtual 
call to a known target.*foo"
FAIL: g++.dg/lto/devirt-23 cp_lto_devirt-23_0.o-cp_lto_devirt-23_0.o execute 
-O3 -fno-early-inlining -fno-ipa-sra -fdump-ipa-cp -flto 
-fno-devirtualize-speculatively
FAIL: c-c++-common/torture/pr116156-1.c   -O1  (test for excess errors)
FAIL: c-c++-common/torture/pr116156-1.c   -O2  (test for excess errors)
FAIL: c-c++-common/torture/pr116156-1.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  (test for excess errors)
FAIL: c-c++-common/torture/pr116156-1.c   -O3 -fomit-frame-pointer 
-funroll-loops -fpeel-loops -ftracer -finline-functions  (test for excess 
errors)
FAIL: c-c++-common/torture/pr116156-1.c   -O3 -g  (test for excess errors)
FAIL: c-c++-common/torture/pr116156-1.c   -Os  (test for excess errors)
FAIL: g++.dg/torture/pr58552.C   -O1  (test for excess errors)
FAIL: g++.dg/torture/pr58552.C   -O2  (test for excess errors)
FAIL: g++.dg/torture/pr58552.C   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  (test for excess errors)
FAIL: g++.dg/torture/pr58552.C   -O3 -g  (test for excess errors)
FAIL: g++.dg/torture/pr58552.C   -Os  (test for excess errors)

                === g++ Summary ===

# of expected passes            445788
# of unexpected failures        45
# of unexpected successes       3
# of expected failures          2559
# of unsupported tests          3482
/dev/shm/bld3975170/gcc/xg++  version 16.0.0 20251116 (experimental) 
[devel/gfortran-test e23390a7868] (GCC) 


Compiler version: 16.0.0 20251116 (experimental) [devel/gfortran-test 
e23390a7868] (GCC) 
Platform: aarch64-unknown-linux-gnu
configure flags: --prefix=/home/toon/compilers/install/gfortran-test 
--with-gnu-as --with-gnu-ld --enable-languages=fortran --disable-multilib 
--disable-nls --enable-checking=yes,extra,rtl,df,gcac

Reply via email to