// RUN: clang-cc -analyze -checker-cfref -analyzer-store=region --verify %s | |
// Test if the 'storage' region gets properly initialized after it is cast to | |
// 'struct sockaddr *'. | |
#include <sys/socket.h> | |
void f(int sock) { | |
struct sockaddr_storage storage; | |
struct sockaddr* sockaddr = (struct sockaddr*)&storage; | |
socklen_t addrlen = sizeof(storage); | |
getsockname(sock, sockaddr, &addrlen); | |
switch (sockaddr->sa_family) { // no-warning | |
default: | |
; | |
} | |
} |