annotate gcc/testsuite/gcc.c-torture/compile/941014-3.c @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 typedef unsigned char byte;
kono
parents:
diff changeset
2 typedef unsigned int uint;
kono
parents:
diff changeset
3 typedef unsigned long ulong;
kono
parents:
diff changeset
4 typedef ulong gs_char;
kono
parents:
diff changeset
5 typedef struct gs_show_enum_s gs_show_enum;
kono
parents:
diff changeset
6 typedef struct gs_font_s gs_font;
kono
parents:
diff changeset
7 typedef struct gx_font_stack_item_s {
kono
parents:
diff changeset
8 gs_font *font;
kono
parents:
diff changeset
9 } gx_font_stack_item;
kono
parents:
diff changeset
10 typedef struct gx_font_stack_s {
kono
parents:
diff changeset
11 gx_font_stack_item items[1 + 5 ];
kono
parents:
diff changeset
12 } gx_font_stack;
kono
parents:
diff changeset
13 struct gs_show_enum_s {
kono
parents:
diff changeset
14 gx_font_stack fstack;
kono
parents:
diff changeset
15 };
kono
parents:
diff changeset
16 typedef enum {
kono
parents:
diff changeset
17 ft_composite = 0,
kono
parents:
diff changeset
18 } font_type;
kono
parents:
diff changeset
19 struct gs_font_s {
kono
parents:
diff changeset
20 font_type FontType;
kono
parents:
diff changeset
21 };
kono
parents:
diff changeset
22 typedef enum {
kono
parents:
diff changeset
23 fmap_escape = 3,
kono
parents:
diff changeset
24 fmap_shift = 8
kono
parents:
diff changeset
25 } fmap_type;
kono
parents:
diff changeset
26 typedef struct gs_type0_data_s {
kono
parents:
diff changeset
27 fmap_type FMapType;
kono
parents:
diff changeset
28 } gs_type0_data;
kono
parents:
diff changeset
29 gs_type0_next_char(register gs_show_enum *penum)
kono
parents:
diff changeset
30 {
kono
parents:
diff changeset
31 const byte *p;
kono
parents:
diff changeset
32 int fdepth;
kono
parents:
diff changeset
33 gs_font *pfont;
kono
parents:
diff changeset
34 gs_type0_data *pdata;
kono
parents:
diff changeset
35 uint fidx;
kono
parents:
diff changeset
36 gs_char chr;
kono
parents:
diff changeset
37 for (; pfont->FontType == ft_composite; )
kono
parents:
diff changeset
38 {
kono
parents:
diff changeset
39 fmap_type fmt;
kono
parents:
diff changeset
40 switch ( fmt )
kono
parents:
diff changeset
41 {
kono
parents:
diff changeset
42 do {} while (0);
kono
parents:
diff changeset
43 rdown:
kono
parents:
diff changeset
44 continue;
kono
parents:
diff changeset
45 case fmap_shift:
kono
parents:
diff changeset
46 p++;
kono
parents:
diff changeset
47 do {} while (0);
kono
parents:
diff changeset
48 goto rdown;
kono
parents:
diff changeset
49 }
kono
parents:
diff changeset
50 break;
kono
parents:
diff changeset
51 }
kono
parents:
diff changeset
52 up:
kono
parents:
diff changeset
53 while ( fdepth > 0 )
kono
parents:
diff changeset
54 {
kono
parents:
diff changeset
55 switch ( pdata->FMapType )
kono
parents:
diff changeset
56 {
kono
parents:
diff changeset
57 default:
kono
parents:
diff changeset
58 continue;
kono
parents:
diff changeset
59 case fmap_escape:
kono
parents:
diff changeset
60 fidx = *++p;
kono
parents:
diff changeset
61 do {} while (0);
kono
parents:
diff changeset
62 if ( fidx == chr && fdepth > 1 )
kono
parents:
diff changeset
63 goto up;
kono
parents:
diff changeset
64 down:
kono
parents:
diff changeset
65 fdepth--;
kono
parents:
diff changeset
66 do {} while (0);
kono
parents:
diff changeset
67 }
kono
parents:
diff changeset
68 break;
kono
parents:
diff changeset
69 }
kono
parents:
diff changeset
70 while ( (pfont = penum->fstack.items[fdepth].font)->FontType == ft_composite )
kono
parents:
diff changeset
71 ;
kono
parents:
diff changeset
72 }