On i386, the pc is only 32 bit of width. The buffer accessed via /dev/kcov and the typecasts
of the return value of __builtin_return_address strictly use uint64_t.
In the former case, every second pc which kcovtrace prints is zero.
The latter case leads to a compiler warning that aborts the build process.
In both cases unsigned long is now used. Since its size varies on i386 and x86_64, it solves
both issues. *EDIT*: Using uintptr_t.
The Linux kernel uses unsigned long as well: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/kernel/kcov.c#n94