EVERY language relies on a binary blob from an untrusted origin . it ' s just that the untrusted blob is usually a copy of GCC that you ' ve learned to take on faith . The only way to avoid relying on an untrusted blob is to rewalk the chain of progress back up from the beginning , building your own ICs and OS and writing your own assembler in raw machine code . Otherwise , you ' re trusting an untrusted GCC on an untrusted OS in a machine full of processors running untrusted firmware . It ' s not out of the question for a modern hard drive to have more ARM computing power in it than the original Raspberry Pi and the potential for installing an exploit within the flash memory in the hard drive controller has been demonstrated . Also , LLVM doesn ' t take C , it takes an intermediate language called LLVM IR . The CC compiler offered as part of the LLVM ecosystem is called Clang or llvmclang and uses the LLVM core as a backend library in the same way that Rust does .