mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-11-23 13:50:11 +00:00
Fixing up some ABI issues
llvm-svn: 134639
This commit is contained in:
parent
be652e6a24
commit
11af28bdbd
@ -452,6 +452,8 @@ public:
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
const error_code& code() const throw() {return __ec_;}
|
||||
|
||||
virtual ~future_error() _NOEXCEPT;
|
||||
};
|
||||
|
||||
class __assoc_sub_state
|
||||
|
@ -177,11 +177,13 @@ public:
|
||||
virtual ~basic_istream();
|
||||
protected:
|
||||
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
basic_istream(basic_istream&& __rhs);
|
||||
#endif
|
||||
|
||||
// 27.7.1.1.2 Assign/swap:
|
||||
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
basic_istream& operator=(basic_istream&& __rhs);
|
||||
#endif
|
||||
void swap(basic_istream& __rhs);
|
||||
@ -1504,11 +1506,13 @@ public:
|
||||
virtual ~basic_iostream();
|
||||
protected:
|
||||
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
basic_iostream(basic_iostream&& __rhs);
|
||||
#endif
|
||||
|
||||
// assign/swap
|
||||
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
basic_iostream& operator=(basic_iostream&& __rhs);
|
||||
#endif
|
||||
void swap(basic_iostream& __rhs);
|
||||
|
@ -154,11 +154,13 @@ public:
|
||||
virtual ~basic_ostream();
|
||||
protected:
|
||||
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
basic_ostream(basic_ostream&& __rhs);
|
||||
#endif
|
||||
|
||||
// 27.7.2.3 Assign/swap
|
||||
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
basic_ostream& operator=(basic_ostream&& __rhs);
|
||||
#endif
|
||||
void swap(basic_ostream& __rhs);
|
||||
|
@ -3969,54 +3969,6 @@ hash<basic_string<_CharT, _Traits, _Allocator> >::operator()(
|
||||
extern template class basic_string<char>;
|
||||
extern template class basic_string<wchar_t>;
|
||||
|
||||
extern template
|
||||
enable_if<__is_forward_iterator<char const*>::value, void>::type
|
||||
basic_string<char, char_traits<char>, allocator<char> >::
|
||||
__init<char const*>(char const*, char const*);
|
||||
|
||||
extern template
|
||||
enable_if<__is_forward_iterator<wchar_t const*>::value, void>::type
|
||||
basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> >::
|
||||
__init<wchar_t const*>(wchar_t const*, wchar_t const*);
|
||||
|
||||
extern template
|
||||
enable_if<__is_forward_iterator<char*>::value,
|
||||
basic_string<char, char_traits<char>, allocator<char> >&>::type
|
||||
basic_string<char, char_traits<char>, allocator<char> >::
|
||||
append<char*>(char*, char*);
|
||||
|
||||
extern template
|
||||
enable_if<__is_forward_iterator<wchar_t*>::value,
|
||||
basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> >&>::type
|
||||
basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> >::
|
||||
append<wchar_t*>(wchar_t*, wchar_t*);
|
||||
|
||||
extern template
|
||||
enable_if<__is_forward_iterator<char const*>::value,
|
||||
string::iterator>::type
|
||||
string::
|
||||
insert<char const*>(string::const_iterator, char const*, char const*);
|
||||
|
||||
extern template
|
||||
enable_if<__is_forward_iterator<wchar_t const*>::value,
|
||||
wstring::iterator>::type
|
||||
wstring::
|
||||
insert<wchar_t const*>(wstring::const_iterator, wchar_t const*, wchar_t const*);
|
||||
|
||||
extern template
|
||||
enable_if<__is_input_iterator<char const*>::value, string&>::type
|
||||
string::
|
||||
replace<char const*>(string::const_iterator, string::const_iterator, char const*, char const*);
|
||||
|
||||
extern template
|
||||
enable_if<__is_input_iterator<wchar_t const*>::value, wstring&>::type
|
||||
wstring::
|
||||
replace<wchar_t const*>(wstring::const_iterator, wstring::const_iterator, wchar_t const*, wchar_t const*);
|
||||
|
||||
extern template
|
||||
enable_if<__is_forward_iterator<wchar_t*>::value, wstring&>::type
|
||||
wstring::assign<wchar_t*>(wchar_t*, wchar_t*);
|
||||
|
||||
extern template
|
||||
string
|
||||
operator+<char, char_traits<char>, allocator<char> >(char const*, string const&);
|
||||
|
@ -150,7 +150,9 @@ public:
|
||||
strstreambuf(const unsigned char* __gnext, streamsize __n);
|
||||
|
||||
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
strstreambuf(strstreambuf&& __rhs);
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
strstreambuf& operator=(strstreambuf&& __rhs);
|
||||
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
||||
|
||||
@ -187,6 +189,43 @@ private:
|
||||
void __init(char* __gnext, streamsize __n, char* __pbeg);
|
||||
};
|
||||
|
||||
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
||||
|
||||
inline _LIBCPP_INLINE_VISIBILITY
|
||||
strstreambuf::strstreambuf(strstreambuf&& __rhs)
|
||||
: streambuf(__rhs),
|
||||
__strmode_(__rhs.__strmode_),
|
||||
__alsize_(__rhs.__alsize_),
|
||||
__palloc_(__rhs.__palloc_),
|
||||
__pfree_(__rhs.__pfree_)
|
||||
{
|
||||
__rhs.setg(nullptr, nullptr, nullptr);
|
||||
__rhs.setp(nullptr, nullptr);
|
||||
}
|
||||
|
||||
inline _LIBCPP_INLINE_VISIBILITY
|
||||
strstreambuf&
|
||||
strstreambuf::operator=(strstreambuf&& __rhs)
|
||||
{
|
||||
if (eback() && (__strmode_ & __allocated) != 0 && (__strmode_ & __frozen) == 0)
|
||||
{
|
||||
if (__pfree_)
|
||||
__pfree_(eback());
|
||||
else
|
||||
delete [] eback();
|
||||
}
|
||||
streambuf::operator=(__rhs);
|
||||
__strmode_ = __rhs.__strmode_;
|
||||
__alsize_ = __rhs.__alsize_;
|
||||
__palloc_ = __rhs.__palloc_;
|
||||
__pfree_ = __rhs.__pfree_;
|
||||
__rhs.setg(nullptr, nullptr, nullptr);
|
||||
__rhs.setp(nullptr, nullptr);
|
||||
return *this;
|
||||
}
|
||||
|
||||
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
||||
|
||||
class _LIBCPP_VISIBLE istrstream
|
||||
: public istream
|
||||
{
|
||||
|
@ -19,52 +19,6 @@ template class __basic_string_common<true>;
|
||||
template class basic_string<char>;
|
||||
template class basic_string<wchar_t>;
|
||||
|
||||
template enable_if<__is_forward_iterator<char const*>::value, void>::type
|
||||
basic_string<char, char_traits<char>, allocator<char> >
|
||||
::__init<char const*>(char const*, char const*);
|
||||
|
||||
template enable_if<__is_forward_iterator<wchar_t const*>::value, void>::type
|
||||
basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> >
|
||||
::__init<wchar_t const*>(wchar_t const*, wchar_t const*);
|
||||
|
||||
template
|
||||
enable_if<__is_forward_iterator<char*>::value,
|
||||
basic_string<char, char_traits<char>, allocator<char> >&>::type
|
||||
basic_string<char, char_traits<char>, allocator<char> >::
|
||||
append<char*>(char*, char*);
|
||||
|
||||
template
|
||||
enable_if<__is_forward_iterator<wchar_t*>::value,
|
||||
basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> >&>::type
|
||||
basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> >::
|
||||
append<wchar_t*>(wchar_t*, wchar_t*);
|
||||
|
||||
template
|
||||
enable_if<__is_forward_iterator<char const*>::value,
|
||||
string::iterator>::type
|
||||
string::
|
||||
insert<char const*>(string::const_iterator, char const*, char const*);
|
||||
|
||||
template
|
||||
enable_if<__is_forward_iterator<wchar_t const*>::value,
|
||||
wstring::iterator>::type
|
||||
wstring::
|
||||
insert<wchar_t const*>(wstring::const_iterator, wchar_t const*, wchar_t const*);
|
||||
|
||||
template
|
||||
enable_if<__is_input_iterator<char const*>::value, string&>::type
|
||||
string::
|
||||
replace<char const*>(string::const_iterator, string::const_iterator, char const*, char const*);
|
||||
|
||||
template
|
||||
enable_if<__is_input_iterator<wchar_t const*>::value, wstring&>::type
|
||||
wstring::
|
||||
replace<wchar_t const*>(wstring::const_iterator, wstring::const_iterator, wchar_t const*, wchar_t const*);
|
||||
|
||||
template
|
||||
enable_if<__is_forward_iterator<wchar_t*>::value, wstring&>::type
|
||||
wstring::assign<wchar_t*>(wchar_t*, wchar_t*);
|
||||
|
||||
template
|
||||
string
|
||||
operator+<char, char_traits<char>, allocator<char> >(char const*, string const&);
|
||||
|
@ -100,41 +100,6 @@ strstreambuf::strstreambuf(const unsigned char* __gnext, streamsize __n)
|
||||
__init((char*)__gnext, __n, nullptr);
|
||||
}
|
||||
|
||||
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
||||
|
||||
strstreambuf::strstreambuf(strstreambuf&& __rhs)
|
||||
: streambuf(__rhs),
|
||||
__strmode_(__rhs.__strmode_),
|
||||
__alsize_(__rhs.__alsize_),
|
||||
__palloc_(__rhs.__palloc_),
|
||||
__pfree_(__rhs.__pfree_)
|
||||
{
|
||||
__rhs.setg(nullptr, nullptr, nullptr);
|
||||
__rhs.setp(nullptr, nullptr);
|
||||
}
|
||||
|
||||
strstreambuf&
|
||||
strstreambuf::operator=(strstreambuf&& __rhs)
|
||||
{
|
||||
if (eback() && (__strmode_ & __allocated) != 0 && (__strmode_ & __frozen) == 0)
|
||||
{
|
||||
if (__pfree_)
|
||||
__pfree_(eback());
|
||||
else
|
||||
delete [] eback();
|
||||
}
|
||||
streambuf::operator=(__rhs);
|
||||
__strmode_ = __rhs.__strmode_;
|
||||
__alsize_ = __rhs.__alsize_;
|
||||
__palloc_ = __rhs.__palloc_;
|
||||
__pfree_ = __rhs.__pfree_;
|
||||
__rhs.setg(nullptr, nullptr, nullptr);
|
||||
__rhs.setp(nullptr, nullptr);
|
||||
return *this;
|
||||
}
|
||||
|
||||
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
||||
|
||||
strstreambuf::~strstreambuf()
|
||||
{
|
||||
if (eback() && (__strmode_ & __allocated) != 0 && (__strmode_ & __frozen) == 0)
|
||||
|
@ -28,8 +28,18 @@ int main()
|
||||
assert( (t1 <= t2));
|
||||
assert(!(t1 > t2));
|
||||
assert( (t1 >= t2));
|
||||
if (t1 < t3)
|
||||
{
|
||||
assert( (t1 < t3));
|
||||
assert( (t1 <= t3));
|
||||
assert(!(t1 > t3));
|
||||
assert(!(t1 >= t3));
|
||||
}
|
||||
else
|
||||
{
|
||||
assert(!(t1 < t3));
|
||||
assert(!(t1 <= t3));
|
||||
assert( (t1 > t3));
|
||||
assert( (t1 >= t3));
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user