#! stap -p2

probe begin
{
    // Test multiple DWARF assignments to a local can propagate types if
    // they're the same underneath.
    if (randint(2))
        sun = & @cast(0, "sockaddr_un", "<sys/un.h>");
    else
        sun = & @cast(1, "sockaddr_un", "<sys/un.h>");
    println(sun->sun_family)

    // Different types can also be assigned, but it degrades to plain long
    // (These are actually the same, but coming from different cast modules.)
    if (randint(2))
        sun2 = & @cast(0, "sockaddr_un", "<sys/un.h>");
    else
        sun2 = & @cast(0, "sockaddr_un", "<sys/socket.h><sys/un.h>");
    println(sun2)
}