diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_flag_parser.cpp b/compiler-rt/lib/sanitizer_common/sanitizer_flag_parser.cpp index 83e080c3149c1..ca37df348580a 100644 --- a/compiler-rt/lib/sanitizer_common/sanitizer_flag_parser.cpp +++ b/compiler-rt/lib/sanitizer_common/sanitizer_flag_parser.cpp @@ -182,6 +182,9 @@ void FlagParser::RegisterHandler(const char *name, FlagHandlerBase *handler, ++n_flags_; } -FlagParser::FlagParser() : n_flags_(0), buf_(nullptr), pos_(0) {} +FlagParser::FlagParser() : n_flags_(0), buf_(nullptr), pos_(0) { + flags_ = + (Flag *)GetGlobalLowLevelAllocator().Allocate(sizeof(Flag) * kMaxFlags); +} } // namespace __sanitizer diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_flag_parser.h b/compiler-rt/lib/sanitizer_common/sanitizer_flag_parser.h index 9b8c106ec0720..dccdee4da2bd0 100644 --- a/compiler-rt/lib/sanitizer_common/sanitizer_flag_parser.h +++ b/compiler-rt/lib/sanitizer_common/sanitizer_flag_parser.h @@ -163,7 +163,7 @@ class FlagParser { const char *name; const char *desc; FlagHandlerBase *handler; - } flags_[kMaxFlags]; + } *flags_; int n_flags_; const char *buf_;