/
niceSOFT
/
valgrind
Обзор
Документация
Войти
/
niceSOFT
/
valgrind
Код
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
drd/tests/annotate_static.cpp
48 строк
990 B
Paul Floyd
Regtest warnings: fixes for GCC 16.1 C++20 volatile deprecation
03 июн 2026, 09:06
03 июн 2026, 09:06
b7f0ee2
Код
Авторство
О чём код?
// Test for ANNOTATE_BENIGN_RACE_STATIC() and ANNOTATE_UNPROTECTED_READ(). #include <pthread.h> /* pthread_create() */ #include <stdio.h> /* fprintf() */ #include "../../drd/drd.h" /* Local variables. */ static int s_i; static int s_j; ANNOTATE_BENIGN_RACE_STATIC(s_i, "Benign because duplicate assignment."); /* Local functions. */ static inline void AnnotateIgnoreReadsBegin() { ANNOTATE_IGNORE_READS_BEGIN(); } static inline void AnnotateIgnoreReadsEnd() { ANNOTATE_IGNORE_READS_END(); } static void* thread_func(void*) { #if defined(__powerpc__) && __GNUC__ -0 == 4 && __GNUC_MINOR__ -0 == 3 \ && __GNUC_PATCHLEVEL__ -0 == 0 AnnotateIgnoreReadsBegin(); int i = s_j; AnnotateIgnoreReadsEnd(); s_i = i; #else s_i = ANNOTATE_UNPROTECTED_READ(s_j); #endif return 0; } int main(int argc, char** argv) { pthread_t tid; pthread_create(&tid, 0, thread_func, NULL); s_j++; s_i = s_j; pthread_join(tid, NULL); fprintf(stderr, "Done.\n"); return 0; }