File: constexpr-pure-builtin.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 (23 lines) | stat: -rw-r--r-- 475 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// requires constant integer expressions
static int bar[] = {
	[__builtin_bswap16(0x1234)] = 0,		// OK
	[__builtin_bswap32(0x1234)] = 0,		// OK
	[__builtin_bswap64(0x1234)] = 0,		// OK
};

// requires constant integers
static int foo(unsigned long long a)
{
	switch (a) {
	case __builtin_bswap16(1   <<  8):
	case __builtin_bswap32(2L  << 24):
	case __builtin_bswap64(3LL << 56):
		return 0;
	default:
		return 1;
	}
}

/*
 * check-name: constness of pure/const builtins
 */