diff options
Diffstat (limited to 'test/monniaux/frame_pointer')
-rw-r--r-- | test/monniaux/frame_pointer/Makefile | 16 | ||||
-rw-r--r-- | test/monniaux/frame_pointer/a.c | 9 | ||||
-rw-r--r-- | test/monniaux/frame_pointer/b.c | 11 |
3 files changed, 36 insertions, 0 deletions
diff --git a/test/monniaux/frame_pointer/Makefile b/test/monniaux/frame_pointer/Makefile new file mode 100644 index 00000000..ff4b187d --- /dev/null +++ b/test/monniaux/frame_pointer/Makefile @@ -0,0 +1,16 @@ +whole : a.o b.o + ../../../ccomp $+ -o $@ + +a.s : a.c + k1-cos-gcc -std=c99 -Wall -S $< + +b.s : b.c + ../../../ccomp -Wall -Wno-c11-extensions -S $< + +%.o : %.s + k1-cos-gcc -c $< + +clean: + -rm -f a.o b.o a.s b.s whole + +.PHONY: clean diff --git a/test/monniaux/frame_pointer/a.c b/test/monniaux/frame_pointer/a.c new file mode 100644 index 00000000..644ccc9b --- /dev/null +++ b/test/monniaux/frame_pointer/a.c @@ -0,0 +1,9 @@ +extern unsigned get_size(void); +extern void print_array(unsigned n, const int *t); + +int main() { + unsigned n = get_size(); + int tab[n]; + for(unsigned i=0; i<n; i++) tab[i] = i; + print_array(n, tab); +} diff --git a/test/monniaux/frame_pointer/b.c b/test/monniaux/frame_pointer/b.c new file mode 100644 index 00000000..dca8fbec --- /dev/null +++ b/test/monniaux/frame_pointer/b.c @@ -0,0 +1,11 @@ +#include <stdio.h> + +unsigned get_size(void) { + return 12; +} + +void print_array(unsigned n, const int *t) { + for(unsigned i=0; i<n; i++) { + printf("%d\n", t[i]); + } +} |