OSDN Git Service

Add testcases for PR43464.
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / graphite / id-pr43464.c
1 typedef struct sv SV;
2 typedef struct regnode
3 {
4   char flags;
5 } regnode;
6 typedef struct regexp
7 {
8 } regexp;
9 typedef struct cop
10 {
11   SV *cop_warnings;
12 } COP;
13 extern const unsigned char PL_utf8skip[];
14 extern char PL_dowarn;
15 extern COP *volatile PL_curcop;
16 char *
17 S_find_byclass (regexp * prog, regnode * c, char *s, char *strend,
18                 char *startpos, int norun)
19 {
20   register long unsigned int uskip;
21   char *e;
22   switch (((c)->flags))
23     {
24     case 17:
25         {
26           while (s + (uskip = PL_utf8skip[*s]) <= strend)
27             {
28               if (c->flags || S_reginclass (c))
29                   if (norun || S_regtry (prog, s))
30                     goto got_it;
31               s += uskip;
32             }
33           unsigned long c, f;
34           long unsigned int len;
35             {
36               while (s <= e)
37                 {
38                   c = Perl_utf8n_to_uvuni (s, 13, &len,
39                                            (((PL_curcop->cop_warnings !=
40                                               ((SV *) ((void *) 0)))
41                                              && PL_dowarn)) ? 0 : 0x00FF);
42                   if (c == 0 && (norun || S_regtry (prog, s)))
43                       if (f != c && (norun || S_regtry (prog, s)))
44                         goto got_it;
45                 }
46             }
47         }
48     }
49 got_it:
50   return s;
51 }
52 Perl_re_intuit_start (regexp * prog)
53 {
54   S_find_byclass (prog, 0, 0, 0, 0, 1);
55 }
56 Perl_regexec_flags (register regexp * prog,
57                     register char *strend)
58 {
59   S_find_byclass (prog, 0, 0, strend, 0, 0);
60 }
61 S_regtry (regexp * prog, char *startpos)
62 {
63 }