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 int v; bool p = true;
|
||||||
{
|
{
|
||||||
signed long v1 = std::numeric_limits<signed long>::min(); p = !SafeConvert(v1, v) && p;
|
// Guard i686 collision of type sizes
|
||||||
signed long v2 = std::numeric_limits<signed long>::max(); p = !SafeConvert(v2, v) && p;
|
if(sizeof(signed int) != sizeof(signed long))
|
||||||
unsigned long v3 = std::numeric_limits<unsigned long>::max(); p = !SafeConvert(v3, v) && p;
|
{
|
||||||
}
|
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;
|
||||||
signed long long v1 = std::numeric_limits<signed long long>::min(); p = !SafeConvert(v1, v) && p;
|
unsigned long v3 = std::numeric_limits<unsigned long>::max(); p = !SafeConvert(v3, 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 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;
|
std::cout << (!p ? "FAILED " : "passed ") << " signed int overflow" << std::endl;
|
||||||
pass &= p;
|
pass &= p;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/********** unsigned int **********/
|
/********** unsigned int **********/
|
||||||
|
|
@ -366,14 +372,20 @@ bool TestConversion()
|
||||||
{
|
{
|
||||||
unsigned int v; bool p = true;
|
unsigned int v; bool p = true;
|
||||||
{
|
{
|
||||||
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))
|
||||||
{
|
{
|
||||||
unsigned long long v1 = std::numeric_limits<unsigned long long>::max(); p = !SafeConvert(v1, v) && p;
|
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;
|
std::cout << (!p ? "FAILED " : "passed ") << " unsigned int overflow" << std::endl;
|
||||||
pass &= p;
|
pass &= p;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/********** signed long **********/
|
/********** signed long **********/
|
||||||
|
|
@ -393,6 +405,7 @@ bool TestConversion()
|
||||||
|
|
||||||
/********** signed long overflow **********/
|
/********** signed long overflow **********/
|
||||||
{
|
{
|
||||||
|
// Guard x86_64 collision of type sizes
|
||||||
if(sizeof(signed long) != sizeof(signed long long))
|
if(sizeof(signed long) != sizeof(signed long long))
|
||||||
{
|
{
|
||||||
signed long v; bool p = true;
|
signed long v; bool p = true;
|
||||||
|
|
@ -425,6 +438,7 @@ bool TestConversion()
|
||||||
|
|
||||||
/********** unsigned long overflow **********/
|
/********** unsigned long overflow **********/
|
||||||
{
|
{
|
||||||
|
// Guard x86_64 collision of type sizes
|
||||||
if(sizeof(unsigned long) != sizeof(unsigned long long))
|
if(sizeof(unsigned long) != sizeof(unsigned long long))
|
||||||
{
|
{
|
||||||
unsigned long v; bool p = true;
|
unsigned long v; bool p = true;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue