diff options
Diffstat (limited to 'gcc/testsuite/gcc.c-torture/compile/pr28675.c')
-rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/pr28675.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr28675.c b/gcc/testsuite/gcc.c-torture/compile/pr28675.c new file mode 100644 index 000000000..0d7835373 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/pr28675.c @@ -0,0 +1,38 @@ +struct fb_cmap { + unsigned int start; + unsigned int len; + unsigned short *red; + unsigned short *green; + unsigned short *blue; + unsigned short *transp; +}; + +typedef struct { + int r; + int g; + int b; + int a; +} rgba_t; + +static unsigned int cmap_len; + +extern unsigned int red_len, green_len, blue_len, alpha_len; +extern struct fb_cmap fb_cmap; +extern rgba_t *clut; +extern int fb_set_cmap(void); + +void directcolor_update_cmap(void) +{ + unsigned int i; + + for (i = 0; i < cmap_len; i++) { + if (i < red_len) + fb_cmap.red[i] = clut[i].r; + if (i < green_len) + fb_cmap.green[i] = clut[i].g; + if (i < blue_len) + fb_cmap.blue[i] = clut[i].b; + if (fb_cmap.transp && i < alpha_len) + fb_cmap.transp[i] = clut[i].a; + } +} |