http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47877

           Summary: -fvisibility-inlines-hidden does not hide member
                    template functions
           Product: gcc
           Version: 4.5.2
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: ogoff...@kde.org


Created attachment 23450
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=23450
testcase

struct __attribute__((visibility("default"))) Foo {
    inline void foo() {};
    template <class C> inline void bar() {};
};

int main()
{
    Foo().foo();
    Foo().bar<Foo>();
}

/*
 $ g++ main.cpp -fvisibility=hidden -fvisibility-inlines-hidden
 $ objdump -t a.out  | grep Foo
    00000000004004fc  w    F .text  000000000000000a              .hidden
_ZN3Foo3fooEv
    0000000000400506  w    F .text  000000000000000a             
_ZN3Foo3barIS_EEvv


 Why is Foo::bar not .hidden?

 Note: removing the __attribute__((visibility("default"))) (and
-fvisibility=hidden) solve the problem.
*/

Reply via email to