[tsan] run more kinds of builds as presubmit test (and fix gcc debug build)

llvm-svn: 156616
diff --git a/compiler-rt/lib/tsan/Makefile.old b/compiler-rt/lib/tsan/Makefile.old
index 7506396..642cd60 100644
--- a/compiler-rt/lib/tsan/Makefile.old
+++ b/compiler-rt/lib/tsan/Makefile.old
@@ -50,18 +50,23 @@
 
 run: all
 	(ulimit -s 8192; ./tsan_test)
+	./output_tests/test_output.sh
 
 presubmit:
 	$(MAKE) -f Makefile.old lint -j 4
 	# Debug build with clang.
 	$(MAKE) -f Makefile.old clean
 	$(MAKE) -f Makefile.old run DEBUG=1 -j 16 CC=clang CXX=clang++
-	./output_tests/test_output.sh
-	# Release build gcc
+	# Release build with clang.
+	$(MAKE) -f Makefile.old clean
+	$(MAKE) -f Makefile.old run DEBUG=0 -j 16 CC=clang CXX=clang++
+	# Debug build with gcc
+	$(MAKE) -f Makefile.old clean
+	$(MAKE) -f Makefile.old run DEBUG=1 -j 16 CC=gcc CXX=g++
+	# Release build with gcc
 	$(MAKE) -f Makefile.old clean
 	$(MAKE) -f Makefile.old run DEBUG=0 -j 16 CC=gcc CXX=g++
 	./check_analyze.sh
-	./output_tests/test_output.sh
 	@ echo PRESUBMIT PASSED
 
 RTL_LINT_FITLER=-legal/copyright,-build/include,-readability/casting,-build/header_guard
diff --git a/compiler-rt/lib/tsan/rtl/Makefile.old b/compiler-rt/lib/tsan/rtl/Makefile.old
index 220e6fb..b826a75 100644
--- a/compiler-rt/lib/tsan/rtl/Makefile.old
+++ b/compiler-rt/lib/tsan/rtl/Makefile.old
@@ -10,15 +10,18 @@
 CXXFLAGS+=$(EXTRA_CXXFLAGS)
 ifeq ($(DEBUG), 0)
   CXXFLAGS+=-fomit-frame-pointer
-endif
+ifeq ($(CXX), g++)
+  CXXFLAGS+=-Wframe-larger-than=512
+endif  # CXX=g++
+endif  # DEBUG=0
+
 ifeq ($(CXX), clang++)
   # Global constructors are banned.
   CXXFLAGS+=-Wglobal-constructors
-else
-  CXXFLAGS+=-Wframe-larger-than=512
 endif
 
 
+
 all: libtsan.a
 
 LIBTSAN_HEADERS=tsan_allocator.h \
diff --git a/compiler-rt/lib/tsan/rtl/tsan_clock.h b/compiler-rt/lib/tsan/rtl/tsan_clock.h
index c4f8194..97e20a8 100644
--- a/compiler-rt/lib/tsan/rtl/tsan_clock.h
+++ b/compiler-rt/lib/tsan/rtl/tsan_clock.h
@@ -41,23 +41,23 @@
  public:
   ThreadClock();
 
-  u64 get(int tid) const {
+  u64 get(unsigned tid) const {
     DCHECK(tid < kMaxTid);
     return clk_[tid];
   }
 
-  void set(int tid, u64 v) {
+  void set(unsigned tid, u64 v) {
     DCHECK(tid < kMaxTid);
     DCHECK(v >= clk_[tid]);
     clk_[tid] = v;
-    if ((int)nclk_ <= tid)
+    if (nclk_ <= tid)
       nclk_ = tid + 1;
   }
 
-  void tick(int tid) {
+  void tick(unsigned tid) {
     DCHECK(tid < kMaxTid);
     clk_[tid]++;
-    if ((int)nclk_ <= tid)
+    if (nclk_ <= tid)
       nclk_ = tid + 1;
   }
 
diff --git a/compiler-rt/lib/tsan/rtl/tsan_defs.h b/compiler-rt/lib/tsan/rtl/tsan_defs.h
index d2088d5..77c26b4 100644
--- a/compiler-rt/lib/tsan/rtl/tsan_defs.h
+++ b/compiler-rt/lib/tsan/rtl/tsan_defs.h
@@ -30,7 +30,7 @@
 
 const uptr kPageSize = 4096;
 const int kTidBits = 16;
-const int kMaxTid = 1 << kTidBits;
+const unsigned kMaxTid = 1 << kTidBits;
 const int kClkBits = 40;
 
 #ifdef TSAN_SHADOW_COUNT
diff --git a/compiler-rt/lib/tsan/rtl/tsan_rtl.h b/compiler-rt/lib/tsan/rtl/tsan_rtl.h
index 1117904..a5bdd52 100644
--- a/compiler-rt/lib/tsan/rtl/tsan_rtl.h
+++ b/compiler-rt/lib/tsan/rtl/tsan_rtl.h
@@ -307,8 +307,8 @@
   int nmissed_expected;
 
   Mutex thread_mtx;
-  int thread_seq;
-  int unique_thread_seq;
+  unsigned thread_seq;
+  unsigned unique_thread_seq;
   int alive_threads;
   int max_alive_threads;
   ThreadContext *threads[kMaxTid];
diff --git a/compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cc b/compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cc
index b874826..b444077 100644
--- a/compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cc
+++ b/compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cc
@@ -40,7 +40,7 @@
     return;
   Context *ctx = CTX();
   Lock l(&ctx->thread_mtx);
-  for (int i = 0; i < kMaxTid; i++) {
+  for (unsigned i = 0; i < kMaxTid; i++) {
     ThreadContext *tctx = ctx->threads[i];
     if (tctx == 0)
       continue;
@@ -230,7 +230,7 @@
   CHECK_GT(thr->in_rtl, 0);
   DPrintf("#%d: ThreadTid uid=%lu\n", thr->tid, uid);
   Lock l(&CTX()->thread_mtx);
-  for (int tid = 0; tid < kMaxTid; tid++) {
+  for (unsigned tid = 0; tid < kMaxTid; tid++) {
     if (CTX()->threads[tid] != 0
         && CTX()->threads[tid]->user_id == uid
         && CTX()->threads[tid]->status != ThreadStatusInvalid)