libjuno 0.1.0

Library for JunoLang
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
use inkwell::AddressSpace;
use crate::*;
use super::LLVMBackend;
impl<'ctx> LLVMBackend<'ctx> {
    pub(super) fn add_printf(&mut self) {
        let i8ptr = self.context.ptr_type(AddressSpace::default());

        let printf_ty = self.context
            .i32_type()
            .fn_type(&[i8ptr.into()], true);

        let printf = self.module.add_function("printf", printf_ty, None);
        self.add_function(get_builtin_id("printf"), &printf).unwrap();
        self.builtins.insert("printf", printf);
    }
}