[PATCH] D48749: [Win32] Overload ==, != for locale_t and long long
This revision was automatically updated to reflect the committed changes. Closed by commit rCXX336141: [Win32] Overload ==, != for locale_t and long long (authored by pirama, committed by ). Changed prior to commit: https://reviews.llvm.org/D48749?vs=153411&id=153778#toc Repository: rCXX libc++ https://reviews.llvm.org/D48749 Files: include/support/win32/locale_win32.h Index: include/support/win32/locale_win32.h === --- include/support/win32/locale_win32.h +++ include/support/win32/locale_win32.h @@ -46,6 +46,10 @@ return __left.__locale == nullptr && __right == 0; } +friend bool operator==(const locale_t& __left, long long __right) { +return __left.__locale == nullptr && __right == 0; +} + friend bool operator==(const locale_t& __left, std::nullptr_t) { return __left.__locale == nullptr; } @@ -66,6 +70,10 @@ return !(__left == __right); } +friend bool operator!=(const locale_t& __left, long long __right) { +return !(__left == __right); +} + friend bool operator!=(const locale_t& __left, std::nullptr_t __right) { return !(__left == __right); } Index: include/support/win32/locale_win32.h === --- include/support/win32/locale_win32.h +++ include/support/win32/locale_win32.h @@ -46,6 +46,10 @@ return __left.__locale == nullptr && __right == 0; } +friend bool operator==(const locale_t& __left, long long __right) { +return __left.__locale == nullptr && __right == 0; +} + friend bool operator==(const locale_t& __left, std::nullptr_t) { return __left.__locale == nullptr; } @@ -66,6 +70,10 @@ return !(__left == __right); } +friend bool operator!=(const locale_t& __left, long long __right) { +return !(__left == __right); +} + friend bool operator!=(const locale_t& __left, std::nullptr_t __right) { return !(__left == __right); } ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D48749: [Win32] Overload ==, != for locale_t and long long
pirama created this revision. pirama added reviewers: mstorsjo, EricWF, srhines, danalbert. Herald added subscribers: ldionne, christof. _is_chartype_l (needed for isxdigit_l) in MinGW compares locale_t and NULL. NULL is 'long long' for 64-bit, and this results in ambiguous overloads when compiled with Clang. Define a concrete overload for the operators to fix the ambiguity. Repository: rCXX libc++ https://reviews.llvm.org/D48749 Files: include/support/win32/locale_win32.h Index: include/support/win32/locale_win32.h === --- include/support/win32/locale_win32.h +++ include/support/win32/locale_win32.h @@ -46,6 +46,10 @@ return __left.__locale == nullptr && __right == 0; } +friend bool operator==(const locale_t& __left, long long __right) { +return __left.__locale == nullptr && __right == 0; +} + friend bool operator==(const locale_t& __left, std::nullptr_t) { return __left.__locale == nullptr; } @@ -66,6 +70,10 @@ return !(__left == __right); } +friend bool operator!=(const locale_t& __left, long long __right) { +return !(__left == __right); +} + friend bool operator!=(const locale_t& __left, std::nullptr_t __right) { return !(__left == __right); } Index: include/support/win32/locale_win32.h === --- include/support/win32/locale_win32.h +++ include/support/win32/locale_win32.h @@ -46,6 +46,10 @@ return __left.__locale == nullptr && __right == 0; } +friend bool operator==(const locale_t& __left, long long __right) { +return __left.__locale == nullptr && __right == 0; +} + friend bool operator==(const locale_t& __left, std::nullptr_t) { return __left.__locale == nullptr; } @@ -66,6 +70,10 @@ return !(__left == __right); } +friend bool operator!=(const locale_t& __left, long long __right) { +return !(__left == __right); +} + friend bool operator!=(const locale_t& __left, std::nullptr_t __right) { return !(__left == __right); } ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits