Chris Jefferson spotted a problem with messages_base::catalog while getting libc++ to work on boost.  The standard says this type must be an int.  But this type is the key returned by the OS facility catopen.  On OS X the type returned by catopen is void*, which doesn't fit into an int on 64 bit platforms.  Chris suggested using ptrdiff_t instead of void*.  It still isn't compliant with the standard, but chances are that this change will fix what is ailing boost.  Chris also supplied the algorithm for distinguishing high-order pointers from error conditions.  Thanks Chris.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@126462 91177308-0d34-0410-b5e6-96231b3b80d8
1 file changed