typedef struct expression_s { int nChildren; expression_node_t *children[MAX_CHILDREN]; } expression_t; expression_t *create_expression() { expression_t *expr = (expression_t*)malloc(sizeof(expression_t)); expr->nChildren = 0; return expr; } ==> define %struct.expression_s* @create_expression() { entry: %expr = alloca %struct.expression_s* ; <%struct.expression_s**> [#uses=3] %call = call i8* @malloc( i32 132 ) ; [#uses=1] %conv = bitcast i8* %call to %struct.expression_s* ; <%struct.expression_s*> [#uses=1] store %struct.expression_s* %conv, %struct.expression_s** %expr %tmp = bitcast %struct.expression_s** %expr to %struct.expression_s* ; <%struct.expression_s*> [#uses=1] %tmp1 = getelementptr %struct.expression_s* %tmp, i32 0, i32 0 ; [#uses=1] store i32 0, i32* %tmp1 %tmp2 = load %struct.expression_s** %expr ; <%struct.expression_s*> [#uses=1] ret %struct.expression_s* %tmp2 }