From 366e4448e231ced837b609f05f73f2aabe5e0750 Mon Sep 17 00:00:00 2001 From: Matthieu Volat Date: Thu, 12 Jan 2017 14:13:47 +0100 Subject: [PATCH 1/1] Fix an undefined C behavior. This will fix the minus operation on certain OS/compilers. --- src/mc/DwarfExpression.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/mc/DwarfExpression.cpp b/src/mc/DwarfExpression.cpp index 6cdba68ae1..03298eb6ba 100644 --- a/src/mc/DwarfExpression.cpp +++ b/src/mc/DwarfExpression.cpp @@ -225,9 +225,12 @@ void execute( stack.top() = - (intptr_t) stack.top(); break; - case DW_OP_minus: - stack.push(stack.pop() - stack.pop()); + case DW_OP_minus: { + intptr_t first = stack.pop(); + intptr_t second = stack.pop(); + stack.push(second - first); break; + } case DW_OP_and: stack.push(stack.pop() & stack.pop()); -- 2.20.1