* support/valdiag/tests/overflow.c: added shift tests
authorbernhardheld <bernhardheld@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Tue, 20 Jan 2004 21:07:26 +0000 (21:07 +0000)
committerbernhardheld <bernhardheld@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Tue, 20 Jan 2004 21:07:26 +0000 (21:07 +0000)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3145 4a8a32a2-be11-0410-ad9d-d568d2c75423

support/valdiag/tests/overflow.c

index 550e3b0c1084e4629cd5a7ac506ef1b163ce934c..28be6546d92012c4c4fe4fa977219fad6384567b 100644 (file)
@@ -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