diff --git a/lld/COFF/InputFiles.cpp b/lld/COFF/InputFiles.cpp
index 6737e0f..038b80f 100644
--- a/lld/COFF/InputFiles.cpp
+++ b/lld/COFF/InputFiles.cpp
@@ -127,7 +127,7 @@
     if (Name == ".drectve") {
       ArrayRef<uint8_t> Data;
       COFFObj->getSectionContents(Sec, Data);
-      Directives = StringRef((char *)Data.data(), Data.size()).trim();
+      Directives = StringRef((const char *)Data.data(), Data.size()).trim();
       continue;
     }
     if (Name.startswith(".debug"))
@@ -201,7 +201,7 @@
   }
   if (IsFirst && AuxP) {
     if (Chunk *C = SparseChunks[Sym.getSectionNumber()]) {
-      auto *Aux = (coff_aux_section_definition *)AuxP;
+      auto *Aux = (coff_aux_section_definition *)const_cast<void *>(AuxP);
       auto *Parent =
           (SectionChunk *)(SparseChunks[Aux->getNumber(Sym.isBigObj())]);
       if (Parent)
@@ -219,7 +219,7 @@
   const auto *Hdr = reinterpret_cast<const coff_import_header *>(Buf);
 
   // Check if the total size is valid.
-  if (End - Buf != sizeof(*Hdr) + Hdr->SizeOfData) {
+  if ((size_t)(End - Buf) != (sizeof(*Hdr) + Hdr->SizeOfData)) {
     llvm::errs() << "broken import library\n";
     return make_error_code(LLDError::BrokenFile);
   }
