https://bugs.llvm.org/show_bug.cgi?id=36353
Bug ID: 36353
Summary: Can not derive from time_get_byname
Product: libc++
Version: unspecified
Hardware: PC
OS: All
Status: NEW
Severity: normal
Priority: P
Component: All Bugs
Assignee: unassignedclangb...@nondot.org
Reporter: jasonliu.developm...@gmail.com
CC: llvm-bugs@lists.llvm.org, mclow.li...@gmail.com
I think this is a valid use case:
#include <locale>
typedef std::char_traits<wchar_t> It;
typedef std::istreambuf_iterator<wchar_t, It> Isit;
struct Mytime : public std::time_get_byname<wchar_t, Isit> {
Mytime(const char *name, size_t refs)
: std::time_get_byname<wchar_t, Isit>(name, refs) {}
};
int main(){
const Mytime t("A",1);
}
When I compile this, I get a bunch of undefined symbols:
"std::__1::time_get_byname<wchar_t, std::__1::istreambuf_iterator<wchar_t,
std::__1::char_traits<wchar_t> > >::do_date_order() const", referenced from:
vtable for Mytime in bb-639bbe.o
"std::__1::time_get_byname<wchar_t, std::__1::istreambuf_iterator<wchar_t,
std::__1::char_traits<wchar_t> > >::__X() const", referenced from:
vtable for Mytime in bb-639bbe.o
"std::__1::time_get_byname<wchar_t, std::__1::istreambuf_iterator<wchar_t,
std::__1::char_traits<wchar_t> > >::__c() const", referenced from:
vtable for Mytime in bb-639bbe.o
"std::__1::time_get_byname<wchar_t, std::__1::istreambuf_iterator<wchar_t,
std::__1::char_traits<wchar_t> > >::__r() const", referenced from:
vtable for Mytime in bb-639bbe.o
"std::__1::time_get_byname<wchar_t, std::__1::istreambuf_iterator<wchar_t,
std::__1::char_traits<wchar_t> > >::__x() const", referenced from:
vtable for Mytime in bb-639bbe.o
"std::__1::time_get_byname<wchar_t, std::__1::istreambuf_iterator<wchar_t,
std::__1::char_traits<wchar_t> > >::__am_pm() const", referenced from:
vtable for Mytime in bb-639bbe.o
"std::__1::time_get_byname<wchar_t, std::__1::istreambuf_iterator<wchar_t,
std::__1::char_traits<wchar_t> > >::__weeks() const", referenced from:
vtable for Mytime in bb-639bbe.o
"std::__1::time_get_byname<wchar_t, std::__1::istreambuf_iterator<wchar_t,
std::__1::char_traits<wchar_t> > >::__months() const", referenced from:
vtable for Mytime in bb-639bbe.o
"non-virtual thunk to std::__1::time_get_byname<wchar_t,
std::__1::istreambuf_iterator<wchar_t, std::__1::char_traits<wchar_t> >
>::__X() const", referenced from:
vtable for Mytime in bb-639bbe.o
"non-virtual thunk to std::__1::time_get_byname<wchar_t,
std::__1::istreambuf_iterator<wchar_t, std::__1::char_traits<wchar_t> >
>::__c() const", referenced from:
vtable for Mytime in bb-639bbe.o
"non-virtual thunk to std::__1::time_get_byname<wchar_t,
std::__1::istreambuf_iterator<wchar_t, std::__1::char_traits<wchar_t> >
>::__r() const", referenced from:
vtable for Mytime in bb-639bbe.o
"non-virtual thunk to std::__1::time_get_byname<wchar_t,
std::__1::istreambuf_iterator<wchar_t, std::__1::char_traits<wchar_t> >
>::__x() const", referenced from:
vtable for Mytime in bb-639bbe.o
"non-virtual thunk to std::__1::time_get_byname<wchar_t,
std::__1::istreambuf_iterator<wchar_t, std::__1::char_traits<wchar_t> >
>::__am_pm() const", referenced from:
vtable for Mytime in bb-639bbe.o
"non-virtual thunk to std::__1::time_get_byname<wchar_t,
std::__1::istreambuf_iterator<wchar_t, std::__1::char_traits<wchar_t> >
>::__weeks() const", referenced from:
vtable for Mytime in bb-639bbe.o
"non-virtual thunk to std::__1::time_get_byname<wchar_t,
std::__1::istreambuf_iterator<wchar_t, std::__1::char_traits<wchar_t> >
>::__months() const", referenced from:
vtable for Mytime in bb-639bbe.o
When I look at the header and I saw those functions are marked as "always
inline" and "hidden", any reason why those functions are marked as hidden in
the library?
--
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs