diff --git a/src/compiler/codegen/MethodBitcode.cc b/src/compiler/codegen/MethodBitcode.cc
index ad9b020..f162576 100644
--- a/src/compiler/codegen/MethodBitcode.cc
+++ b/src/compiler/codegen/MethodBitcode.cc
@@ -551,7 +551,7 @@
     case Instruction::RETURN_WIDE:
     case Instruction::RETURN:
     case Instruction::RETURN_OBJECT: {
-        if (!cUnit->attrs & METHOD_IS_LEAF) {
+        if (!(cUnit->attrs & METHOD_IS_LEAF)) {
           emitSuspendCheck(cUnit);
         }
         emitPopShadowFrame(cUnit);
@@ -561,7 +561,7 @@
       break;
 
     case Instruction::RETURN_VOID: {
-        if (!cUnit->attrs & METHOD_IS_LEAF) {
+        if (!(cUnit->attrs & METHOD_IS_LEAF)) {
           emitSuspendCheck(cUnit);
         }
         emitPopShadowFrame(cUnit);
diff --git a/src/compiler/codegen/MethodCodegenDriver.cc b/src/compiler/codegen/MethodCodegenDriver.cc
index a07e569..62939ba 100644
--- a/src/compiler/codegen/MethodCodegenDriver.cc
+++ b/src/compiler/codegen/MethodCodegenDriver.cc
@@ -281,21 +281,21 @@
       break;
     }
     case Instruction::RETURN_VOID:
-      if (!cUnit->attrs & METHOD_IS_LEAF) {
+      if (!(cUnit->attrs & METHOD_IS_LEAF)) {
         genSuspendTest(cUnit, optFlags);
       }
       break;
 
     case Instruction::RETURN:
     case Instruction::RETURN_OBJECT:
-      if (!cUnit->attrs & METHOD_IS_LEAF) {
+      if (!(cUnit->attrs & METHOD_IS_LEAF)) {
         genSuspendTest(cUnit, optFlags);
       }
       storeValue(cUnit, oatGetReturn(cUnit, cUnit->shorty[0] == 'F'), rlSrc[0]);
       break;
 
     case Instruction::RETURN_WIDE:
-      if (!cUnit->attrs & METHOD_IS_LEAF) {
+      if (!(cUnit->attrs & METHOD_IS_LEAF)) {
         genSuspendTest(cUnit, optFlags);
       }
       storeValueWide(cUnit, oatGetReturnWide(cUnit,
