[msan] Block reports from interceptors during _Unwind_Backtrace

Summary:
I'm hitting a big recursive report from:
  uninit on strlen ->
  __msan::PrintWarningWithOrigin() ->
  __msan::GetStackTrace() ->
  __sanitizer::StackTrace::SlowUnwindStack() ->
  _Unwind_Backtrace() ->
  ... libgcc calls ->
  uninit on strlen() ->
  ... repeats

Reviewers: eugenis

Differential Revision: http://llvm-reviews.chandlerc.com/D497

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@176555 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/msan/msan.h b/lib/msan/msan.h
index 2150c83..fae1ad5 100644
--- a/lib/msan/msan.h
+++ b/lib/msan/msan.h
@@ -50,6 +50,11 @@
 void ExitSymbolizer();
 bool IsInSymbolizer();
 
+struct SymbolizerScope {
+  SymbolizerScope() { EnterSymbolizer(); }
+  ~SymbolizerScope() { ExitSymbolizer(); }
+};
+
 void MsanDie();
 void PrintWarning(uptr pc, uptr bp);
 void PrintWarningWithOrigin(uptr pc, uptr bp, u32 origin);