text: // RUN: %clangxx_msan -std=c++11 -O0 -g %s -o %t && %t
  
  #include <assert.h>
  #include <sanitizer/msan_interface.h>
  #include <signal.h>
  #include <sys/time.h>
  #include <unistd.h>
  
  void test_sigwaitinfo() {
    sigset_t s;
    sigemptyset(&s);
    sigaddset(&s, SIGUSR1);
    sigprocmask(SIG_BLOCK, &s, 0);
  
    if (pid_t pid = fork()) {
      kill(pid, SIGUSR1);
      _exit(0);
    } else {
      siginfo_t info;
      int res = sigwaitinfo(&s, &info);
      assert(!res);
      // The following checks that sig is initialized.
      assert(info.si_signo == SIGUSR1);
      assert(-1 == __msan_test_shadow(&info, sizeof(info)));
    }
  }
  
  int main(void) {
    test_sigwaitinfo();
    return 0;
  }
  