From 89dd1dd2782de71d56c512e44b9dfda2f7b95351 Mon Sep 17 00:00:00 2001 From: Eric Fiselier Date: Thu, 21 Apr 2016 22:54:21 +0000 Subject: [PATCH] Fix most GCC attribute ignored warnings llvm-svn: 267074 --- libcxx/include/__config | 6 ------ libcxx/include/__functional_base | 2 -- libcxx/include/bitset | 2 +- libcxx/include/memory | 10 ++++------ libcxx/include/stdexcept | 6 +++++- libcxx/include/string | 20 ++++++++++---------- libcxx/include/thread | 2 +- libcxx/include/type_traits | 1 + libcxx/src/locale.cpp | 6 +++--- 9 files changed, 25 insertions(+), 30 deletions(-) diff --git a/libcxx/include/__config b/libcxx/include/__config index a28a0a4..a4c6cec 100644 --- a/libcxx/include/__config +++ b/libcxx/include/__config @@ -319,8 +319,6 @@ typedef __char32_t char32_t; # define _LIBCPP_NORETURN __attribute__ ((noreturn)) #endif -#define _LIBCPP_UNUSED __attribute__((__unused__)) - #if !(__has_feature(cxx_default_function_template_args)) #define _LIBCPP_HAS_NO_DEFAULT_FUNCTION_TEMPLATE_ARGS #endif @@ -459,8 +457,6 @@ namespace std { #define _LIBCPP_NORETURN __attribute__((noreturn)) -#define _LIBCPP_UNUSED __attribute__((__unused__)) - #if _GNUC_VER >= 407 #define _LIBCPP_UNDERLYING_TYPE(T) __underlying_type(T) #define _LIBCPP_IS_LITERAL(T) __is_literal_type(T) @@ -566,7 +562,6 @@ using namespace _LIBCPP_NAMESPACE __attribute__((__strong__)); #define _LIBCPP_HAS_NO_NOEXCEPT #define __alignof__ __alignof #define _LIBCPP_NORETURN __declspec(noreturn) -#define _LIBCPP_UNUSED #define _ALIGNAS(x) __declspec(align(x)) #define _LIBCPP_HAS_NO_VARIADICS @@ -588,7 +583,6 @@ namespace std { #define _ALIGNAS_TYPE(x) __attribute__((__aligned__(__alignof(x)))) #define _ATTRIBUTE(x) __attribute__((x)) #define _LIBCPP_NORETURN __attribute__((noreturn)) -#define _LIBCPP_UNUSED #define _LIBCPP_HAS_NO_DEFAULT_FUNCTION_TEMPLATE_ARGS #define _LIBCPP_HAS_NO_TEMPLATE_ALIASES diff --git a/libcxx/include/__functional_base b/libcxx/include/__functional_base index feb587f7..1a08ea2 100644 --- a/libcxx/include/__functional_base +++ b/libcxx/include/__functional_base @@ -38,8 +38,6 @@ struct _LIBCPP_TYPE_VIS_ONLY binary_function typedef _Result result_type; }; -template struct _LIBCPP_TYPE_VIS_ONLY hash; - template struct __has_result_type { diff --git a/libcxx/include/bitset b/libcxx/include/bitset index 87d7afc..3f9b964 100644 --- a/libcxx/include/bitset +++ b/libcxx/include/bitset @@ -656,7 +656,7 @@ __bitset<0, 0>::__bitset(unsigned long long) _NOEXCEPT } template class _LIBCPP_TYPE_VIS_ONLY bitset; -template struct _LIBCPP_TYPE_VIS_ONLY hash >; +template struct hash >; template class _LIBCPP_TYPE_VIS_ONLY bitset diff --git a/libcxx/include/memory b/libcxx/include/memory index 67f2fc5..e59fd5d 100644 --- a/libcxx/include/memory +++ b/libcxx/include/memory @@ -3166,8 +3166,6 @@ template #endif // _LIBCPP_STD_VER > 11 -template struct hash; - template inline _LIBCPP_INLINE_VISIBILITY _Size @@ -3978,23 +3976,23 @@ public: _LIBCPP_INLINE_VISIBILITY operator=(shared_ptr<_Yp>&& __r); template + _LIBCPP_INLINE_VISIBILITY typename enable_if < !is_array<_Yp>::value && is_convertible<_Yp*, element_type*>::value, shared_ptr >::type& - _LIBCPP_INLINE_VISIBILITY operator=(auto_ptr<_Yp>&& __r); #else // _LIBCPP_HAS_NO_RVALUE_REFERENCES template + _LIBCPP_INLINE_VISIBILITY typename enable_if < !is_array<_Yp>::value && is_convertible<_Yp*, element_type*>::value, shared_ptr& >::type - _LIBCPP_INLINE_VISIBILITY operator=(auto_ptr<_Yp> __r); #endif template @@ -5622,7 +5620,7 @@ _LIBCPP_FUNC_VIS void* align(size_t __align, size_t __sz, void*& __ptr, size_t& // --- Helper for container swap -- template -_LIBCPP_INLINE_VISIBILITY +inline _LIBCPP_INLINE_VISIBILITY void __swap_allocator(_Alloc & __a1, _Alloc & __a2) #if _LIBCPP_STD_VER >= 14 _NOEXCEPT @@ -5648,7 +5646,7 @@ void __swap_allocator(_Alloc & __a1, _Alloc & __a2, true_type) } template -_LIBCPP_INLINE_VISIBILITY +inline _LIBCPP_INLINE_VISIBILITY void __swap_allocator(_Alloc &, _Alloc &, false_type) _NOEXCEPT {} template > diff --git a/libcxx/include/stdexcept b/libcxx/include/stdexcept index f251806..4218b13 100644 --- a/libcxx/include/stdexcept +++ b/libcxx/include/stdexcept @@ -53,7 +53,11 @@ public: #ifndef _LIBCPP___REFSTRING _LIBCPP_BEGIN_NAMESPACE_STD class _LIBCPP_HIDDEN __libcpp_refstring { - const char *__imp_ _LIBCPP_UNUSED; +#ifdef __clang__ + const char *__imp_ __attribute__((__unused__)); // only clang emits a warning +#else + const char *__imp_; +#endif }; _LIBCPP_END_NAMESPACE_STD #endif diff --git a/libcxx/include/string b/libcxx/include/string index 51cf810..786735f 100644 --- a/libcxx/include/string +++ b/libcxx/include/string @@ -961,7 +961,7 @@ char_traits::assign(char_type* __s, size_t __n, char_type __a) // __str_find template -_SizeT _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY +inline _SizeT _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY __str_find(const _CharT *__p, _SizeT __sz, _CharT __c, _SizeT __pos) _NOEXCEPT { @@ -974,7 +974,7 @@ __str_find(const _CharT *__p, _SizeT __sz, } template -_SizeT _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY +inline _SizeT _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY __str_find(const _CharT *__p, _SizeT __sz, const _CharT* __s, _SizeT __pos, _SizeT __n) _NOEXCEPT { @@ -995,7 +995,7 @@ __str_find(const _CharT *__p, _SizeT __sz, // __str_rfind template -_SizeT _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY +inline _SizeT _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY __str_rfind(const _CharT *__p, _SizeT __sz, _CharT __c, _SizeT __pos) _NOEXCEPT { @@ -1014,7 +1014,7 @@ __str_rfind(const _CharT *__p, _SizeT __sz, } template -_SizeT _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY +inline _SizeT _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY __str_rfind(const _CharT *__p, _SizeT __sz, const _CharT* __s, _SizeT __pos, _SizeT __n) _NOEXCEPT { @@ -1033,7 +1033,7 @@ __str_rfind(const _CharT *__p, _SizeT __sz, // __str_find_first_of template -_SizeT _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY +inline _SizeT _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY __str_find_first_of(const _CharT *__p, _SizeT __sz, const _CharT* __s, _SizeT __pos, _SizeT __n) _NOEXCEPT { @@ -1049,7 +1049,7 @@ __str_find_first_of(const _CharT *__p, _SizeT __sz, // __str_find_last_of template -_SizeT _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY +inline _SizeT _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY __str_find_last_of(const _CharT *__p, _SizeT __sz, const _CharT* __s, _SizeT __pos, _SizeT __n) _NOEXCEPT { @@ -1072,7 +1072,7 @@ __str_find_last_of(const _CharT *__p, _SizeT __sz, // __str_find_first_not_of template -_SizeT _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY +inline _SizeT _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY __str_find_first_not_of(const _CharT *__p, _SizeT __sz, const _CharT* __s, _SizeT __pos, _SizeT __n) _NOEXCEPT { @@ -1088,7 +1088,7 @@ __str_find_first_not_of(const _CharT *__p, _SizeT __sz, template -_SizeT _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY +inline _SizeT _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY __str_find_first_not_of(const _CharT *__p, _SizeT __sz, _CharT __c, _SizeT __pos) _NOEXCEPT { @@ -1105,7 +1105,7 @@ __str_find_first_not_of(const _CharT *__p, _SizeT __sz, // __str_find_last_not_of template -_SizeT _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY +inline _SizeT _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY __str_find_last_not_of(const _CharT *__p, _SizeT __sz, const _CharT* __s, _SizeT __pos, _SizeT __n) _NOEXCEPT { @@ -1121,7 +1121,7 @@ __str_find_last_not_of(const _CharT *__p, _SizeT __sz, template -_SizeT _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY +inline _SizeT _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY __str_find_last_not_of(const _CharT *__p, _SizeT __sz, _CharT __c, _SizeT __pos) _NOEXCEPT { diff --git a/libcxx/include/thread b/libcxx/include/thread index c3eb437..bf5b8e8 100644 --- a/libcxx/include/thread +++ b/libcxx/include/thread @@ -219,7 +219,7 @@ _LIBCPP_INLINE_VISIBILITY __thread_id get_id() _NOEXCEPT; } // this_thread -template<> struct _LIBCPP_TYPE_VIS_ONLY hash<__thread_id>; +template<> struct hash<__thread_id>; class _LIBCPP_TYPE_VIS_ONLY __thread_id { diff --git a/libcxx/include/type_traits b/libcxx/include/type_traits index b4af37d..1ebdafb 100644 --- a/libcxx/include/type_traits +++ b/libcxx/include/type_traits @@ -382,6 +382,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD template struct _LIBCPP_TYPE_VIS_ONLY pair; template class _LIBCPP_TYPE_VIS_ONLY reference_wrapper; +template struct _LIBCPP_TYPE_VIS_ONLY hash; template struct __void_t { typedef void type; }; diff --git a/libcxx/src/locale.cpp b/libcxx/src/locale.cpp index 666f277..bc2427b 100644 --- a/libcxx/src/locale.cpp +++ b/libcxx/src/locale.cpp @@ -2825,10 +2825,10 @@ ucs4_to_utf16le(const uint32_t* frm, const uint32_t* frm_end, const uint32_t*& f to_nxt = to; if (mode & generate_header) { - if (to_end-to_nxt < 2) + if (to_end - to_nxt < 2) return codecvt_base::partial; - *to_nxt++ = static_cast(0xFF); - *to_nxt++ = static_cast(0xFE); + *to_nxt++ = static_cast(0xFF); + *to_nxt++ = static_cast(0xFE); } for (; frm_nxt < frm_end; ++frm_nxt) { -- 2.7.4