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

            Bug ID: 119369
           Summary: GCN: weak undefined symbols -> execution test FAIL,
                    'HSA_STATUS_ERROR_VARIABLE_UNDEFINED'
           Product: gcc
           Version: 15.0
            Status: UNCONFIRMED
          Keywords: testsuite-fail
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: tschwinge at gcc dot gnu.org
                CC: ams at gcc dot gnu.org
  Target Milestone: ---
            Target: GCN

I've noticed that in presence of a weak undefined symbol, we get execution test
FAILs, for example:

    [...]
    PASS: gcc.dg/attr-weakref-1.c (test for excess errors)
    [...]
    spawn -ignore SIGHUP [...]/gcn-run ./attr-weakref-1.exe
    Load GCN code object: FAILED
    HSA Runtime message: HSA_STATUS_ERROR_INCOMPATIBLE_ARGUMENTS: The arguments
passed to a functions are not compatible.
    FAIL: gcc.dg/attr-weakref-1.c execution test

My understanding is that weak undefined symbols should resolve to NULL.

This also causes the effective-target 'weak_undefined' test to fail in the same
way, and therefore:

    UNSUPPORTED: gcc.dg/addr_equal-1.c

    UNSUPPORTED: gcc.dg/visibility-22.c

    UNSUPPORTED: gcc.dg/torture/pr90020.c   -O0 
    [Etc.]

    UNSUPPORTED: gcc.dg/torture/pr53922.c   -O0 
    [Etc.]

..., and as of the recent C++ enablement, this also affects dozens of C++ test
cases.

I suspect 'gcc/config/gcn/gcn-run.cc' needs to be changed to handle this case?

I've not yet looked whether the same applies to 'libgomp/plugin/plugin-gcn.c',
too.

Reply via email to