/* { dg-do run } */ | |
typedef struct _s { | |
int a; | |
int b; | |
int c; | |
int d; | |
} s; | |
extern void abort(void); | |
void __attribute__((noinline)) g(s *p) | |
{ | |
if (p->d != 0) | |
abort (); | |
} | |
char *c = (void*)0; | |
void __attribute__((noinline)) f(void) { if (c) *c = 1; } | |
void test_signed_msg_encoding(void) | |
{ | |
s signInfo = { sizeof(signInfo), 0 }; | |
signInfo.b = 1; | |
signInfo.c = 0; | |
g(&signInfo); | |
signInfo.d = 1; | |
f(); | |
} | |
int main() | |
{ | |
test_signed_msg_encoding (); | |
test_signed_msg_encoding (); | |
return 0; | |
} |