llvm-project

Форк
0
/
malloc_stack.cpp 
26 строк · 573.0 Байт
1
// RUN: %clangxx_tsan -O1 %s -o %t && %deflake %run %t | FileCheck %s
2
#include "test.h"
3

4
_Atomic(int*) p;
5

6
void *thr(void *a) {
7
  barrier_wait(&barrier);
8
  int *pp = __c11_atomic_load(&p, __ATOMIC_RELAXED);
9
  *pp = 42;
10
  return 0;
11
}
12

13
int main() {
14
  barrier_init(&barrier, 2);
15
  pthread_t th;
16
  pthread_create(&th, 0, thr, p);
17
  __c11_atomic_store(&p, new int, __ATOMIC_RELAXED);
18
  barrier_wait(&barrier);
19
  pthread_join(th, 0);
20
}
21

22
// CHECK: data race
23
// CHECK:   Previous write
24
// CHECK:     #0 operator new
25
// CHECK:   Location is heap block
26
// CHECK:     #0 operator new
27

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.