From 4b3f18de3c5746b2ecfd6183351913de0909a83b Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Tue, 24 Jan 2017 01:58:20 -0500 Subject: printf var args proof of concept See #167 Need to troubleshoot when we send 2 slices to printf. It goes into an infinite loop. This commit introduces 4 builtin functions: * `@isInteger` * `@isFloat` * `@canImplictCast` * `@typeName` --- src/codegen.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/codegen.cpp') diff --git a/src/codegen.cpp b/src/codegen.cpp index 29508a326e..9595fdefe9 100644 --- a/src/codegen.cpp +++ b/src/codegen.cpp @@ -2279,6 +2279,9 @@ static LLVMValueRef ir_render_instruction(CodeGen *g, IrExecutable *executable, case IrInstructionIdTestComptime: case IrInstructionIdGeneratedCode: case IrInstructionIdCheckSwitchProngs: + case IrInstructionIdTestType: + case IrInstructionIdTypeName: + case IrInstructionIdCanImplicitCast: zig_unreachable(); case IrInstructionIdReturn: return ir_render_return(g, executable, (IrInstructionReturn *)instruction); @@ -3652,6 +3655,10 @@ static void define_builtin_fns(CodeGen *g) { create_builtin_fn(g, BuiltinFnIdImport, "import", 1); create_builtin_fn(g, BuiltinFnIdCImport, "cImport", 1); create_builtin_fn(g, BuiltinFnIdErrName, "errorName", 1); + create_builtin_fn(g, BuiltinFnIdTypeName, "typeName", 1); + create_builtin_fn(g, BuiltinFnIdIsInteger, "isInteger", 1); + create_builtin_fn(g, BuiltinFnIdIsFloat, "isFloat", 1); + create_builtin_fn(g, BuiltinFnIdCanImplicitCast, "canImplicitCast", 2); create_builtin_fn(g, BuiltinFnIdEmbedFile, "embedFile", 1); create_builtin_fn(g, BuiltinFnIdCmpExchange, "cmpxchg", 5); create_builtin_fn(g, BuiltinFnIdFence, "fence", 1); -- cgit v1.2.3