From e67193f2dc72d45ab6f1b48850f190fd50a8fb75 Mon Sep 17 00:00:00 2001 From: George Rhoten Date: Sun, 21 May 2006 17:58:29 +0000 Subject: [PATCH] ICU-5196 Don't divide by zero. X-SVN-Rev: 19631 --- icu4c/source/test/intltest/winnmtst.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/icu4c/source/test/intltest/winnmtst.cpp b/icu4c/source/test/intltest/winnmtst.cpp index 5ee50a4a8b6..67ae187cefd 100644 --- a/icu4c/source/test/intltest/winnmtst.cpp +++ b/icu4c/source/test/intltest/winnmtst.cpp @@ -80,13 +80,13 @@ static uint64_t randomInt64(void) static double randomDouble(void) { double ran = 0; - int32_t i; if (!initialized) { srand((unsigned)time(NULL)); initialized = TRUE; } #if 0 + int32_t i; do { /* Assume rand has at least 12 bits of precision */ for (i = 0; i < sizeof(ran); i += 1) { @@ -95,7 +95,11 @@ static double randomDouble(void) } while (_isnan(ran)); #else int64_t numerator = randomInt64(); - int64_t denomenator = randomInt64(); + int64_t denomenator; + do { + denomenator = randomInt64(); + } + while (denomenator != 0); ran = (double)numerator / (double)denomenator; #endif