File: 02-integers.ha

package info (click to toggle)
harec 0.25.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,420 kB
  • sloc: ansic: 19,905; asm: 247; makefile: 116; lisp: 80; sh: 45
file content (22 lines) | stat: -rw-r--r-- 1,064 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
fn dimensions() void = {
	// Fixed precision
	assert(size(i8) == 1 && align(i8) == 1 && size(i8) % align(i8) == 0);
	assert(size(i16) == 2 && align(i16) == 2 && size(i16) % align(i16) == 0);
	assert(size(i32) == 4 && align(i32) == 4 && size(i32) % align(i32) == 0);
	assert(size(i64) == 8 && align(i64) == 8 && size(i64) % align(i64) == 0);
	assert(size(u8) == 1 && align(u8) == 1 && size(u8) % align(u8) == 0);
	assert(size(u16) == 2 && align(u16) == 2 && size(u16) % align(u16) == 0);
	assert(size(u32) == 4 && align(u32) == 4 && size(u32) % align(u32) == 0);
	assert(size(u64) == 8 && align(u64) == 8 && size(u64) % align(u64) == 0);
	// Implementation-defined (test meets spec limits)
	assert(size(int) >= 4 && align(int) >= 4 && size(int) % align(int) == 0);
	assert(size(uint) >= 4 && align(uint) >= 4 && size(uint) % align(uint) == 0);
	assert(size(size) % align(size) == 0);
	assert(size(uintptr) % align(uintptr) == 0);
	// etc
	assert(size(rune) == 4 && align(rune) == 4 && size(rune) % align(rune) == 0);
};

export fn main() void = {
	dimensions();
};