Mercurial > hg > CbC > CbC_gcc
comparison gcc/testsuite/gcc.dg/pr59350.c @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
68:561a7518be6b | 111:04ced10e8804 |
---|---|
1 /* PR debug/59350 */ | |
2 /* Testcase by Ryan Mansfield <rmansfield@qnx.com> */ | |
3 | |
4 /* { dg-do compile } */ | |
5 /* { dg-options "-O -g" } */ | |
6 | |
7 typedef union | |
8 { | |
9 char b[2]; | |
10 short NotAnInteger; | |
11 } | |
12 mDNSOpaque16; | |
13 typedef mDNSOpaque16 mDNSIPPort; | |
14 typedef struct | |
15 { | |
16 } | |
17 mDNSAddr; | |
18 typedef struct DNSQuestion_struct DNSQuestion; | |
19 typedef struct mDNS_struct mDNS; | |
20 typedef struct __attribute__ ((__packed__)) | |
21 { | |
22 mDNSOpaque16 id; | |
23 mDNSOpaque16 flags; | |
24 } | |
25 | |
26 DNSMessageHeader; | |
27 typedef struct __attribute__ ((__packed__)) | |
28 { | |
29 DNSMessageHeader h; | |
30 } | |
31 | |
32 DNSMessage; | |
33 struct DNSQuestion_struct | |
34 { | |
35 DNSQuestion *next; | |
36 long LastQTime; | |
37 mDNSOpaque16 TargetQID; | |
38 }; | |
39 struct mDNS_struct | |
40 { | |
41 long timenow; | |
42 DNSQuestion *Questions; | |
43 }; | |
44 extern long mDNSPlatformOneSecond; | |
45 typedef enum | |
46 { | |
47 kDNSFlag0_QR_Mask = 0x80, kDNSFlag0_QR_Query = 0x00, kDNSFlag0_QR_Response = | |
48 0x80, kDNSFlag0_OP_Mask = 0x78, kDNSFlag0_OP_StdQuery = | |
49 0x00, kDNSFlag0_OP_Iquery = 0x08, kDNSFlag0_OP_Status = | |
50 0x10, kDNSFlag0_OP_Unused3 = 0x18, kDNSFlag0_OP_Notify = | |
51 0x20, kDNSFlag0_OP_Update = 0x28, kDNSFlag0_QROP_Mask = | |
52 kDNSFlag0_QR_Mask | kDNSFlag0_OP_Mask, kDNSFlag0_AA = 0x04, kDNSFlag0_TC = | |
53 0x02, kDNSFlag0_RD = 0x01, kDNSFlag1_RA = 0x80, kDNSFlag1_Zero = | |
54 0x40, kDNSFlag1_AD = 0x20, kDNSFlag1_CD = 0x10, kDNSFlag1_RC_Mask = | |
55 0x0F, kDNSFlag1_RC_NoErr = 0x00, kDNSFlag1_RC_FormErr = | |
56 0x01, kDNSFlag1_RC_ServFail = 0x02, kDNSFlag1_RC_NXDomain = | |
57 0x03, kDNSFlag1_RC_NotImpl = 0x04, kDNSFlag1_RC_Refused = | |
58 0x05, kDNSFlag1_RC_YXDomain = 0x06, kDNSFlag1_RC_YXRRSet = | |
59 0x07, kDNSFlag1_RC_NXRRSet = 0x08, kDNSFlag1_RC_NotAuth = | |
60 0x09, kDNSFlag1_RC_NotZone = 0x0A | |
61 } | |
62 TSIG_ErrorCode; | |
63 int uDNS_ReceiveTestQuestionResponse (mDNS * const, DNSMessage * const, | |
64 const char * const, | |
65 const mDNSAddr * const, | |
66 const mDNSIPPort); | |
67 void | |
68 uDNS_ReceiveMsg (mDNS * const m, DNSMessage * const msg, | |
69 const char * const end, const mDNSAddr * const srcaddr, | |
70 const mDNSIPPort srcport) | |
71 { | |
72 DNSQuestion *qptr; | |
73 char StdR = kDNSFlag0_QR_Response | kDNSFlag0_OP_StdQuery; | |
74 char QR_OP = (char) (msg->h.flags.b[0] & kDNSFlag0_QROP_Mask); | |
75 if (QR_OP == StdR) | |
76 { | |
77 if (uDNS_ReceiveTestQuestionResponse (m, msg, end, srcaddr, srcport)) | |
78 return; | |
79 for (qptr = m->Questions; qptr; qptr = qptr->next) | |
80 if (msg->h.flags.b[0] & kDNSFlag0_TC | |
81 && ((qptr->TargetQID).NotAnInteger == (msg->h.id).NotAnInteger) | |
82 && m->timenow - qptr->LastQTime < (60 * mDNSPlatformOneSecond)) | |
83 { | |
84 } | |
85 } | |
86 } |