>From 8cffd6981043eb3fe16d7421dfa75124af0f7639 Mon Sep 17 00:00:00 2001
From: Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
Date: Wed, 17 Feb 2016 11:26:25 +0000
Subject: [PATCH] Print markers to stderr to avoid races with sanitizer output

	* c-c++-common/asan/swapcontext-test-1.c,
	* c-c++-common/tsan/thread_leak.c,
	* g++.dg/tsan/aligned_vs_unaligned_race.C,
	* g++.dg/tsan/benign_race.C,
	* g++.dg/tsan/fd_close_norace.C,
	* g++.dg/tsan/fd_close_norace2.C: Print markers to stderr to avoid
	races with sanitizer output

Change-Id: I698c6558d01e5abdfb8f7a4b370559286c7868a9
---

diff --git a/gcc/testsuite/c-c++-common/asan/swapcontext-test-1.c b/gcc/testsuite/c-c++-common/asan/swapcontext-test-1.c
index 23d3db0..555f2d9 100644
--- a/gcc/testsuite/c-c++-common/asan/swapcontext-test-1.c
+++ b/gcc/testsuite/c-c++-common/asan/swapcontext-test-1.c
@@ -52,9 +52,9 @@
 int main(int argc, char **argv) {
   int ret = 0;
   ret += Run(zero, 0);
-  printf("Test1 passed\n");
+  fprintf(stderr, "Test1 passed\n");
   ret += Run(zero, 1);
-  printf("Test2 passed\n");
+  fprintf(stderr, "Test2 passed\n");
   return ret;
 }
 
diff --git a/gcc/testsuite/c-c++-common/tsan/thread_leak.c b/gcc/testsuite/c-c++-common/tsan/thread_leak.c
index 02deaba..4ddda4a 100644
--- a/gcc/testsuite/c-c++-common/tsan/thread_leak.c
+++ b/gcc/testsuite/c-c++-common/tsan/thread_leak.c
@@ -9,7 +9,7 @@
   pthread_t t;
   pthread_create(&t, 0, Thread, 0);
   pthread_join(t, 0);
-  printf("PASS\n");
+  fprintf(stderr, "PASS\n");
   return 0;
 }
 
diff --git a/gcc/testsuite/g++.dg/tsan/aligned_vs_unaligned_race.C b/gcc/testsuite/g++.dg/tsan/aligned_vs_unaligned_race.C
index 1facadc..fe64007 100644
--- a/gcc/testsuite/g++.dg/tsan/aligned_vs_unaligned_race.C
+++ b/gcc/testsuite/g++.dg/tsan/aligned_vs_unaligned_race.C
@@ -31,7 +31,7 @@
   pthread_create(&t[1], NULL, Thread2, NULL);
   pthread_join(t[0], NULL);
   pthread_join(t[1], NULL);
-  printf("Pass\n");
+  fprintf(stderr, "Pass\n");
   /* { dg-output "WARNING: ThreadSanitizer: data race.*(\n|\r\n|\r)" } */
   /* { dg-output "Pass.*" } */
   return 0;
diff --git a/gcc/testsuite/g++.dg/tsan/benign_race.C b/gcc/testsuite/g++.dg/tsan/benign_race.C
index b5f1720..e2acb81 100644
--- a/gcc/testsuite/g++.dg/tsan/benign_race.C
+++ b/gcc/testsuite/g++.dg/tsan/benign_race.C
@@ -32,7 +32,7 @@
   Global = 43;
   WTFGlobal = 143;
   pthread_join(t, 0);
-  printf("OK\n");
+  fprintf(stderr, "OK\n");
 }
 
 /* { dg-prune-output "WARNING: ThreadSanitizer: data race.*(\n|\r\n|\r)" } */
diff --git a/gcc/testsuite/g++.dg/tsan/fd_close_norace.C b/gcc/testsuite/g++.dg/tsan/fd_close_norace.C
index 9babb6a..4ed45bc 100644
--- a/gcc/testsuite/g++.dg/tsan/fd_close_norace.C
+++ b/gcc/testsuite/g++.dg/tsan/fd_close_norace.C
@@ -24,7 +24,7 @@
   pthread_create(&t[1], NULL, Thread2, NULL);
   pthread_join(t[0], NULL);
   pthread_join(t[1], NULL);
-  printf("OK\n");
+  fprintf(stderr, "OK\n");
 }
 
 /* { dg-prune-output "WARNING: ThreadSanitizer: data race.*(\n|\r\n|\r)" } */
diff --git a/gcc/testsuite/g++.dg/tsan/fd_close_norace2.C b/gcc/testsuite/g++.dg/tsan/fd_close_norace2.C
index 56f00f8..1dbd560 100644
--- a/gcc/testsuite/g++.dg/tsan/fd_close_norace2.C
+++ b/gcc/testsuite/g++.dg/tsan/fd_close_norace2.C
@@ -22,7 +22,7 @@
   while (write(pipes[1], &t, 1) != 1) {
   }
   pthread_join(t, 0);
-  printf("OK\n");
+  fprintf(stderr, "OK\n");
 }
 
 /* { dg-prune-output "WARNING: ThreadSanitizer: data race.*(\n|\r\n|\r)" } */
