https://gcc.gnu.org/g:f82475810a3c09284e87fb99b95f64f7704078a9

commit f82475810a3c09284e87fb99b95f64f7704078a9
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.
    
    (cherry picked from commit 2f58d8ac03911063d6a8887a2bee7b4e25ac1871)

Diff:
---
 gcc/ChangeLog.omp                        | 10 ++++++++++
 gcc/config/gcn/gcn-hsa.h                 |  4 ++++
 gcc/config/gcn/gcn-protos.h              |  2 ++
 gcc/config/gcn/gcn.cc                    | 14 ++++++++++++++
 gcc/testsuite/ChangeLog.omp              | 17 +++++++++++++++++
 gcc/testsuite/g++.dg/abi/pure-virtual1.C |  1 +
 gcc/testsuite/g++.dg/cpp0x/pr84497.C     |  1 +
 gcc/testsuite/g++.dg/ext/weak2.C         |  1 +
 gcc/testsuite/gcc.dg/attr-weakref-1.c    |  1 +
 gcc/testsuite/gcc.dg/weak/weak-1.c       |  1 +
 gcc/testsuite/gcc.dg/weak/weak-12.c      |  1 +
 gcc/testsuite/gcc.dg/weak/weak-15.c      |  1 +
 gcc/testsuite/gcc.dg/weak/weak-16.c      |  1 +
 gcc/testsuite/gcc.dg/weak/weak-2.c       |  1 +
 gcc/testsuite/gcc.dg/weak/weak-3.c       |  1 +
 gcc/testsuite/gcc.dg/weak/weak-4.c       |  1 +
 gcc/testsuite/gcc.dg/weak/weak-5.c       |  1 +
 17 files changed, 59 insertions(+)

diff --git a/gcc/ChangeLog.omp b/gcc/ChangeLog.omp
index e3cee037411c..b4c19fc4c377 100644
--- a/gcc/ChangeLog.omp
+++ b/gcc/ChangeLog.omp
@@ -1,3 +1,13 @@
+2025-04-02  Thomas Schwinge  <tschwi...@baylibre.com>
+
+       Backported from trunk:
+       2025-04-01  Thomas Schwinge  <tschwi...@baylibre.com>
+
+       PR target/119369
+       * 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.
+
 2025-04-01  Tobias Burnus  <tbur...@baylibre.com>
 
        Backported from master:
diff --git a/gcc/config/gcn/gcn-hsa.h b/gcc/config/gcn/gcn-hsa.h
index 4611bc553923..62e1fdcca1f6 100644
--- a/gcc/config/gcn/gcn-hsa.h
+++ b/gcc/config/gcn/gcn-hsa.h
@@ -46,6 +46,10 @@
 #define ASM_OUTPUT_LABEL(FILE,NAME) \
   do { assemble_name (FILE, NAME); fputs (":\n", FILE); } while (0)
 
+/* Used in lieu of '../elfos.h:ASM_WEAKEN_LABEL'.  */
+#define ASM_WEAKEN_DECL(STREAM, DECL, NAME, VALUE) \
+  gcn_asm_weaken_decl ((STREAM), (DECL), (NAME), (VALUE))
+
 #define ASM_OUTPUT_LABELREF(FILE, NAME) \
   asm_fprintf (FILE, "%U%s", default_strip_name_encoding (NAME))
 
diff --git a/gcc/config/gcn/gcn-protos.h b/gcc/config/gcn/gcn-protos.h
index 654da7922749..0e74425f4035 100644
--- a/gcc/config/gcn/gcn-protos.h
+++ b/gcc/config/gcn/gcn-protos.h
@@ -18,6 +18,8 @@
 #define _GCN_PROTOS_
 
 extern void gcn_asm_output_symbol_ref (FILE *file, rtx x);
+extern void gcn_asm_weaken_decl (FILE *stream, tree decl, const char *name,
+                                const char *value);
 extern tree gcn_builtin_decl (unsigned code, bool initialize_p);
 extern bool gcn_can_split_p (machine_mode, rtx);
 extern bool gcn_constant64_p (rtx);
diff --git a/gcc/config/gcn/gcn.cc b/gcc/config/gcn/gcn.cc
index 072ccea50e85..0cad912b90e7 100644
--- a/gcc/config/gcn/gcn.cc
+++ b/gcc/config/gcn/gcn.cc
@@ -7040,6 +7040,20 @@ gcn_asm_output_symbol_ref (FILE *file, rtx x)
     }
 }
 
+void
+gcn_asm_weaken_decl (FILE *stream, tree decl, const char *name,
+                    const char *value)
+{
+  if (!value
+      && DECL_EXTERNAL (decl))
+    /* Don't emit weak undefined symbols; see PR119369.  */
+    return;
+  if (value)
+    ASM_OUTPUT_WEAK_ALIAS (stream, name, value);
+  else
+    ASM_WEAKEN_LABEL (stream, name);
+}
+
 /* Implement TARGET_CONSTANT_ALIGNMENT.
  
    Returns the alignment in bits of a constant that is being placed in memory.
diff --git a/gcc/testsuite/ChangeLog.omp b/gcc/testsuite/ChangeLog.omp
index 5f4a5e53cce9..464a6e1fb5ef 100644
--- a/gcc/testsuite/ChangeLog.omp
+++ b/gcc/testsuite/ChangeLog.omp
@@ -1,5 +1,22 @@
 2025-04-02  Thomas Schwinge  <tschwi...@baylibre.com>
 
+       Backported from trunk:
+       2025-04-01  Thomas Schwinge  <tschwi...@baylibre.com>
+
+       PR target/119369
+       * 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.
+
        Backported from trunk:
        2024-08-28  Joern Rennecke  <joern.renne...@riscy-ip.com>
 
diff --git a/gcc/testsuite/g++.dg/abi/pure-virtual1.C 
b/gcc/testsuite/g++.dg/abi/pure-virtual1.C
index 59eaf2256204..85ed8f6005de 100644
--- a/gcc/testsuite/g++.dg/abi/pure-virtual1.C
+++ b/gcc/testsuite/g++.dg/abi/pure-virtual1.C
@@ -4,6 +4,7 @@
 // { dg-additional-options "-fno-rtti -nostdlib++" }
 // { dg-additional-options "-Wl,-undefined,dynamic_lookup" { target 
*-*-darwin* } }
 // { dg-xfail-if "AIX weak" { powerpc-ibm-aix* } }
+// { dg-xfail-if PR119369 { amdgcn-*-* } }
 
 struct A
 {
diff --git a/gcc/testsuite/g++.dg/cpp0x/pr84497.C 
b/gcc/testsuite/g++.dg/cpp0x/pr84497.C
index be5a9d359ec5..8a9478b162e3 100644
--- a/gcc/testsuite/g++.dg/cpp0x/pr84497.C
+++ b/gcc/testsuite/g++.dg/cpp0x/pr84497.C
@@ -3,6 +3,7 @@
 // { dg-require-weak "" }
 // { dg-require-alias "" }
 // { dg-skip-if "No .weak" { { hppa*-*-hpux* } && { ! lp64 } } }
+// { dg-skip-if PR119369 { amdgcn-*-* } }
 
 struct Base
 {
diff --git a/gcc/testsuite/g++.dg/ext/weak2.C b/gcc/testsuite/g++.dg/ext/weak2.C
index 1bf2ddcb4d6e..e1665cf9feb4 100644
--- a/gcc/testsuite/g++.dg/ext/weak2.C
+++ b/gcc/testsuite/g++.dg/ext/weak2.C
@@ -2,6 +2,7 @@
 // { dg-do compile }
 // { dg-require-weak "" }
 // { dg-options "" }
+// { dg-skip-if PR119369 { amdgcn-*-* } }
 
 // { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?_Z3foov" } }
 
diff --git a/gcc/testsuite/gcc.dg/attr-weakref-1.c 
b/gcc/testsuite/gcc.dg/attr-weakref-1.c
index f13aee446ce6..1d25d9c2d417 100644
--- a/gcc/testsuite/gcc.dg/attr-weakref-1.c
+++ b/gcc/testsuite/gcc.dg/attr-weakref-1.c
@@ -6,6 +6,7 @@
 // is not available on the following targets.  The test is skipped rather than
 // xfailed to suppress the warning that would otherwise arise.
 // { dg-skip-if "" { "hppa*-*-hpux*" "*-*-aix*" "nvptx-*-*" } }
+// { dg-skip-if PR119369 { amdgcn-*-* } }
 
 // For kernel modules and static RTPs, the loader treats undefined weak
 // symbols in the same way as undefined strong symbols.  The test
diff --git a/gcc/testsuite/gcc.dg/weak/weak-1.c 
b/gcc/testsuite/gcc.dg/weak/weak-1.c
index 6bbc66906ac8..9566ee0c6f2e 100644
--- a/gcc/testsuite/gcc.dg/weak/weak-1.c
+++ b/gcc/testsuite/gcc.dg/weak/weak-1.c
@@ -4,6 +4,7 @@
 /* { dg-skip-if "" { *-*-mingw* } } */
 /* NVPTX's definition of weak looks different to normal.  */
 /* { dg-skip-if "" { nvptx-*-* } } */
+/* { dg-skip-if PR119369 { amdgcn-*-* } } */
 
 /* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?a" } } */
 /* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?b" } } */
diff --git a/gcc/testsuite/gcc.dg/weak/weak-12.c 
b/gcc/testsuite/gcc.dg/weak/weak-12.c
index d26fde6bab70..fd18e59a21ee 100644
--- a/gcc/testsuite/gcc.dg/weak/weak-12.c
+++ b/gcc/testsuite/gcc.dg/weak/weak-12.c
@@ -4,6 +4,7 @@
 /* { dg-options "" } */
 /* NVPTX's weak is applied to the definition,  not declaration.  */
 /* { dg-skip-if "" { nvptx-*-* } } */
+/* { dg-skip-if PR119369 { amdgcn-*-* } } */
 
 /* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?foo" } } */
 
diff --git a/gcc/testsuite/gcc.dg/weak/weak-15.c 
b/gcc/testsuite/gcc.dg/weak/weak-15.c
index 6364baff80af..425a70046cc2 100644
--- a/gcc/testsuite/gcc.dg/weak/weak-15.c
+++ b/gcc/testsuite/gcc.dg/weak/weak-15.c
@@ -4,6 +4,7 @@
 /* { dg-skip-if "" { x86_64-*-mingw* } } */
 /* NVPTX's weak is applied to the definition,  not declaration.  */
 /* { dg-skip-if "" { nvptx-*-* } } */
+/* { dg-skip-if PR119369 { amdgcn-*-* } } */
 
 /* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?a" } } */
 /* { dg-final { scan-assembler-not "weak\[^ \t\]*\[ \t\]_?b" } } */
diff --git a/gcc/testsuite/gcc.dg/weak/weak-16.c 
b/gcc/testsuite/gcc.dg/weak/weak-16.c
index 2c58d659c0b1..44741c54c3db 100644
--- a/gcc/testsuite/gcc.dg/weak/weak-16.c
+++ b/gcc/testsuite/gcc.dg/weak/weak-16.c
@@ -7,6 +7,7 @@
 /* { dg-skip-if "" { x86_64-*-mingw* } } */
 /* NVPTX's weak is applied to the definition,  not declaration.  */
 /* { dg-skip-if "" { nvptx-*-* } } */
+/* { dg-skip-if PR119369 { amdgcn-*-* } } */
 
 extern int kallsyms_token_index[] __attribute__((weak));
 extern int kallsyms_token_table[] __attribute__((weak));
diff --git a/gcc/testsuite/gcc.dg/weak/weak-2.c 
b/gcc/testsuite/gcc.dg/weak/weak-2.c
index 67171cf742f4..f0f55f5360fd 100644
--- a/gcc/testsuite/gcc.dg/weak/weak-2.c
+++ b/gcc/testsuite/gcc.dg/weak/weak-2.c
@@ -4,6 +4,7 @@
 /* { dg-skip-if "" { x86_64-*-mingw* } } */
 /* NVPTX's definition of weak looks different to normal.  */
 /* { dg-skip-if "" { nvptx-*-* } } */
+/* { dg-skip-if PR119369 { amdgcn-*-* } } */
 
 /* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?ffoo1a" } } */
 /* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?ffoo1b" } } */
diff --git a/gcc/testsuite/gcc.dg/weak/weak-3.c 
b/gcc/testsuite/gcc.dg/weak/weak-3.c
index 5fdf029cf357..2046f1e4d0bf 100644
--- a/gcc/testsuite/gcc.dg/weak/weak-3.c
+++ b/gcc/testsuite/gcc.dg/weak/weak-3.c
@@ -3,6 +3,7 @@
 /* { dg-require-weak "" } */
 /* { dg-options "-fno-common -Waddress" } */
 /* { dg-skip-if "" { x86_64-*-mingw* } } */
+/* { dg-skip-if PR119369 { amdgcn-*-* } } */
 
 /* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?ffoo1a" } } */
 /* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?ffoo1b" } } */
diff --git a/gcc/testsuite/gcc.dg/weak/weak-4.c 
b/gcc/testsuite/gcc.dg/weak/weak-4.c
index d0f32836e000..70e63d229012 100644
--- a/gcc/testsuite/gcc.dg/weak/weak-4.c
+++ b/gcc/testsuite/gcc.dg/weak/weak-4.c
@@ -4,6 +4,7 @@
 /* { dg-skip-if "" { x86_64-*-mingw* } } */
 /* NVPTX's definition of weak looks different to normal.  */
 /* { dg-skip-if "" { nvptx-*-* } } */
+/* { dg-skip-if PR119369 { amdgcn-*-* } } */
 
 /* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?vfoo1a" } } */
 /* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?vfoo1b" } } */
diff --git a/gcc/testsuite/gcc.dg/weak/weak-5.c 
b/gcc/testsuite/gcc.dg/weak/weak-5.c
index 6f80bb050bba..3b239715e448 100644
--- a/gcc/testsuite/gcc.dg/weak/weak-5.c
+++ b/gcc/testsuite/gcc.dg/weak/weak-5.c
@@ -3,6 +3,7 @@
 /* { dg-require-alias "" } */
 /* { dg-options "-fno-common" } */
 /* { dg-skip-if "" { x86_64-*-mingw* } } */
+/* { dg-skip-if PR119369 { amdgcn-*-* } } */
 
 /* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?vfoo1a" } } */
 /* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?vfoo1b" } } */

Reply via email to