[llvm-dev] [PATCH 2/2] Object/WasmObjectFile: Fix comparison of different signs

Mauro Rossi via llvm-dev llvm-dev at lists.llvm.org
Sun Jun 10 06:34:13 PDT 2018


Fixes the following building error:

external/llvm/lib/Object/WasmObjectFile.cpp:978:14:
error: comparison of integers of different signs:
'uint32_t' (aka 'unsigned int') and 'int' [-Werror,-Wsign-compare]
    if (Size > Ctx.End - Ctx.Ptr)
        ~~~~ ^ ~~~~~~~~~~~~~~~~~
1 error generated.

Fixes: 50617cfe72 ("[WebAssembly] Add more error checking to object file parsing")
---
 lib/Object/WasmObjectFile.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/Object/WasmObjectFile.cpp b/lib/Object/WasmObjectFile.cpp
index 2f91a973dda..ba5e6ac4cb3 100644
--- a/lib/Object/WasmObjectFile.cpp
+++ b/lib/Object/WasmObjectFile.cpp
@@ -975,7 +975,7 @@ Error WasmObjectFile::parseDataSection(ReadContext &Ctx) {
     if (Error Err = readInitExpr(Segment.Data.Offset, Ctx))
       return Err;
     uint32_t Size = readVaruint32(Ctx);
-    if (Size > Ctx.End - Ctx.Ptr)
+    if (Size > (uint32_t) (Ctx.End - Ctx.Ptr))
       return make_error<GenericBinaryError>("Invalid segment size",
                                             object_error::parse_failed);
     Segment.Data.Content = ArrayRef<uint8_t>(Ctx.Ptr, Size);
-- 
2.17.1



More information about the llvm-dev mailing list