[PATCH] D58396: [msan] Remove cxa_atexit_race.cc

Vitaly Buka via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Feb 19 11:14:49 PST 2019


vitalybuka created this revision.
vitalybuka added reviewers: eugenis, peter.smith.
Herald added subscribers: llvm-commits, Sanitizers, jdoerfert, jfb.
Herald added projects: Sanitizers, LLVM.

The goal of the test to check that msan does not crash when code is racy on __cxa_atexit. Original crash was caused by race condition in the glibc. With
the msan patch the msan does not crashes however the race is still there and the test triggers it.

Because the test relies on triggering of undefined behavior results are not
very predictable and it may occasionally crashes or hangs.

I don't see how to reasonably improve the test, so I remove it.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D58396

Files:
  compiler-rt/test/msan/cxa_atexit_race.cc


Index: compiler-rt/test/msan/cxa_atexit_race.cc
===================================================================
--- compiler-rt/test/msan/cxa_atexit_race.cc
+++ /dev/null
@@ -1,35 +0,0 @@
-// RUN: %clangxx_msan %s -o %t && %run %t 2>&1 | FileCheck %s
-
-#include <atomic>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-extern "C" int
-__cxa_atexit(void (*func)(void *), void *arg, void *d);
-
-void handler(void *) {
-}
-
-std::atomic_int counter;
-
-void *thread(void *) {
-  for (int i = 0; i < 10000; ++i) {
-    __cxa_atexit(&handler, 0, (void *)&handler);
-    ++counter;
-  }
-  return 0;
-}
-
-int main(void) {
-  printf("TEST_MAIN\n");
-  pthread_t pt;
-  for (int i = 0; i < 2; ++i)
-    pthread_create(&pt, 0, &thread, 0);
-  while (counter < 1000) {
-  };
-  return 0;
-}
-// CHECK: TEST_MAIN
-// CHECK-NOT: MemorySanitizer


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D58396.187417.patch
Type: text/x-patch
Size: 879 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190219/b9fc4a21/attachment.bin>


More information about the llvm-commits mailing list