https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119369

--- Comment #8 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The trunk branch has been updated by Thomas Schwinge <tschwi...@gcc.gnu.org>:

https://gcc.gnu.org/g:2f58d8ac03911063d6a8887a2bee7b4e25ac1871

commit r15-9123-g2f58d8ac03911063d6a8887a2bee7b4e25ac1871
Author: Thomas Schwinge <tschwi...@baylibre.com>
Date:   Mon Mar 31 09:55:14 2025 +0200

    GCN: Don't emit weak undefined symbols [PR119369]

    This resolves all instances of PR119369
    "GCN: weak undefined symbols -> execution test FAIL,
'HSA_STATUS_ERROR_VARIABLE_UNDEFINED'";
    for all affected test cases, the execution test status progresses FAIL ->
PASS.

    This however also causes a small number of (expected) regressions, very
similar
    to GCC/nvptx:

        [-PASS:-]{+FAIL:+} g++.dg/abi/pure-virtual1.C  -std=c++17 (test for
excess errors)
        [-PASS:-]{+FAIL:+} g++.dg/abi/pure-virtual1.C  -std=c++26 (test for
excess errors)
        [-PASS:-]{+FAIL:+} g++.dg/abi/pure-virtual1.C  -std=c++98 (test for
excess errors)

        [-PASS:-]{+FAIL:+} g++.dg/cpp0x/pr84497.C  -std=c++11  scan-assembler
.weak[ \t]*_?_ZTH11derived_obj
        [-PASS:-]{+FAIL:+} g++.dg/cpp0x/pr84497.C  -std=c++11  scan-assembler
.weak[ \t]*_?_ZTH13container_obj
        [-PASS:-]{+FAIL:+} g++.dg/cpp0x/pr84497.C  -std=c++11  scan-assembler
.weak[ \t]*_?_ZTH8base_obj
        PASS: g++.dg/cpp0x/pr84497.C  -std=c++11 (test for excess errors)
        [-PASS:-]{+FAIL:+} g++.dg/cpp0x/pr84497.C  -std=c++17  scan-assembler
.weak[ \t]*_?_ZTH11derived_obj
        [-PASS:-]{+FAIL:+} g++.dg/cpp0x/pr84497.C  -std=c++17  scan-assembler
.weak[ \t]*_?_ZTH13container_obj
        [-PASS:-]{+FAIL:+} g++.dg/cpp0x/pr84497.C  -std=c++17  scan-assembler
.weak[ \t]*_?_ZTH8base_obj
        PASS: g++.dg/cpp0x/pr84497.C  -std=c++17 (test for excess errors)
        [-PASS:-]{+FAIL:+} g++.dg/cpp0x/pr84497.C  -std=c++26  scan-assembler
.weak[ \t]*_?_ZTH11derived_obj
        [-PASS:-]{+FAIL:+} g++.dg/cpp0x/pr84497.C  -std=c++26  scan-assembler
.weak[ \t]*_?_ZTH13container_obj
        [-PASS:-]{+FAIL:+} g++.dg/cpp0x/pr84497.C  -std=c++26  scan-assembler
.weak[ \t]*_?_ZTH8base_obj
        PASS: g++.dg/cpp0x/pr84497.C  -std=c++26 (test for excess errors)

        [-PASS:-]{+FAIL:+} g++.dg/ext/weak2.C  -std=gnu++17  scan-assembler
weak[^ \t]*[ \t]_?_Z3foov
        PASS: g++.dg/ext/weak2.C  -std=gnu++17 (test for excess errors)
        [-PASS:-]{+FAIL:+} g++.dg/ext/weak2.C  -std=gnu++26  scan-assembler
weak[^ \t]*[ \t]_?_Z3foov
        PASS: g++.dg/ext/weak2.C  -std=gnu++26 (test for excess errors)
        [-PASS:-]{+FAIL:+} g++.dg/ext/weak2.C  -std=gnu++98  scan-assembler
weak[^ \t]*[ \t]_?_Z3foov
        PASS: g++.dg/ext/weak2.C  -std=gnu++98 (test for excess errors)

        [-PASS:-]{+FAIL:+} gcc.dg/attr-weakref-1.c (test for excess errors)
        [-FAIL:-]{+UNRESOLVED:+} gcc.dg/attr-weakref-1.c [-execution
test-]{+compilation failed to produce executable+}

        @@ -131211,25 +131211,25 @@ PASS: gcc.dg/weak/weak-1.c scan-assembler
weak[^ \t]*[ \t]_?c
        PASS: gcc.dg/weak/weak-1.c scan-assembler weak[^ \t]*[ \t]_?d
        PASS: gcc.dg/weak/weak-1.c scan-assembler weak[^ \t]*[ \t]_?e
        PASS: gcc.dg/weak/weak-1.c scan-assembler weak[^ \t]*[ \t]_?g
        [-PASS:-]{+FAIL:+} gcc.dg/weak/weak-1.c scan-assembler weak[^ \t]*[
\t]_?j
        PASS: gcc.dg/weak/weak-1.c scan-assembler-not weak[^ \t]*[ \t]_?i

        PASS: gcc.dg/weak/weak-12.c (test for excess errors)
        [-PASS:-]{+FAIL:+} gcc.dg/weak/weak-12.c scan-assembler weak[^ \t]*[
\t]_?foo

        PASS: gcc.dg/weak/weak-15.c (test for excess errors)
        [-PASS:-]{+FAIL:+} gcc.dg/weak/weak-15.c scan-assembler weak[^ \t]*[
\t]_?a
        [-PASS:-]{+FAIL:+} gcc.dg/weak/weak-15.c scan-assembler weak[^ \t]*[
\t]_?c
        [-PASS:-]{+FAIL:+} gcc.dg/weak/weak-15.c scan-assembler weak[^ \t]*[
\t]_?d
        PASS: gcc.dg/weak/weak-15.c scan-assembler-not weak[^ \t]*[ \t]_?b

        PASS: gcc.dg/weak/weak-16.c (test for excess errors)
        [-PASS:-]{+FAIL:+} gcc.dg/weak/weak-16.c scan-assembler weak[^ \t]*[
\t]_?kallsyms_token_index
        [-PASS:-]{+FAIL:+} gcc.dg/weak/weak-16.c scan-assembler weak[^ \t]*[
\t]_?kallsyms_token_table
        PASS: gcc.dg/weak/weak-2.c (test for excess errors)
        [-PASS:-]{+FAIL:+} gcc.dg/weak/weak-2.c scan-assembler weak[^ \t]*[
\t]_?ffoo1a
        [-PASS:-]{+FAIL:+} gcc.dg/weak/weak-2.c scan-assembler weak[^ \t]*[
\t]_?ffoo1b
        [-PASS:-]{+FAIL:+} gcc.dg/weak/weak-2.c scan-assembler weak[^ \t]*[
\t]_?ffoo1c
        [-PASS:-]{+FAIL:+} gcc.dg/weak/weak-2.c scan-assembler weak[^ \t]*[
\t]_?ffoo1e
        PASS: gcc.dg/weak/weak-2.c scan-assembler-not weak[^ \t]*[ \t]_?ffoo1d

        PASS: gcc.dg/weak/weak-3.c  (test for warnings, line 58)
        PASS: gcc.dg/weak/weak-3.c  (test for warnings, line 73)
        PASS: gcc.dg/weak/weak-3.c (test for excess errors)
        [-PASS:-]{+FAIL:+} gcc.dg/weak/weak-3.c scan-assembler weak[^ \t]*[
\t]_?ffoo1a
        [-PASS:-]{+FAIL:+} gcc.dg/weak/weak-3.c scan-assembler weak[^ \t]*[
\t]_?ffoo1b
        [-PASS:-]{+FAIL:+} gcc.dg/weak/weak-3.c scan-assembler weak[^ \t]*[
\t]_?ffoo1c
        [-PASS:-]{+FAIL:+} gcc.dg/weak/weak-3.c scan-assembler weak[^ \t]*[
\t]_?ffoo1e
        PASS: gcc.dg/weak/weak-3.c scan-assembler weak[^ \t]*[ \t]_?ffoo1f
        PASS: gcc.dg/weak/weak-3.c scan-assembler weak[^ \t]*[ \t]_?ffoo1g
        PASS: gcc.dg/weak/weak-3.c scan-assembler-not weak[^ \t]*[ \t]_?ffoo1d

        PASS: gcc.dg/weak/weak-4.c (test for excess errors)
        [-PASS:-]{+FAIL:+} gcc.dg/weak/weak-4.c scan-assembler weak[^ \t]*[
\t]_?vfoo1a
        [-PASS:-]{+FAIL:+} gcc.dg/weak/weak-4.c scan-assembler weak[^ \t]*[
\t]_?vfoo1b
        [-PASS:-]{+FAIL:+} gcc.dg/weak/weak-4.c scan-assembler weak[^ \t]*[
\t]_?vfoo1c
        PASS: gcc.dg/weak/weak-4.c scan-assembler weak[^ \t]*[ \t]_?vfoo1d
        PASS: gcc.dg/weak/weak-4.c scan-assembler weak[^ \t]*[ \t]_?vfoo1e
        PASS: gcc.dg/weak/weak-4.c scan-assembler weak[^ \t]*[ \t]_?vfoo1f
        @@ -131267,16 +131267,16 @@ PASS: gcc.dg/weak/weak-4.c scan-assembler
weak[^ \t]*[ \t]_?vfoo1i
        PASS: gcc.dg/weak/weak-4.c scan-assembler weak[^ \t]*[ \t]_?vfoo1j
        PASS: gcc.dg/weak/weak-4.c scan-assembler weak[^ \t]*[ \t]_?vfoo1k

        PASS: gcc.dg/weak/weak-5.c (test for excess errors)
        [-PASS:-]{+FAIL:+} gcc.dg/weak/weak-5.c scan-assembler weak[^ \t]*[
\t]_?vfoo1a
        [-PASS:-]{+FAIL:+} gcc.dg/weak/weak-5.c scan-assembler weak[^ \t]*[
\t]_?vfoo1b
        [-PASS:-]{+FAIL:+} gcc.dg/weak/weak-5.c scan-assembler weak[^ \t]*[
\t]_?vfoo1c
        PASS: gcc.dg/weak/weak-5.c scan-assembler weak[^ \t]*[ \t]_?vfoo1d
        PASS: gcc.dg/weak/weak-5.c scan-assembler weak[^ \t]*[ \t]_?vfoo1e
        PASS: gcc.dg/weak/weak-5.c scan-assembler weak[^ \t]*[ \t]_?vfoo1f
        PASS: gcc.dg/weak/weak-5.c scan-assembler weak[^ \t]*[ \t]_?vfoo1g
        PASS: gcc.dg/weak/weak-5.c scan-assembler weak[^ \t]*[ \t]_?vfoo1h
        [-PASS:-]{+FAIL:+} gcc.dg/weak/weak-5.c scan-assembler weak[^ \t]*[
\t]_?vfoo1i
        [-PASS:-]{+FAIL:+} gcc.dg/weak/weak-5.c scan-assembler weak[^ \t]*[
\t]_?vfoo1j
        PASS: gcc.dg/weak/weak-5.c scan-assembler weak[^ \t]*[ \t]_?vfoo1k
        PASS: gcc.dg/weak/weak-5.c scan-assembler weak[^ \t]*[ \t]_?vfoo1l

    These get 'dg-xfail-if'ed or 'dg-skip-if'ed, (mostly) similar to GCC/nvptx.

            PR target/119369
            gcc/
            * config/gcn/gcn-protos.h (gcn_asm_weaken_decl): Declare.
            * config/gcn/gcn.cc (gcn_asm_weaken_decl): New.
            * config/gcn/gcn-hsa.h (ASM_WEAKEN_DECL): '#define' to this.
            gcc/testsuite/
            * g++.dg/abi/pure-virtual1.C: 'dg-xfail-if' GCN.
            * g++.dg/cpp0x/pr84497.C: 'dg-skip-if' GCN.
            * g++.dg/ext/weak2.C: Likewise.
            * gcc.dg/attr-weakref-1.c: Likewise.
            * gcc.dg/weak/weak-1.c: Likewise.
            * gcc.dg/weak/weak-12.c: Likewise.
            * gcc.dg/weak/weak-15.c: Likewise.
            * gcc.dg/weak/weak-16.c: Likewise.
            * gcc.dg/weak/weak-2.c: Likewise.
            * gcc.dg/weak/weak-3.c: Likewise.
            * gcc.dg/weak/weak-4.c: Likewise.
            * gcc.dg/weak/weak-5.c: Likewise.

Reply via email to