diff options
author | Jeff Law <law@gcc.gnu.org> | 1998-05-06 10:36:26 -0600 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1998-05-06 10:36:26 -0600 |
commit | dda2e82cf6cba7c8f1514ad7104c1bdf7ef34776 (patch) | |
tree | a0a610feb61d173148c0b0334e11141d56949916 | |
parent | 5fe8708c3ca6502e879b398e00e6f52e2415c167 (diff) | |
download | gcc-dda2e82cf6cba7c8f1514ad7104c1bdf7ef34776.zip gcc-dda2e82cf6cba7c8f1514ad7104c1bdf7ef34776.tar.gz gcc-dda2e82cf6cba7c8f1514ad7104c1bdf7ef34776.tar.bz2 |
Another new test.
From-SVN: r19588
-rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/980506-1.c | 63 |
1 files changed, 63 insertions, 0 deletions
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 0000000..6ef7796 --- /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); + } +} + |