diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2019-02-21 10:07:11 -0500 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2019-02-21 10:07:11 -0500 |
| commit | 2bb795dc455823e76ef3e0c9b3fcee6bcb15fddb (patch) | |
| tree | 995e0a82e2d47d0b6701716372808ae7a40a406f /src/all_types.hpp | |
| parent | db31c2524df4352593128aaceaa0b085ef8bb674 (diff) | |
| download | zig-2bb795dc455823e76ef3e0c9b3fcee6bcb15fddb.tar.gz zig-2bb795dc455823e76ef3e0c9b3fcee6bcb15fddb.zip | |
`@sliceToBytes` works at comptime
closes #262
Diffstat (limited to 'src/all_types.hpp')
| -rw-r--r-- | src/all_types.hpp | 33 |
1 files changed, 20 insertions, 13 deletions
diff --git a/src/all_types.hpp b/src/all_types.hpp index 2a359fa49b..0ee0fef2ca 100644 --- a/src/all_types.hpp +++ b/src/all_types.hpp @@ -630,19 +630,6 @@ struct AstNodeUnwrapOptional { AstNode *expr; }; -enum CastOp { - CastOpNoCast, // signifies the function call expression is not a cast - CastOpNoop, // fn call expr is a cast, but does nothing - CastOpIntToFloat, - CastOpFloatToInt, - CastOpBoolToInt, - CastOpResizeSlice, - CastOpNumLitToConcrete, - CastOpErrSet, - CastOpBitCast, - CastOpPtrOfArrayToSlice, -}; - struct AstNodeFnCallExpr { AstNode *fn_ref_expr; ZigList<AstNode *> params; @@ -2142,6 +2129,7 @@ enum IrInstructionId { IrInstructionIdConst, IrInstructionIdReturn, IrInstructionIdCast, + IrInstructionIdResizeSlice, IrInstructionIdContainerInitList, IrInstructionIdContainerInitFields, IrInstructionIdStructInit, @@ -2503,6 +2491,18 @@ struct IrInstructionReturn { IrInstruction *value; }; +enum CastOp { + CastOpNoCast, // signifies the function call expression is not a cast + CastOpNoop, // fn call expr is a cast, but does nothing + CastOpIntToFloat, + CastOpFloatToInt, + CastOpBoolToInt, + CastOpNumLitToConcrete, + CastOpErrSet, + CastOpBitCast, + CastOpPtrOfArrayToSlice, +}; + // TODO get rid of this instruction, replace with instructions for each op code struct IrInstructionCast { IrInstruction base; @@ -2513,6 +2513,13 @@ struct IrInstructionCast { LLVMValueRef tmp_ptr; }; +struct IrInstructionResizeSlice { + IrInstruction base; + + IrInstruction *operand; + LLVMValueRef tmp_ptr; +}; + struct IrInstructionContainerInitList { IrInstruction base; |
