summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/vect/pr46126.c
blob: 6eb178aab2e8451f8999fd5f267f3ac4d8c793d2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/* { dg-do compile } */

typedef struct TypHeader {
     struct TypHeader * * ptr;
     unsigned char type;
 } * TypHandle;
 extern TypHandle (* EvTab[81]) ( TypHandle hd );
 TypHandle FunApplyRel ( TypHandle hdCall )
 {
     TypHandle hdApp;
     TypHandle * ptApp;
     long lp;
     long lc;
     hdApp = ((long)(((TypHandle*)((hdCall)->ptr))[1])&1 ?
(((TypHandle*)((hdCall)->ptr))[1]) : (*
EvTab[(((long)(((TypHandle*)((hdCall)->ptr))[1]) & 1) ? 1 :
((((TypHandle*)((hdCall)->ptr))[1])->type))])((((TypHandle*)((hdCall)->ptr))[1])));
     ptApp = ((TypHandle*)((hdApp)->ptr));
     ptApp[1] = ((TypHandle) (((long)(lp) << 2) + 1));
     ptApp[2] = ((TypHandle) (((long)(lc) << 2) + 1));
 }

/* { dg-final { cleanup-tree-dump "vect" } } */