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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |wrong-code
                 CC|                            |rguenth at gcc dot gnu.org
   Last reconfirmed|2019-01-17 00:00:00         |2024-8-21
      Known to fail|                            |14.2.0

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
Re-confirmed.  Just got a question like this, in particular the question was
whether dropping the attribute is the correct thing to do.  One observes
for:

enum class Enum {};

class Param {};

template<typename T>
class __attribute__((visibility("default"))) C {
public:
    void f();
};

template<typename T>
void C<T>::f() {}

template class C<Enum>;
template class C<Param>;

compiling with -fvisibility=hidden:

     4: 0000000000000000    11 FUNC    WEAK   DEFAULT    6 _ZN1CI4EnumE1fEv
     5: 0000000000000000    11 FUNC    WEAK   HIDDEN     7 _ZN1CI5ParamE1fEv

so the behavior is different for class Enum vs. class template parameter
instances of C.

Reply via email to