From 57f9b363c19ae58d8e895856e20b3f23951624b4 Mon Sep 17 00:00:00 2001 From: Raphael Isemann Date: Mon, 22 Jan 2018 14:32:43 +0000 Subject: [PATCH] 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 , 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 --- lldb/source/Plugins/ExpressionParser/Go/GoParser.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lldb/source/Plugins/ExpressionParser/Go/GoParser.cpp b/lldb/source/Plugins/ExpressionParser/Go/GoParser.cpp index 538bd05..e20d03a 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); -- 2.7.4