File: enum-type-exotic.c

package info (click to toggle)
sparse 0.6.4-5
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 5,868 kB
  • sloc: ansic: 46,050; sh: 614; python: 301; perl: 293; makefile: 279
file content (28 lines) | stat: -rw-r--r-- 598 bytes parent folder | download | duplicates (2)
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
 */