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

Thomas Schwinge <tschwinge at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|0                           |1
   Last reconfirmed|                            |2025-04-16
             Status|RESOLVED                    |REOPENED
         Resolution|DUPLICATE                   |---
           Assignee|unassigned at gcc dot gnu.org      |tschwinge at gcc dot 
gnu.org
           Keywords|                            |openacc

--- Comment #7 from Thomas Schwinge <tschwinge at gcc dot gnu.org> ---
(In reply to Tom de Vries from comment #5)
> [...], there may be a problem with nvptx
> c++ support, but the alias issue seems to have been addresses, so I'm
> closing this one.

..., and then:

(In reply to myself from comment #6)
> This was implemented via PR104957 "[nvptx] Use .alias directive (available
> starting ptx isa version 6.3)".
> 
> *** This bug has been marked as a duplicate of bug 104957 ***

I'm now setting this REOPENED, as (a) 'libgomp.c++/pr96390.C' is still XFAILed
for nvptx offloading, and (b) this PR is -- as far as I can tell -- the first
one to report the issue that...

(In reply to Tobias Burnus from comment #0)
> [for certain C++ code], GCC calls the "complete object constructor" C1:
>   _ZN1VILi1EEC1ImvEET_
> but generates the function definition for "base object constructor" C2:
>   _ZN1VILi1EEC2ImvEET_
> 
> And it generates a weak alias between the two.

..., but the latter (alias) is missing for nvptx offloading compilation.

This was later re-reported in PR106445 "nvptx offloading: C++ constructor
symbol alias getting lost", and PR117010 "[nvptx] Incorrect ptx code-gen for
C++ code with templates", and possible others.  (..., which I'll mark as
duplicate of or depending on this PR here, as applicable.)


> Using .alias should work – the aliasee should not be weak but I believe in
> our case only the alias itself is weak. – Hence, it should work.

..., but only due to "other lucky coincidences"; PR119833 "Clarify which
semantics offloading compilation does (not) inherit from using the LTO
infrastructure", so...

> I wonder whether this could be solved at LTO time – after all, except for
> linked libraries (libgomp, libm) it should be know.

... this is happening to a certain degree.  ;-)

(Resolving aliases via LTO is another thought.)

Reply via email to