Fixed validation failure due to collision of type sizes between int and long
parent
5a35640912
commit
e5171450e2
50
validat0.cpp
50
validat0.cpp
|
|
@ -336,18 +336,24 @@ bool TestConversion()
|
|||
{
|
||||
signed int v; bool p = true;
|
||||
{
|
||||
signed long v1 = std::numeric_limits<signed long>::min(); p = !SafeConvert(v1, v) && p;
|
||||
signed long v2 = std::numeric_limits<signed long>::max(); p = !SafeConvert(v2, v) && p;
|
||||
unsigned long v3 = std::numeric_limits<unsigned long>::max(); p = !SafeConvert(v3, v) && p;
|
||||
}
|
||||
{
|
||||
signed long long v1 = std::numeric_limits<signed long long>::min(); p = !SafeConvert(v1, v) && p;
|
||||
signed long long v2 = std::numeric_limits<signed long long>::max(); p = !SafeConvert(v2, v) && p;
|
||||
unsigned long long v3 = std::numeric_limits<unsigned long long>::max(); p = !SafeConvert(v3, v) && p;
|
||||
}
|
||||
// Guard i686 collision of type sizes
|
||||
if(sizeof(signed int) != sizeof(signed long))
|
||||
{
|
||||
signed long v1 = std::numeric_limits<signed long>::min(); p = !SafeConvert(v1, v) && p;
|
||||
signed long v2 = std::numeric_limits<signed long>::max(); p = !SafeConvert(v2, v) && p;
|
||||
unsigned long v3 = std::numeric_limits<unsigned long>::max(); p = !SafeConvert(v3, v) && p;
|
||||
}
|
||||
// Guard i686 collision of type sizes
|
||||
if(sizeof(signed int) != sizeof(signed long long))
|
||||
{
|
||||
signed long long v1 = std::numeric_limits<signed long long>::min(); p = !SafeConvert(v1, v) && p;
|
||||
signed long long v2 = std::numeric_limits<signed long long>::max(); p = !SafeConvert(v2, v) && p;
|
||||
unsigned long long v3 = std::numeric_limits<unsigned long long>::max(); p = !SafeConvert(v3, v) && p;
|
||||
}
|
||||
|
||||
std::cout << (!p ? "FAILED " : "passed ") << " signed int overflow" << std::endl;
|
||||
pass &= p;
|
||||
std::cout << (!p ? "FAILED " : "passed ") << " signed int overflow" << std::endl;
|
||||
pass &= p;
|
||||
}
|
||||
}
|
||||
|
||||
/********** unsigned int **********/
|
||||
|
|
@ -366,14 +372,20 @@ bool TestConversion()
|
|||
{
|
||||
unsigned int v; bool p = true;
|
||||
{
|
||||
unsigned long v1 = std::numeric_limits<unsigned long>::max(); p = !SafeConvert(v1, v) && p;
|
||||
}
|
||||
{
|
||||
unsigned long long v1 = std::numeric_limits<unsigned long long>::max(); p = !SafeConvert(v1, v) && p;
|
||||
}
|
||||
// Guard i686 collision of type sizes
|
||||
if(sizeof(unsigned int) != sizeof(unsigned long))
|
||||
{
|
||||
unsigned long v1 = std::numeric_limits<unsigned long>::max(); p = !SafeConvert(v1, v) && p;
|
||||
}
|
||||
// Guard i686 collision of type sizes
|
||||
if(sizeof(unsigned int) != sizeof(unsigned long long))
|
||||
{
|
||||
unsigned long long v1 = std::numeric_limits<unsigned long long>::max(); p = !SafeConvert(v1, v) && p;
|
||||
}
|
||||
|
||||
std::cout << (!p ? "FAILED " : "passed ") << " unsigned int overflow" << std::endl;
|
||||
pass &= p;
|
||||
std::cout << (!p ? "FAILED " : "passed ") << " unsigned int overflow" << std::endl;
|
||||
pass &= p;
|
||||
}
|
||||
}
|
||||
|
||||
/********** signed long **********/
|
||||
|
|
@ -393,6 +405,7 @@ bool TestConversion()
|
|||
|
||||
/********** signed long overflow **********/
|
||||
{
|
||||
// Guard x86_64 collision of type sizes
|
||||
if(sizeof(signed long) != sizeof(signed long long))
|
||||
{
|
||||
signed long v; bool p = true;
|
||||
|
|
@ -425,6 +438,7 @@ bool TestConversion()
|
|||
|
||||
/********** unsigned long overflow **********/
|
||||
{
|
||||
// Guard x86_64 collision of type sizes
|
||||
if(sizeof(unsigned long) != sizeof(unsigned long long))
|
||||
{
|
||||
unsigned long v; bool p = true;
|
||||
|
|
|
|||
Loading…
Reference in New Issue