]> gcc.gnu.org Git - gcc.git/blob - gcc/testsuite/gcc.dg/torture/pr57584.c
re PR testsuite/57686 (FAIL: gcc.dg/torture/pr57584.c with -m32)
[gcc.git] / gcc / testsuite / gcc.dg / torture / pr57584.c
1 /* { dg-do compile } */
2
3 typedef int int32_t;
4 typedef unsigned char uint8_t;
5 typedef unsigned long int uintptr_t;
6 typedef uint8_t scm_t_uint8;
7 typedef int32_t scm_t_int32;
8 typedef uintptr_t scm_t_uintptr;
9 typedef scm_t_uintptr scm_t_bits;
10 typedef struct scm_unused_struct {
11 } *SCM;
12 enum scm_tc8_tags {
13 scm_tc8_flag = 4 + 0x00, scm_tc8_char = 4 + 0x08, scm_tc8_unused_0 = 4 + 0x10, scm_tc8_unused_1 = 4 + 0x18 };
14 struct __jmp_buf_tag {
15 };
16 typedef struct __jmp_buf_tag jmp_buf[1];
17 typedef struct scm_t_cell {
18 } scm_t_cell;
19 struct scm_prompt_registers {
20 jmp_buf regs;
21 };
22 enum {
23 SCM_VM_APPLY_HOOK, SCM_VM_PUSH_CONTINUATION_HOOK, SCM_VM_POP_CONTINUATION_HOOK, SCM_VM_NEXT_HOOK, SCM_VM_ABORT_CONTINUATION_HOOK, SCM_VM_RESTORE_CONTINUATION_HOOK, SCM_VM_NUM_HOOKS, };
24 typedef SCM (*scm_t_vm_engine) (SCM vm, SCM program, SCM *argv, int nargs);
25 struct scm_vm {
26 scm_t_uint8 *ip;
27 SCM *sp;
28 SCM *fp;
29 int engine;
30 int trace_level;
31 };
32 static SCM vm_regular_engine (SCM vm, SCM program, SCM *argv, int nargs) {
33 }
34 static SCM vm_debug_engine (SCM vm, SCM program, SCM *argv, int nargs) {
35 register scm_t_uint8 *ip ;
36 register SCM *sp ;
37 register SCM *fp ;
38 struct scm_vm *vp = ((struct scm_vm *) ((((scm_t_bits) (0? (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((vm))))): (((vm)))))))) [((1))]))): (((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((vm))))): (((vm)))))))) [((1))]))))));
39 static const void **jump_table_pointer = ((void *)0);
40 const void **jump_table;
41 if (__builtin_expect ((!jump_table_pointer), 0)) {
42 jump_table_pointer[0] = &&l_nop;
43 }
44 l_nop:
45 {
46 SCM *old_sp;
47 scm_t_int32 n;
48 old_sp = sp;
49 sp = (fp - 1) + n;
50 if (old_sp < sp) {
51 while (old_sp < sp) *++old_sp = ((SCM) ((((((9)) << 8) + scm_tc8_flag))));
52 }
53 {
54 { if (__builtin_expect ((vp->trace_level > 0), 0)) { { vp->ip = ip; vp->sp = sp; vp->fp = fp; }; vm_dispatch_hook (vm, SCM_VM_NEXT_HOOK); } };
55 };
56 }
57 {
58 SCM k, prompt;
59 if ((_setjmp (((struct scm_prompt_registers*)((((scm_t_bits) (0? (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((prompt))))): (((prompt)))))))) [((2))]))): (((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((prompt))))): (((prompt)))))))) [((2))]))))))->regs))) {
60 { ip = vp->ip; sp = vp->sp; fp = vp->fp; };
61 { { if (__builtin_expect ((vp->trace_level > 0), 0)) { { vp->ip = ip; vp->sp = sp; vp->fp = fp; }; vm_dispatch_hook (vm, SCM_VM_NEXT_HOOK); } }; ; goto *jump_table[(*ip++) & ((1<<8)-1)]; };
62 }
63
64 if (__builtin_expect ((vp->trace_level > 0), 0)) { { vp->ip = ip; vp->sp = sp; vp->fp = fp; }; vm_dispatch_hook (vm, SCM_VM_NEXT_HOOK); } ;
65
66 }
67 }
68 static const scm_t_vm_engine vm_engines[] = {
69 vm_regular_engine, vm_debug_engine };
70 SCM scm_c_vm_run (SCM vm, SCM program, SCM *argv, int nargs) {
71 struct scm_vm *vp = ((struct scm_vm *) ((((scm_t_bits) (0? (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((vm))))): (((vm)))))))) [((1))]))): (((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((vm))))): (((vm)))))))) [((1))]))))));
72 return vm_engines[vp->engine](vm, program, argv, nargs);
73 }
This page took 0.040261 seconds and 5 git commands to generate.