%{
/* I'm not sure of a good way to find the path to the testsuite header,
 * used in the @cast as @1, so it's just duped here. */
struct pretty_bits {
    signed char a:4, b:4;
    unsigned char c:4, d:4;
    signed int e:4, f:4;
    unsigned int g:4, h:4;
};
%}

function get_bits_pointer:long() %{
    static struct pretty_bits bits = { 0, 1, 1, 2, 3, 5, 8, 13, };
    STAP_RETVALUE = (intptr_t) &bits;
%}

probe begin {
    bits = get_bits_pointer();
    println(@cast(bits, "struct pretty_bits", @1)$);
    exit();
}
