]> gcc.gnu.org Git - gcc.git/commit
nvptx: Prevent emitting duplicate declarations for '__nvptx_stacks', '__nvptx_uni'
authorThomas Schwinge <thomas@codesourcery.com>
Mon, 19 Dec 2022 16:19:19 +0000 (17:19 +0100)
committerKwok Cheung Yeung <kcy@codesourcery.com>
Thu, 18 May 2023 15:11:53 +0000 (16:11 +0100)
commit15507794a3706ecf6cb623c17cf96b2afc5a09c5
tree573f94ac4c5d35c730975d98958a294deac692a0
parent308d4efc00da65ecef294e863183b569fbeaee32
nvptx: Prevent emitting duplicate declarations for '__nvptx_stacks', '__nvptx_uni'

As I have reported to Nvidia in 2022-12-01 'NVIDIA Incident Report (3891704):
ptxas: Duplicate declaration error: "cannot be resolved by a '.static'"',
'ptxas' has an inscrutable error mode for duplicate declarations:

    ptxas softstack-decl-1.o, line 11; error   : '.extern' variable '__nvptx_stacks' cannot be resolved by a '.static'
    ptxas fatal   : Ptx assembly aborted due to errors
    nvptx-as: ptxas returned 255 exit status

    ptxas uniform-simt-decl-1.o, line 12; error   : '.extern' variable '__nvptx_uni' cannot be resolved by a '.static'
    ptxas fatal   : Ptx assembly aborted due to errors
    nvptx-as: ptxas returned 255 exit status

This is inscrutable, because (a) what is "cannot be resolved by a '.static'"
supposed to tell me (there is no '.static' in PTX?), and (b) why arent't
repeated declaration just verified to match the first, but otherwise a no-op
(like in other programming languages)?

gcc/
* config/nvptx/nvptx.cc (nvptx_assemble_undefined_decl): Notice
'__nvptx_stacks', '__nvptx_uni' declarations.
(nvptx_file_end): Don't emit duplicate declarations for those.
gcc/testsuite/
* gcc.target/nvptx/softstack-decl-1.c: Make 'dg-do assemble',
adjust.
* gcc.target/nvptx/uniform-simt-decl-1.c: Likewise.
gcc/ChangeLog.omp
gcc/config/nvptx/nvptx.cc
gcc/testsuite/ChangeLog.omp
gcc/testsuite/gcc.target/nvptx/softstack-decl-1.c
gcc/testsuite/gcc.target/nvptx/uniform-simt-decl-1.c
This page took 0.067207 seconds and 6 git commands to generate.