From 7263fd79dc1b9e150d7a9e22c52c34d7b5a123dd Mon Sep 17 00:00:00 2001 From: Neil Hodgson Date: Tue, 18 Sep 2018 13:00:08 +1000 Subject: Guard against shifting by negative amount as that is undefined behaviour. --- 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 2cd3975e0..ee645e9e0 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 901b6e93d..640f12fcb 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