[LLVMbugs] [Bug 13688] New: Another visibility error in combination with libc++
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Fri Aug 24 05:28:41 PDT 2012
http://llvm.org/bugs/show_bug.cgi?id=13688
Bug #: 13688
Summary: Another visibility error in combination with libc++
Product: clang
Version: trunk
Platform: All
OS/Version: All
Status: NEW
Severity: normal
Priority: P
Component: C++
AssignedTo: unassignedclangbugs at nondot.org
ReportedBy: dimitry at andric.com
CC: dgregor at apple.com, llvmbugs at cs.uiuc.edu
Classification: Unclassified
Similar to bug 13662, but now with default visibility, somewhere in the Firefox
build it uses the following construction:
#pragma GCC visibility push(default)
#include <iterator>
When this is compiled with -stdlib=libc++, a bunch of errors pops up:
In file included from foxvis4.cpp:2:
/usr/include/c++/v1/iterator:1231:8: error: visibility does not match
previous declaration
inline _LIBCPP_INLINE_VISIBILITY
^
/usr/include/c++/v1/__config:129:51: note: expanded from macro
'_LIBCPP_INLINE_VISIBILITY'
#define _LIBCPP_INLINE_VISIBILITY __attribute__ ((__visibility__("hidden"),
__always_inline__))
^
foxvis4.cpp:1:13: note: previous attribute is here
#pragma GCC visibility push(default)
^
[...]
Reduced, the problem case becomes:
#pragma GCC visibility push(default)
template <class _Iter> class __wrap_iter;
template <class _Iter1, class _Iter2>
bool
operator==(const __wrap_iter<_Iter1>&, const __wrap_iter<_Iter2>&);
template <class _Iter1, class _Iter2>
inline __attribute__((__visibility__("hidden"), __always_inline__))
bool
operator==(const __wrap_iter<_Iter1>& __x, const __wrap_iter<_Iter2>& __y)
{
return true;
}
--
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
More information about the llvm-bugs
mailing list