[llvm] r200767 - Implemented support for Process::GetRandomNumber on Windows.

Galina Kistanova gkistanova at gmail.com
Mon Feb 10 11:05:07 PST 2014


Hi Aaron,

Seems this revision broke clang-native-mingw32-win7 builder:
http://lab.llvm.org:8011/builders/clang-native-mingw32-win7/builds/5557

The last successful build was for revision 200765:
http://lab.llvm.org:8011/builders/clang-native-mingw32-win7/builds/5578
Please have a look at it.

Thanks

Galina



On Tue, Feb 4, 2014 at 6:49 AM, Aaron Ballman <aaron at aaronballman.com>wrote:

> Author: aaronballman
> Date: Tue Feb  4 08:49:21 2014
> New Revision: 200767
>
> URL: http://llvm.org/viewvc/llvm-project?rev=200767&view=rev
> Log:
> Implemented support for Process::GetRandomNumber on Windows.
>
> Patch thanks to Stephan Tolksdorf!
>
> Modified:
>     llvm/trunk/lib/Support/Process.cpp
>     llvm/trunk/lib/Support/Windows/Process.inc
>     llvm/trunk/unittests/Support/ProcessTest.cpp
>
> Modified: llvm/trunk/lib/Support/Process.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/Process.cpp?rev=200767&r1=200766&r2=200767&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Support/Process.cpp (original)
> +++ llvm/trunk/lib/Support/Process.cpp Tue Feb  4 08:49:21 2014
> @@ -12,6 +12,11 @@
>
>  //===----------------------------------------------------------------------===//
>
>  #include "llvm/Config/config.h"
> +#if LLVM_ON_WIN32
> +  // This define makes stdlib.h declare the rand_s function.
> +#define _CRT_RAND_S
> +#include <stdlib.h>
> +#endif
>  #include "llvm/Support/ErrorHandling.h"
>  #include "llvm/Support/Process.h"
>
>
> Modified: llvm/trunk/lib/Support/Windows/Process.inc
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/Windows/Process.inc?rev=200767&r1=200766&r2=200767&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Support/Windows/Process.inc (original)
> +++ llvm/trunk/lib/Support/Windows/Process.inc Tue Feb  4 08:49:21 2014
> @@ -360,3 +360,10 @@ const char *Process::ResetColor() {
>    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
> defaultColors());
>    return 0;
>  }
> +
> +unsigned Process::GetRandomNumber() {
> +  unsigned int result;
> +  const errno_t ec = rand_s(&result);
> +  assert(ec == 0 && "rand_s failed");
> +  return result;
> +}
>
> Modified: llvm/trunk/unittests/Support/ProcessTest.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/Support/ProcessTest.cpp?rev=200767&r1=200766&r2=200767&view=diff
>
> ==============================================================================
> --- llvm/trunk/unittests/Support/ProcessTest.cpp (original)
> +++ llvm/trunk/unittests/Support/ProcessTest.cpp Tue Feb  4 08:49:21 2014
> @@ -39,6 +39,13 @@ TEST(ProcessTest, SelfProcess) {
>    EXPECT_GT(TimeValue::MaxTime, process::get_self()->get_wall_time());
>  }
>
> +TEST(ProcessTest, GetRandomNumberTest) {
> +  const unsigned r1 = Process::GetRandomNumber();
> +  const unsigned r2 = Process::GetRandomNumber();
> +  // It should be extremely unlikely that both r1 and r2 are 0.
> +  EXPECT_NE((r1 | r2), 0);
> +}
> +
>  #ifdef _MSC_VER
>  #define setenv(name, var, ignore) _putenv_s(name, var)
>  #endif
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>



-- 
Thanks

Galina
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140210/c38a0626/attachment.html>


More information about the llvm-commits mailing list