From 7c49eb9de08186911e45362dfca78d5f679b1dd5 Mon Sep 17 00:00:00 2001 From: bernhardheld Date: Tue, 20 Jan 2004 21:07:26 +0000 Subject: [PATCH] * support/valdiag/tests/overflow.c: added shift tests git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3145 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- support/valdiag/tests/overflow.c | 42 +++++++++++++++++++++++++++++--- 1 file changed, 39 insertions(+), 3 deletions(-) diff --git a/support/valdiag/tests/overflow.c b/support/valdiag/tests/overflow.c index 550e3b0c..28be6546 100644 --- a/support/valdiag/tests/overflow.c +++ b/support/valdiag/tests/overflow.c @@ -1,4 +1,9 @@ +volatile char c; +volatile unsigned char uc; volatile int i; +volatile unsigned u; +volatile long l; +volatile unsigned long ul; #ifdef TEST0 void foo(void) @@ -11,11 +16,42 @@ void foo(void) #ifdef TEST1 void foo(void) { + c = 1 << 7; + + i = c << 10; i = 1 << 10; + i = c << 16; /* WARNING(SDCC) */ i = 1 << 16; /* WARNING(SDCC) */ - i = 1u << 16; /* WARNING(SDCC) */ - i = 1L << 31; - i = 1L << 32; /* WARNING */ + i = uc << 16; /* WARNING(SDCC) */ + + l = l << 31; + l = l << 32; /* WARNING */ + l = ul << 32; /* WARNING */ +} +#endif + + +#ifdef TEST2 +void foo(void) +{ + i = 1 >> 40; /* WARNING(GCC) */ + + i = uc >> 7; + i = 1 >> 7; + i = uc >> 8; /* WARNING(SDCC) */ +#if 0 + i = 1 >> 8; /* WARN___(SDCC) */ +#endif + + i = i >> 40; /* WARNING(GCC) */ + + i = u >> 15; + i = u >> 16; /* WARNING(SDCC) */ + + i = l >> 40; /* WARNING(GCC) */ + + i = ul >> 31; + i = ul >> 32; /* WARNING */ } #endif -- 2.30.2