Mercurial > hg > Members > Moririn
view src/allocate/allocate.c @ 14:d98961bfd0f2
Code linkage information
author | innparusu |
---|---|
date | Fri, 10 Apr 2015 17:57:38 +0900 |
parents | a4f351b66544 |
children | 907c69e21e56 |
line wrap: on
line source
#include <stdio.h> #include <stdlib.h> #include "prototype.h" #include "context.h" #include "allocate.h" #include "origin_cs.h" #ifdef CLANG #define _CbC_retrun __return #define _CbC_environment __environment #endif #define NUM 100 /* __code code1(Allocate allocate) { allocate.size = sizeof(long); allocate.next = Code2; goto Allocate(allocate); } */ __code code1(Context* context) { context->data[0]->Allocate.size = sizeof(long); context->data[0]->Allocate.next = Code2; goto meta(context, Allocate); } __code meta(Context* context, enum Code next) { goto (context->code[next])(context); } /* __code code2(Allocate allocate, Count count) { count.count = 0; goto code3(count); } */ __code code2(Context* context) { context->data[1]->count = 0; goto meta(context, Code3); } __code code3(Context* context) { long loop = context->data[1]->count; if (loop == NUM) { goto meta(context, Exit); } printf("%d\n", loop); context->data[1]->count++; goto meta(context, Code3); } int main() { Context* context = (Context*)malloc(sizeof(Context)); context->ds_heap = malloc(sizeof(data1)*1024); context->mds_heap = malloc(sizeof(mdata)*1024); context->ds = context->ds_heap; context->mds = context->mds_heap; goto start_code(context, code1); }