From 9808da6fa62255d1ad77d988ef3617a2381e3299 Mon Sep 17 00:00:00 2001 From: Neil Hodgson Date: Tue, 18 Sep 2018 13:00:08 +1000 Subject: Backport: Guard against shifting by negative amount as that is undefined behaviour. Backport of changeset 7090:041e498f21d3. --- lexers/LexCPP.cxx | 6 +++++- lexers/LexVerilog.cxx | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/lexers/LexCPP.cxx b/lexers/LexCPP.cxx index d6f6f63dd..a3942b5e3 100644 --- a/lexers/LexCPP.cxx +++ b/lexers/LexCPP.cxx @@ -242,7 +242,11 @@ class LinePPState { return level >= 0 && level < 32; } int maskLevel() const noexcept { - return 1 << level; + if (level >= 0) { + return 1 << level; + } else { + return 1; + } } public: LinePPState() : state(0), ifTaken(0), level(-1) { diff --git a/lexers/LexVerilog.cxx b/lexers/LexVerilog.cxx index c4e40e1ec..3dc2ac1ef 100644 --- a/lexers/LexVerilog.cxx +++ b/lexers/LexVerilog.cxx @@ -57,7 +57,11 @@ class LinePPState { return level >= 0 && level < 32; } int maskLevel() const { - return 1 << level; + if (level >= 0) { + return 1 << level; + } else { + return 1; + } } public: LinePPState() : state(0), ifTaken(0), level(-1) { -- cgit v1.2.3