Re: [libcxx] r291345 - Replace identifiers called `__out` because Windows.h #defines it.

2017-01-07 Thread Saleem Abdulrasool via cfe-commits
Just a correction on the commit message: its not Windows.h that is defining
`__out`.  `__out` is a SAL keyword.  Unfortunately, I don't know of a way
to disable SAL.

On Sat, Jan 7, 2017 at 3:27 AM, Eric Fiselier via cfe-commits <
cfe-commits@lists.llvm.org> wrote:

> Author: ericwf
> Date: Sat Jan  7 05:27:06 2017
> New Revision: 291345
>
> URL: http://llvm.org/viewvc/llvm-project?rev=291345&view=rev
> Log:
> Replace identifiers called `__out` because Windows.h #defines it.
>
> Windows is greedy and it defines the identifier `__out` as a macro.
> This patch renames all conflicting libc++ identifiers in order
> to correctly work on Windows.
>
> Modified:
> libcxx/trunk/include/algorithm
> libcxx/trunk/include/experimental/algorithm
> libcxx/trunk/include/experimental/iterator
> libcxx/trunk/include/regex
> libcxx/trunk/test/support/nasty_macros.hpp
>
> Modified: libcxx/trunk/include/algorithm
> URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/
> algorithm?rev=291345&r1=291344&r2=291345&view=diff
> 
> ==
> --- libcxx/trunk/include/algorithm (original)
> +++ libcxx/trunk/include/algorithm Sat Jan  7 05:27:06 2017
> @@ -3100,28 +3100,28 @@ template class _UniformRandomNumberGenerator>
>  _LIBCPP_INLINE_VISIBILITY
>  _SampleIterator __sample(_PopulationIterator __first,
> - _PopulationIterator __last, _SampleIterator
> __out,
> + _PopulationIterator __last, _SampleIterator
> __output,
>   _Distance __n,
>   _UniformRandomNumberGenerator & __g,
>   input_iterator_tag) {
>
>_Distance __k = 0;
>for (; __first != __last && __k < __n; ++__first, (void)++__k)
> -__out[__k] = *__first;
> +__output[__k] = *__first;
>_Distance __sz = __k;
>for (; __first != __last; ++__first, (void)++__k) {
>  _Distance __r = _VSTD::uniform_int_distribution<_Distance>(0,
> __k)(__g);
>  if (__r < __sz)
> -  __out[__r] = *__first;
> +  __output[__r] = *__first;
>}
> -  return __out + _VSTD::min(__n, __k);
> +  return __output + _VSTD::min(__n, __k);
>  }
>
>  template  _Distance,
>class _UniformRandomNumberGenerator>
>  _LIBCPP_INLINE_VISIBILITY
>  _SampleIterator __sample(_PopulationIterator __first,
> - _PopulationIterator __last, _SampleIterator
> __out,
> + _PopulationIterator __last, _SampleIterator
> __output,
>   _Distance __n,
>   _UniformRandomNumberGenerator& __g,
>   forward_iterator_tag) {
> @@ -3130,18 +3130,18 @@ _SampleIterator __sample(_PopulationIter
>  _Distance __r =
>  _VSTD::uniform_int_distribution<_Distance>(0,
> --__unsampled_sz)(__g);
>  if (__r < __n) {
> -  *__out++ = *__first;
> +  *__output++ = *__first;
>--__n;
>  }
>}
> -  return __out;
> +  return __output;
>  }
>
>  template  _Distance,
>class _UniformRandomNumberGenerator>
>  _LIBCPP_INLINE_VISIBILITY
>  _SampleIterator __sample(_PopulationIterator __first,
> - _PopulationIterator __last, _SampleIterator
> __out,
> + _PopulationIterator __last, _SampleIterator
> __output,
>   _Distance __n, _UniformRandomNumberGenerator&
> __g) {
>typedef typename iterator_traits<_PopulationIterator>::iterator_
> category
>  _PopCategory;
> @@ -3153,7 +3153,7 @@ _SampleIterator __sample(_PopulationIter
>typedef typename common_type<_Distance, _Difference>::type _CommonType;
>_LIBCPP_ASSERT(__n >= 0, "N must be a positive number.");
>return _VSTD::__sample(
> -  __first, __last, __out, _CommonType(__n),
> +  __first, __last, __output, _CommonType(__n),
>__g, _PopCategory());
>  }
>
> @@ -3162,9 +3162,9 @@ template class _UniformRandomNumberGenerator>
>  inline _LIBCPP_INLINE_VISIBILITY
>  _SampleIterator sample(_PopulationIterator __first,
> -   _PopulationIterator __last, _SampleIterator __out,
> +   _PopulationIterator __last, _SampleIterator
> __output,
> _Distance __n, _UniformRandomNumberGenerator&&
> __g) {
> -return _VSTD::__sample(__first, __last, __out, __n, __g);
> +return _VSTD::__sample(__first, __last, __output, __n, __g);
>  }
>  #endif // _LIBCPP_STD_VER > 14
>
>
> Modified: libcxx/trunk/include/experimental/algorithm
> URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/
> experimental/algorithm?rev=291345&r1=291344&r2=291345&view=diff
> 
> ==
> --- libcxx/trunk/include/experimental/algorithm (original)
> +++ libcxx/trunk/include/experimental/algorithm Sat Jan  7 05:27:06 2017
> @@ -60,9 +60,9 @@ template c

[libcxx] r291345 - Replace identifiers called `__out` because Windows.h #defines it.

2017-01-07 Thread Eric Fiselier via cfe-commits
Author: ericwf
Date: Sat Jan  7 05:27:06 2017
New Revision: 291345

URL: http://llvm.org/viewvc/llvm-project?rev=291345&view=rev
Log:
Replace identifiers called `__out` because Windows.h #defines it.

Windows is greedy and it defines the identifier `__out` as a macro.
This patch renames all conflicting libc++ identifiers in order
to correctly work on Windows.

Modified:
libcxx/trunk/include/algorithm
libcxx/trunk/include/experimental/algorithm
libcxx/trunk/include/experimental/iterator
libcxx/trunk/include/regex
libcxx/trunk/test/support/nasty_macros.hpp

Modified: libcxx/trunk/include/algorithm
URL: 
http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/algorithm?rev=291345&r1=291344&r2=291345&view=diff
==
--- libcxx/trunk/include/algorithm (original)
+++ libcxx/trunk/include/algorithm Sat Jan  7 05:27:06 2017
@@ -3100,28 +3100,28 @@ template 
 _LIBCPP_INLINE_VISIBILITY
 _SampleIterator __sample(_PopulationIterator __first,
- _PopulationIterator __last, _SampleIterator __out,
+ _PopulationIterator __last, _SampleIterator __output,
  _Distance __n,
  _UniformRandomNumberGenerator & __g,
  input_iterator_tag) {
 
   _Distance __k = 0;
   for (; __first != __last && __k < __n; ++__first, (void)++__k)
-__out[__k] = *__first;
+__output[__k] = *__first;
   _Distance __sz = __k;
   for (; __first != __last; ++__first, (void)++__k) {
 _Distance __r = _VSTD::uniform_int_distribution<_Distance>(0, __k)(__g);
 if (__r < __sz)
-  __out[__r] = *__first;
+  __output[__r] = *__first;
   }
-  return __out + _VSTD::min(__n, __k);
+  return __output + _VSTD::min(__n, __k);
 }
 
 template 
 _LIBCPP_INLINE_VISIBILITY
 _SampleIterator __sample(_PopulationIterator __first,
- _PopulationIterator __last, _SampleIterator __out,
+ _PopulationIterator __last, _SampleIterator __output,
  _Distance __n,
  _UniformRandomNumberGenerator& __g,
  forward_iterator_tag) {
@@ -3130,18 +3130,18 @@ _SampleIterator __sample(_PopulationIter
 _Distance __r =
 _VSTD::uniform_int_distribution<_Distance>(0, --__unsampled_sz)(__g);
 if (__r < __n) {
-  *__out++ = *__first;
+  *__output++ = *__first;
   --__n;
 }
   }
-  return __out;
+  return __output;
 }
 
 template 
 _LIBCPP_INLINE_VISIBILITY
 _SampleIterator __sample(_PopulationIterator __first,
- _PopulationIterator __last, _SampleIterator __out,
+ _PopulationIterator __last, _SampleIterator __output,
  _Distance __n, _UniformRandomNumberGenerator& __g) {
   typedef typename iterator_traits<_PopulationIterator>::iterator_category
 _PopCategory;
@@ -3153,7 +3153,7 @@ _SampleIterator __sample(_PopulationIter
   typedef typename common_type<_Distance, _Difference>::type _CommonType;
   _LIBCPP_ASSERT(__n >= 0, "N must be a positive number.");
   return _VSTD::__sample(
-  __first, __last, __out, _CommonType(__n),
+  __first, __last, __output, _CommonType(__n),
   __g, _PopCategory());
 }
 
@@ -3162,9 +3162,9 @@ template 
 inline _LIBCPP_INLINE_VISIBILITY
 _SampleIterator sample(_PopulationIterator __first,
-   _PopulationIterator __last, _SampleIterator __out,
+   _PopulationIterator __last, _SampleIterator __output,
_Distance __n, _UniformRandomNumberGenerator&& __g) {
-return _VSTD::__sample(__first, __last, __out, __n, __g);
+return _VSTD::__sample(__first, __last, __output, __n, __g);
 }
 #endif // _LIBCPP_STD_VER > 14
 

Modified: libcxx/trunk/include/experimental/algorithm
URL: 
http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/experimental/algorithm?rev=291345&r1=291344&r2=291345&view=diff
==
--- libcxx/trunk/include/experimental/algorithm (original)
+++ libcxx/trunk/include/experimental/algorithm Sat Jan  7 05:27:06 2017
@@ -60,9 +60,9 @@ template 
 inline _LIBCPP_INLINE_VISIBILITY
 _SampleIterator sample(_PopulationIterator __first, _PopulationIterator __last,
-   _SampleIterator __out, _Distance __n,
+   _SampleIterator __output, _Distance __n,
_UniformRandomNumberGenerator &&__g) {
-  return _VSTD::__sample(__first, __last, __out, __n, __g);
+  return _VSTD::__sample(__first, __last, __output, __n, __g);
 }
 
 _LIBCPP_END_NAMESPACE_LFTS

Modified: libcxx/trunk/include/experimental/iterator
URL: 
http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/experimental/iterator?rev=291345&r1=291344&r2=291345&view=diff
==
---