modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/execute/20071030-1.c (about) 1 /* PR target/11044 */ 2 /* Originator: Tim McGrath <misty-@charter.net> */ 3 /* Testcase contributed by Eric Botcazou <ebotcazou@libertysurf.fr> */ 4 5 /* Testcase copied from gcc.target/i386/loop-3.c */ 6 7 extern void *memset (void *, int, __SIZE_TYPE__); 8 extern void abort (void); 9 10 typedef struct 11 { 12 unsigned char colormod; 13 } entity_state_t; 14 15 typedef struct 16 { 17 int num_entities; 18 entity_state_t *entities; 19 } packet_entities_t; 20 21 typedef struct 22 { 23 double senttime; 24 float ping_time; 25 packet_entities_t entities; 26 } client_frame_t; 27 28 typedef enum 29 { 30 cs_free, 31 cs_server, 32 cs_zombie, 33 cs_connected, 34 cs_spawned 35 } sv_client_state_t; 36 37 typedef struct client_s 38 { 39 sv_client_state_t state; 40 int ping; 41 client_frame_t frames[64]; 42 } client_t; 43 44 int CalcPing (client_t *cl) 45 { 46 float ping; 47 int count, i; 48 register client_frame_t *frame; 49 50 if (cl->state == cs_server) 51 return cl->ping; 52 ping = 0; 53 count = 0; 54 for (frame = cl->frames, i = 0; i < 64; i++, frame++) { 55 if (frame->ping_time > 0) { 56 ping += frame->ping_time; 57 count++; 58 } 59 } 60 if (!count) 61 return 9999; 62 ping /= count; 63 64 return ping * 1000; 65 } 66 67 int main(void) 68 { 69 client_t cl; 70 71 memset(&cl, 0, sizeof(cl)); 72 73 cl.frames[0].ping_time = 1.0f; 74 75 if (CalcPing(&cl) != 1000) 76 abort(); 77 78 return 0; 79 }