summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRaphael Isemann <teemperor@gmail.com>2018-01-22 14:32:43 +0000
committerRaphael Isemann <teemperor@gmail.com>2018-01-22 14:32:43 +0000
commit57f9b363c19ae58d8e895856e20b3f23951624b4 (patch)
treee8d5fcdf36736396a152119849e715212c232a37
parentda15b5b1161b7f290f2b3cb30db7d6bc06fb83fb (diff)
downloadbcm5719-llvm-57f9b363c19ae58d8e895856e20b3f23951624b4.tar.gz
bcm5719-llvm-57f9b363c19ae58d8e895856e20b3f23951624b4.zip
Fix uninitialized variable in GoParser
Summary: `m_last_tok` isn't initialized anywhere before it's used the first time (most likely in the `GoParser::Rule::error` method), which causes most of the GoParser tests to fail with sanitizers enabled with errors like this: ``` GoParser.cpp:52:21: runtime error: load of value <random value>, which is not a valid value for type 'GoLexer::TokenType' UndefinedBehaviorSanitizer: undefined-behavior GoParser.cpp:52:21 ``` Reviewers: ribrdb, davide, labath Reviewed By: labath Subscribers: labath, lldb-commits Differential Revision: https://reviews.llvm.org/D42339 llvm-svn: 323119
-rw-r--r--lldb/source/Plugins/ExpressionParser/Go/GoParser.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/lldb/source/Plugins/ExpressionParser/Go/GoParser.cpp b/lldb/source/Plugins/ExpressionParser/Go/GoParser.cpp
index 538bd05e25f..e20d03a0b17 100644
--- a/lldb/source/Plugins/ExpressionParser/Go/GoParser.cpp
+++ b/lldb/source/Plugins/ExpressionParser/Go/GoParser.cpp
@@ -67,7 +67,9 @@ private:
size_t m_pos;
};
-GoParser::GoParser(const char *src) : m_lexer(src), m_pos(0), m_failed(false) {}
+GoParser::GoParser(const char *src)
+ : m_lexer(src), m_pos(0), m_last_tok(GoLexer::TOK_INVALID),
+ m_failed(false) {}
GoASTStmt *GoParser::Statement() {
Rule r("Statement", this);
OpenPOWER on IntegriCloud