Another new test.
authorJeff Law <law@gcc.gnu.org>
Wed, 6 May 1998 16:36:26 +0000 (10:36 -0600)
committerJeff Law <law@gcc.gnu.org>
Wed, 6 May 1998 16:36:26 +0000 (10:36 -0600)
From-SVN: r19588

gcc/testsuite/gcc.c-torture/compile/980506-1.c [new file with mode: 0644]

diff --git a/gcc/testsuite/gcc.c-torture/compile/980506-1.c b/gcc/testsuite/gcc.c-torture/compile/980506-1.c
new file mode 100644 (file)
index 0000000..6ef7796
--- /dev/null
@@ -0,0 +1,63 @@
+unsigned char  TIFFFax2DMode[20][256];
+unsigned char  TIFFFax2DNextState[20][256];
+unsigned char  TIFFFaxUncompAction[20][256];
+unsigned char  TIFFFaxUncompNextState[20][256];
+unsigned char  TIFFFax1DAction[230][256];
+unsigned char  TIFFFax1DNextState[230][256];
+
+typedef struct tableentry {
+    unsigned short length;
+    unsigned short code;
+    short       runlen;
+} tableentry;
+
+extern tableentry TIFFFaxWhiteCodes[];
+extern tableentry TIFFFaxBlackCodes[];
+
+static short sp_data, sp_bit;
+
+static unsigned char
+fetchByte (inbuf)
+
+unsigned char **inbuf;
+
+{
+    unsigned char byte = **inbuf;
+    (*inbuf)++;
+    return (byte);
+}
+
+static int
+decode_white_run (inbuf)
+
+unsigned char **inbuf;
+
+{
+    short state = sp_bit;
+    short action;
+    int runlen = 0;
+
+    for (;;)
+    {
+       if (sp_bit == 0)
+       {
+       nextbyte:
+           sp_data = fetchByte (inbuf);
+       }
+
+       action = TIFFFax1DAction[state][sp_data];
+       state = TIFFFax1DNextState[state][sp_data];
+       if (action == 0 )
+           goto nextbyte;
+       if (action == 1 )
+           return (-1 );
+       if (action == 210 )
+           return (-3 );
+       sp_bit = state;
+       action = (TIFFFaxWhiteCodes[ action - 2  ].runlen) ;
+       runlen += action;
+       if (action < 64)
+           return (runlen);
+    }
+}
+