use llvm-style's c api