c++: normalizing ttp constraints [PR115656]
[official-gcc.git] / gcc / testsuite / gcc.c-torture / compile / 20011229-1.c
blob99aeab7d7cd25a27fe75ec6713848d17be5a85a5
1 /* ICE: call insn does not satisfy its constraints, MMIX port.
2 Origin: ghostscript-6.52, reduction from hp@bitrange.com. */
4 /* { dg-require-effective-target indirect_calls } */
6 struct s0
8 void (*init_color)(void *, void *);
9 };
10 struct s1
12 void (*map_cmyk)(short, void *, void **, void *);
13 void (*map_rgb_alpha)(short, void *, void **, void *);
15 struct s5
17 long fill1; int fill2;
18 long fill3; unsigned int fill4, fill5;
20 struct s2
22 struct s5 x, y;
24 struct s3
26 long dev_color;
27 unsigned int key;
29 struct s4
31 unsigned char spp;
32 int alpha;
33 struct mc_
35 unsigned int values[14];
36 unsigned int mask, test;
37 int exact;
38 } mask_color;
39 void **pis;
40 struct s0 *pcs;
41 struct dd_
43 struct s2 row[2];
44 struct s2 pixel0;
45 } dda;
46 struct s3 clues[256];
48 extern struct s1 *get_cmap_procs (void **, void *);
49 int image_render_color (struct s4 *, unsigned char *, int, void *);
50 int
51 image_render_color (struct s4 *penum, unsigned char *buffer,
52 int data_x, void *dev)
54 struct s3 *clues = penum->clues;
55 void **pis = penum->pis;
56 struct s2 pnext;
57 struct s0 *pcs = penum->pcs;
58 struct s1 *cmap_procs = get_cmap_procs(pis, dev);
59 void (*map_4)(short, void *, void **, void *) =
60 (penum->alpha ? cmap_procs->map_rgb_alpha : cmap_procs->map_cmyk);
61 unsigned int mask = penum->mask_color.mask;
62 unsigned int test = penum->mask_color.test;
63 struct s3 *pic_next = &clues[1];
64 int spp = penum->spp;
65 unsigned char *psrc = buffer + data_x * spp;
66 unsigned char v[6];
68 pnext = penum->dda.pixel0;
69 __builtin_memset (&v, 0, sizeof(v));
70 (*(pcs)->init_color) (0, 0);
72 if (spp == 4)
74 v[0] = psrc[0];
75 v[1] = psrc[1];
76 if ((buffer[0] & mask) == test && penum->mask_color.exact)
77 pic_next->dev_color = 0;
78 (*map_4)(v[0], &pic_next->dev_color, pis, dev);
80 return 0;