X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/706dd4584b4002e0d948b81d103dd5c4b70db077..acac7aa68c0c8fb3a534e04fecf11f6e143678c5:/src/mc/DwarfExpression.cpp diff --git a/src/mc/DwarfExpression.cpp b/src/mc/DwarfExpression.cpp index 6cdba68ae1..86043a0bf9 100644 --- a/src/mc/DwarfExpression.cpp +++ b/src/mc/DwarfExpression.cpp @@ -205,13 +205,19 @@ void execute( // and replace the top of the stack with the computed value // (stack.top() += stack.before_top()). - case DW_OP_plus: - stack.push(stack.pop() + stack.pop()); + case DW_OP_plus: { + intptr_t first = stack.pop(); + intptr_t second = stack.pop(); + stack.push(first + second); break; + } - case DW_OP_mul: - stack.push(stack.pop() * stack.pop()); + case DW_OP_mul: { + intptr_t first = stack.pop(); + intptr_t second = stack.pop(); + stack.push(first * second); break; + } case DW_OP_plus_uconst: stack.top() += op->number; @@ -225,21 +231,33 @@ 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()); + case DW_OP_and: { + intptr_t first = stack.pop(); + intptr_t second = stack.pop(); + stack.push(first & second); break; + } - case DW_OP_or: - stack.push(stack.pop() | stack.pop()); + case DW_OP_or: { + intptr_t first = stack.pop(); + intptr_t second = stack.pop(); + stack.push(first | second); break; + } - case DW_OP_xor: - stack.push(stack.pop() ^ stack.pop()); + case DW_OP_xor: { + intptr_t first = stack.pop(); + intptr_t second = stack.pop(); + stack.push(first ^ second); break; + } case DW_OP_nop: break;