brintos

brintos / llvm-project-archived public Read only

0
0
Text · 826 B · 07dc5bd Raw
30 lines · cpp
1// RUN: %clang_tsan -O1 %s -o %t && %run %t 2>&1 | FileCheck %s2 3// Fails on Darwin bots:4// https://green.lab.llvm.org/green//job/clang-stage1-RA/25954/consoleFull5// and on clang-s390x-linux-lnt:6// https://lab.llvm.org/buildbot#builders/45/builds/52247// Presumably the test is not 100% legal and kernel is allowed8// to unmap part of the range (e.g. .text) and then fail.9// So let's be conservative:10// REQUIRES: linux, x86_64-target-arch11 12#include "test.h"13#include <sys/mman.h>14 15int main() {16  // These bogus munmap's must not crash tsan runtime.17  munmap(0, 1);18  munmap(0, -1);19  munmap((void *)main, -1);20  void *p =21      mmap(0, 4096, PROT_READ | PROT_WRITE, MAP_ANON | MAP_PRIVATE, -1, 0);22  munmap(p, (1ull << 60));23  munmap(p, -10000);24  munmap(p, 0);25  fprintf(stderr, "DONE\n");26  return 0;27}28 29// CHECK: DONE30