File: enum-type-exotic.c

package info (click to toggle)
sparse 0.6.5~rc1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 5,768 kB
  • sloc: ansic: 46,405; sh: 614; perl: 299; python: 296; makefile: 282
file content (28 lines) | stat: -rw-r--r-- 598 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
enum foobar {
        C = (unsigned char)0,
        L = 1L,
};

unsigned int foo(void);
unsigned int foo(void)
{
#ifdef __CHECKER__
	_Static_assert([typeof(C)] == [enum foobar], "enum type");
	_Static_assert([typeof(C)] != [unsigned char], "char type");
#endif

	typeof(C) v = ~0;
	return v;
}

/*
 * check-name: enum-type-exotic
 * check-description:
 *	GCC type's for C is 'int' or maybe 'unsigned int'
 *	but certainly not 'unsigned char' like here.
 * check-command: test-linearize -Wno-decl $file
 * check-known-to-fail
 *
 * check-output-ignore
 * check-output-excludes: ret\\.32 *\\$255
 */