summaryrefslogtreecommitdiff
path: root/test/msan/sigwait.cc
diff options
context:
space:
mode:
Diffstat (limited to 'test/msan/sigwait.cc')
-rw-r--r--test/msan/sigwait.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/test/msan/sigwait.cc b/test/msan/sigwait.cc
index f2e77cfd6..222fc34a1 100644
--- a/test/msan/sigwait.cc
+++ b/test/msan/sigwait.cc
@@ -1,16 +1,21 @@
// RUN: %clangxx_msan -std=c++11 -O0 -g %s -o %t && %run %t
+// RUN: %clangxx_msan -DPOSITIVE -std=c++11 -O0 -g %s -o %t && not %run %t 2>&1 | FileCheck %s
#include <assert.h>
-#include <sanitizer/msan_interface.h>
#include <signal.h>
#include <sys/time.h>
#include <unistd.h>
+#include <sanitizer/msan_interface.h>
+
void test_sigwait() {
sigset_t s;
+#ifndef POSITIVE
sigemptyset(&s);
sigaddset(&s, SIGUSR1);
+#endif
sigprocmask(SIG_BLOCK, &s, 0);
+ // CHECK: MemorySanitizer: use-of-uninitialized-value
if (pid_t pid = fork()) {
kill(pid, SIGUSR1);