diff --git a/lib/bcc/Compiler.cpp b/lib/bcc/Compiler.cpp
index 051d1eb..326e503 100644
--- a/lib/bcc/Compiler.cpp
+++ b/lib/bcc/Compiler.cpp
@@ -286,8 +286,6 @@
 //
 int Compiler::readBC(const char *bitcode,
                      size_t bitcodeSize,
-                     long bitcodeFileModTime,
-                     long bitcodeFileCRC32,
                      const BCCchar *resName,
                      const BCCchar *cacheDir) {
 
diff --git a/lib/bcc/Compiler.h b/lib/bcc/Compiler.h
index f76d71e..6d93c1a 100644
--- a/lib/bcc/Compiler.h
+++ b/lib/bcc/Compiler.h
@@ -125,8 +125,6 @@
 
     int readBC(const char *bitcode,
                size_t bitcodeSize,
-               long bitcodeFileModTime,
-               long bitcodeFileCRC32,
                const BCCchar *resName,
                const BCCchar *cacheDir);
 
diff --git a/lib/bcc/Script.cpp b/lib/bcc/Script.cpp
index bf13bce..2520bdc 100644
--- a/lib/bcc/Script.cpp
+++ b/lib/bcc/Script.cpp
@@ -105,8 +105,6 @@
 
 int Script::readBC(const char *bitcode,
                    size_t bitcodeSize,
-                   long bitcodeFileModTime,
-                   long bitcodeFileCRC32,
                    const BCCchar *resName,
                    const BCCchar *cacheDir) {
   if (mStatus != ScriptStatus::Unknown) {
@@ -209,7 +207,7 @@
 
   // Setup the source bitcode / module
   if (sourceBC) {
-    if (mCompiled->readBC(sourceBC, sourceSize, 0, 0, sourceResName, 0) != 0) {
+    if (mCompiled->readBC(sourceBC, sourceSize, sourceResName, 0) != 0) {
       return 1;
     }
   } else if (sourceModule) {
diff --git a/lib/bcc/Script.h b/lib/bcc/Script.h
index 056f65e..5e8d24f 100644
--- a/lib/bcc/Script.h
+++ b/lib/bcc/Script.h
@@ -53,7 +53,7 @@
     // ReadBC
     char const *sourceBC;
     char const *sourceResName;
-    int sourceSize;
+    size_t sourceSize;
 
     // ReadModule
     llvm::Module *sourceModule;
@@ -74,8 +74,6 @@
 
     int readBC(const char *bitcode,
                size_t bitcodeSize,
-               long bitcodeFileModTime,
-               long bitcodeFileCRC32,
                const BCCchar *resName,
                const BCCchar *cacheDir);
 
diff --git a/lib/bcc/ScriptCompiled.h b/lib/bcc/ScriptCompiled.h
index e769500..786865d 100644
--- a/lib/bcc/ScriptCompiled.h
+++ b/lib/bcc/ScriptCompiled.h
@@ -63,13 +63,9 @@
 
     int readBC(const char *bitcode,
                size_t bitcodeSize,
-               long bitcodeFileModTime,
-               long bitcodeFileCRC32,
                const BCCchar *resName,
                const BCCchar *cacheDir) {
-      return mCompiler.readBC(bitcode, bitcodeSize,
-                              bitcodeFileModTime, bitcodeFileCRC32,
-                              resName, cacheDir);
+      return mCompiler.readBC(bitcode, bitcodeSize, resName, cacheDir);
     }
 
     int linkBC(const char *bitcode, size_t bitcodeSize) {
diff --git a/lib/bcc/bcc.cpp b/lib/bcc/bcc.cpp
index 776f3d1..04201cd 100644
--- a/lib/bcc/bcc.cpp
+++ b/lib/bcc/bcc.cpp
@@ -86,7 +86,7 @@
                          const BCCchar *resName,
                          const BCCchar *cacheDir) {
   BCC_FUNC_LOGGER();
-  return script->readBC(bitcode, bitcodeSize, 0, 0, resName, cacheDir);
+  return script->readBC(bitcode, bitcodeSize, resName, cacheDir);
 }
 
 extern "C" void bccLinkBC(BCCscript *script,
