Skip to content

Commit 6222014

Browse files
committed
add test cases for def_func
1 parent 84e1823 commit 6222014

2 files changed

Lines changed: 11 additions & 5 deletions

File tree

9cc.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,10 @@ int main(int argc, char **argv) {
1818
{ // for the definition of global functions
1919
printf(".globl ");
2020
for (int i = 0; code[i]; i++) {
21-
printf("%.*s ", code[i]->len, code[i]->name);
21+
if (i > 0) printf(", ");
22+
printf("%.*s", code[i]->len, code[i]->name);
2223
}
23-
printf("\n");
24+
printf("\n\n");
2425
}
2526

2627

@@ -40,7 +41,7 @@ int main(int argc, char **argv) {
4041
// rax is still valid without dealing with it.
4142
printf(" mov rsp, rbp\n");
4243
printf(" pop rbp\n");
43-
printf(" ret\n");
44+
printf(" ret\n\n");
4445
}
4546

4647
return 0;

test.sh

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@ assert() {
66
./9cc "$input" > tmp.s
77
cc -o tmp tmp.s
88
./tmp
9-
actual="$?"
10-
9+
actual="$?"
1110
if [ "$actual" = "$expected" ]; then
1211
echo "$input => $actual"
1312
else
@@ -93,4 +92,10 @@ assert 10 'main() { a = 0; for(i = 0; i < 10; i = i+1) { a = a + 1; } return a;}
9392
assert 10 'main() { a = 0; b = 0; for(i = 0; i < 10; i = i+1) { a = a + 1; b = b + 2;} return a;}'
9493
assert 20 'main() { a = 0; b = 0; for(i = 0; i < 10; i = i+1) { a = a + 1; b = b + 2;} return b;}'
9594

95+
assert 2 'ident(a) { return a; }
96+
main() { return ident(2); }'
97+
assert 3 'add(a, b) { return a+b; }
98+
main() { return add(1, 2); }'
99+
100+
96101
echo OK

0 commit comments

Comments
 (0)