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

Aaron Ballman aaron at aaronballman.com
Mon Feb 10 11:15:33 PST 2014


Thank you for pointing this out, Galina and sorry for the difficulties!

Stephan, would you be able to look into this?

~Aaron

On Mon, Feb 10, 2014 at 2:05 PM, Galina Kistanova <gkistanova at gmail.com> wrote:
> 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



More information about the llvm-commits mailing list