From dda2e82cf6cba7c8f1514ad7104c1bdf7ef34776 Mon Sep 17 00:00:00 2001 From: Jeff Law Date: Wed, 6 May 1998 10:36:26 -0600 Subject: [PATCH] Another new test. From-SVN: r19588 --- .../gcc.c-torture/compile/980506-1.c | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 gcc/testsuite/gcc.c-torture/compile/980506-1.c 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 index 00000000000..6ef7796261f --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/980506-1.c @@ -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); + } +} +