annotate gcc/testsuite/gcc.dg/c99-bool-3.c @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 /* Test for _Bool bit-fields. They have the semantics of _Bool, at
kono
parents:
diff changeset
2 least for now (DR#335 Spring 2007 discussion). */
kono
parents:
diff changeset
3 /* Origin: Joseph Myers <joseph@codesourcery.com> */
kono
parents:
diff changeset
4 /* { dg-do run } */
kono
parents:
diff changeset
5 /* { dg-options "-std=iso9899:1999 -pedantic-errors" } */
kono
parents:
diff changeset
6 struct foo
kono
parents:
diff changeset
7 {
kono
parents:
diff changeset
8 _Bool a : 1;
kono
parents:
diff changeset
9 } sf;
kono
parents:
diff changeset
10
kono
parents:
diff changeset
11 extern void abort (void);
kono
parents:
diff changeset
12 extern void exit (int);
kono
parents:
diff changeset
13
kono
parents:
diff changeset
14 int
kono
parents:
diff changeset
15 main (void)
kono
parents:
diff changeset
16 {
kono
parents:
diff changeset
17 int i;
kono
parents:
diff changeset
18 for (i = 0; i < sizeof (struct foo); i++)
kono
parents:
diff changeset
19 *((unsigned char *)&sf + i) = (unsigned char) -1;
kono
parents:
diff changeset
20 sf.a = 2;
kono
parents:
diff changeset
21 if (sf.a != 1)
kono
parents:
diff changeset
22 abort ();
kono
parents:
diff changeset
23 sf.a = 0;
kono
parents:
diff changeset
24 if (sf.a != 0)
kono
parents:
diff changeset
25 abort ();
kono
parents:
diff changeset
26 sf.a = 0.2;
kono
parents:
diff changeset
27 if (sf.a != 1)
kono
parents:
diff changeset
28 abort ();
kono
parents:
diff changeset
29 sf.a = &sf;
kono
parents:
diff changeset
30 if (sf.a != 1)
kono
parents:
diff changeset
31 abort ();
kono
parents:
diff changeset
32 exit (0);
kono
parents:
diff changeset
33 }