------
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