LLVM BC magic sniffer

This commit is contained in:
Nikita Smith
2026-07-27 14:47:12 -07:00
committed by Ryan Fleury
parent afd454b41f
commit 65541eaf91
2 changed files with 22 additions and 1 deletions
+21
View File
@@ -22,3 +22,24 @@ llvm_hash_size_from_alg(LLVM_GHashAlg v)
}
return 0;
}
internal B32
llvm_is_bitcode(String8 data)
{
if (data.size < 4) {
return 0;
}
// raw LLVM bitcode magic
if (data.str[0] == 'B' && data.str[1] == 'C' && data.str[2] == 0xc0 && data.str[3] == 0xde) {
return 1;
}
// LLVM bitcode wrapper magic
if (data.str[0] == 0xde && data.str[1] == 0xc0 && data.str[2] == 0x17 && data.str[3] == 0x0b) {
return 1;
}
return 0;
}
+1 -1
View File
@@ -25,6 +25,6 @@ typedef struct LLVM_GHash
internal String8 llvm_string_from_ghash_alg(LLVM_GHashAlg v);
internal U64 llvm_hash_size_from_alg(LLVM_GHashAlg v);
internal B32 llvm_is_bitcode(String8 data);
#endif // LLVM_H