2003-12-26 Guilhem Lavaux <guilhem@kaffe.org>
[official-gcc.git] / gcc / testsuite / gcc.c-torture / compile / 20011229-1.c
blob97b2655434adbc0b6fe848a6f496279458736020
1 /* ICE: call insn does not satisfy its constraints, MMIX port.
2 Origin: ghostscript-6.52, reduction from hp@bitrange.com. */
3 struct s0
5 void (*init_color)(void *, void *);
6 };
7 struct s1
9 void (*map_cmyk)(short, void *, void **, void *);
10 void (*map_rgb_alpha)(short, void *, void **, void *);
12 struct s5
14 long fill1; int fill2;
15 long fill3; unsigned int fill4, fill5;
17 struct s2
19 struct s5 x, y;
21 struct s3
23 long dev_color;
24 unsigned int key;
26 struct s4
28 unsigned char spp;
29 int alpha;
30 struct mc_
32 unsigned int values[14];
33 unsigned int mask, test;
34 int exact;
35 } mask_color;
36 void **pis;
37 struct s0 *pcs;
38 struct dd_
40 struct s2 row[2];
41 struct s2 pixel0;
42 } dda;
43 struct s3 clues[256];
45 extern struct s1 *get_cmap_procs (void **, void *);
46 int image_render_color (struct s4 *, unsigned char *, int, void *);
47 int
48 image_render_color (struct s4 *penum, unsigned char *buffer,
49 int data_x, void *dev)
51 struct s3 *clues = penum->clues;
52 void **pis = penum->pis;
53 struct s2 pnext;
54 struct s0 *pcs = penum->pcs;
55 struct s1 *cmap_procs = get_cmap_procs(pis, dev);
56 void (*map_4)(short, void *, void **, void *) =
57 (penum->alpha ? cmap_procs->map_rgb_alpha : cmap_procs->map_cmyk);
58 unsigned int mask = penum->mask_color.mask;
59 unsigned int test = penum->mask_color.test;
60 struct s3 *pic_next = &clues[1];
61 int spp = penum->spp;
62 unsigned char *psrc = buffer + data_x * spp;
63 unsigned char v[6];
65 pnext = penum->dda.pixel0;
66 __builtin_memset (&v, 0, sizeof(v));
67 (*(pcs)->init_color) (0, 0);
69 if (spp == 4)
71 v[0] = psrc[0];
72 v[1] = psrc[1];
73 if ((buffer[0] & mask) == test && penum->mask_color.exact)
74 pic_next->dev_color = 0;
75 (*map_4)(v[0], &pic_next->dev_color, pis, dev);
77 return 0;