view test_cs.c @ 2:35d6eabeadb0

modify Makefile. we can use makefile to compile outside CbC examples. (some examples are not compilable...)
author Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
date Wed, 22 Oct 2014 02:06:29 +0900
parents bacef8675607
children f442aa72b246
line wrap: on
line source

#include<stdio.h>
#include<stdlib.h>

__code cs_exit(int , double , char );
__code cs1(int, int, int, int);
__code cs2(double, double, int, double);
void test_goto(void);

int main(int argc, char **argv){
  printf("main start\n");
  test_goto();
  return 0;
}

void test_goto(){
  goto cs1(10, 20, 30, 40);
}

__code cs1(int a, int b, int c, int d){
  printf("%4d, %4d, %4d, %4d\n", a, b, c, d);
  a += 40, b += 40, c += 40, d += 40;
  goto cs2((double)a, (double)b, c, (double)d);
}

__code cs2(double a, double b, int c, double d){
  printf("%4d, %4d, %4d, %4d\n", (int)a, (int)b, (int)c, (int)d);
  a += 40, b += 40, c += 40, d += 40;
  goto cs_exit((int)a, b, (char)c);
}

__code cs_exit(int a, double b, char c){
  printf("%4d, %4d, %4d\n", (int)a, (int)b, (int)c);
  printf("cs_exit was called!\n");
  exit(0);
}

void caller(int a, double b){
  cs2(b,20.0,a, 40.4);
  cs1(10,20,30, 40);
}