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" } } */