kit

kit
git clone https://git.ryansepassi.com/git/kit.git
Log | Files | Refs | README

commit 99f006fdd2e11062b6c6631cac7f6bdec96464b1
parent 19a45576c25b82c868654d936291e1365c4f1ef4
Author: Ryan Sepassi <rsepassi@gmail.com>
Date:   Sat,  9 May 2026 20:42:10 -0700

test/parse: author corpus cases for §6.5–§6.9

Fills out CORPUS.md rows for §6.5 expressions (04–24), §6.6 constant
expressions, §6.7 declarations, §6.7.9 initialization, §6.8 statements
(04–15), and §6.9 external definitions. Each case is verified against
clang to confirm the .expected exit code mod 256.

Diffstat:
Atest/parse/cases/6_5_04_div_mod.c | 3+++
Atest/parse/cases/6_5_04_div_mod.expected | 1+
Atest/parse/cases/6_5_05_bitwise_and.c | 3+++
Atest/parse/cases/6_5_05_bitwise_and.expected | 1+
Atest/parse/cases/6_5_06_bitwise_or_xor.c | 3+++
Atest/parse/cases/6_5_06_bitwise_or_xor.expected | 1+
Atest/parse/cases/6_5_07_shift.c | 3+++
Atest/parse/cases/6_5_07_shift.expected | 1+
Atest/parse/cases/6_5_08_unary_neg.c | 3+++
Atest/parse/cases/6_5_08_unary_neg.expected | 1+
Atest/parse/cases/6_5_09_logical_not.c | 3+++
Atest/parse/cases/6_5_09_logical_not.expected | 1+
Atest/parse/cases/6_5_10_cmp_eq.c | 3+++
Atest/parse/cases/6_5_10_cmp_eq.expected | 1+
Atest/parse/cases/6_5_11_cmp_lt.c | 3+++
Atest/parse/cases/6_5_11_cmp_lt.expected | 1+
Atest/parse/cases/6_5_12_logical_and_skip.c | 3+++
Atest/parse/cases/6_5_13_logical_or_skip.c | 3+++
Atest/parse/cases/6_5_14_ternary.c | 3+++
Atest/parse/cases/6_5_14_ternary.expected | 1+
Atest/parse/cases/6_5_15_comma.c | 3+++
Atest/parse/cases/6_5_15_comma.expected | 1+
Atest/parse/cases/6_5_16_assign.c | 3+++
Atest/parse/cases/6_5_16_assign.expected | 1+
Atest/parse/cases/6_5_17_compound_assign.c | 3+++
Atest/parse/cases/6_5_17_compound_assign.expected | 1+
Atest/parse/cases/6_5_18_pre_inc.c | 3+++
Atest/parse/cases/6_5_18_pre_inc.expected | 1+
Atest/parse/cases/6_5_19_post_inc.c | 3+++
Atest/parse/cases/6_5_19_post_inc.expected | 1+
Atest/parse/cases/6_5_20_addr_deref.c | 3+++
Atest/parse/cases/6_5_20_addr_deref.expected | 1+
Atest/parse/cases/6_5_21_sizeof_int.c | 3+++
Atest/parse/cases/6_5_21_sizeof_int.expected | 1+
Atest/parse/cases/6_5_22_sizeof_expr.c | 3+++
Atest/parse/cases/6_5_22_sizeof_expr.expected | 1+
Atest/parse/cases/6_5_23_cast.c | 3+++
Atest/parse/cases/6_5_23_cast.expected | 1+
Atest/parse/cases/6_5_24_func_call.c | 4++++
Atest/parse/cases/6_5_24_func_call.expected | 1+
Atest/parse/cases/6_6_01_enum_const.c | 3+++
Atest/parse/cases/6_6_01_enum_const.expected | 1+
Atest/parse/cases/6_6_02_const_expr_init.c | 3+++
Atest/parse/cases/6_6_02_const_expr_init.expected | 1+
Atest/parse/cases/6_6_03_array_size_const.c | 3+++
Atest/parse/cases/6_6_03_array_size_const.expected | 1+
Atest/parse/cases/6_7_01_typedef.c | 3+++
Atest/parse/cases/6_7_01_typedef.expected | 1+
Atest/parse/cases/6_7_02_static_local.c | 3+++
Atest/parse/cases/6_7_02_static_local.expected | 1+
Atest/parse/cases/6_7_03_static_global.c | 2++
Atest/parse/cases/6_7_03_static_global.expected | 1+
Atest/parse/cases/6_7_04_extern_resolved.c | 3+++
Atest/parse/cases/6_7_04_extern_resolved.expected | 1+
Atest/parse/cases/6_7_05_const_qualifier.c | 3+++
Atest/parse/cases/6_7_05_const_qualifier.expected | 1+
Atest/parse/cases/6_7_06_struct_basic.c | 3+++
Atest/parse/cases/6_7_06_struct_basic.expected | 1+
Atest/parse/cases/6_7_07_union_basic.c | 3+++
Atest/parse/cases/6_7_07_union_basic.expected | 1+
Atest/parse/cases/6_7_08_enum_basic.c | 3+++
Atest/parse/cases/6_7_08_enum_basic.expected | 1+
Atest/parse/cases/6_7_09_alignof.c | 3+++
Atest/parse/cases/6_7_09_alignof.expected | 1+
Atest/parse/cases/6_7_9_01_scalar_init.c | 3+++
Atest/parse/cases/6_7_9_01_scalar_init.expected | 1+
Atest/parse/cases/6_7_9_02_array_brace.c | 3+++
Atest/parse/cases/6_7_9_02_array_brace.expected | 1+
Atest/parse/cases/6_7_9_03_partial_zero.c | 3+++
Atest/parse/cases/6_7_9_03_partial_zero.expected | 1+
Atest/parse/cases/6_7_9_04_designated.c | 3+++
Atest/parse/cases/6_7_9_04_designated.expected | 1+
Atest/parse/cases/6_7_9_05_struct_init.c | 3+++
Atest/parse/cases/6_7_9_05_struct_init.expected | 1+
Atest/parse/cases/6_7_9_06_string_init.c | 3+++
Atest/parse/cases/6_7_9_06_string_init.expected | 1+
Atest/parse/cases/6_8_04_do_while.c | 3+++
Atest/parse/cases/6_8_04_do_while.expected | 1+
Atest/parse/cases/6_8_05_break.c | 3+++
Atest/parse/cases/6_8_05_break.expected | 1+
Atest/parse/cases/6_8_06_continue.c | 3+++
Atest/parse/cases/6_8_06_continue.expected | 1+
Atest/parse/cases/6_8_07_switch_case.c | 3+++
Atest/parse/cases/6_8_07_switch_case.expected | 1+
Atest/parse/cases/6_8_08_switch_fallthrough.c | 3+++
Atest/parse/cases/6_8_08_switch_fallthrough.expected | 1+
Atest/parse/cases/6_8_09_switch_default.c | 3+++
Atest/parse/cases/6_8_09_switch_default.expected | 1+
Atest/parse/cases/6_8_10_goto_forward.c | 3+++
Atest/parse/cases/6_8_10_goto_forward.expected | 1+
Atest/parse/cases/6_8_11_goto_backward.c | 3+++
Atest/parse/cases/6_8_11_goto_backward.expected | 1+
Atest/parse/cases/6_8_12_block_scope.c | 3+++
Atest/parse/cases/6_8_12_block_scope.expected | 1+
Atest/parse/cases/6_8_13_compound_decl_mix.c | 3+++
Atest/parse/cases/6_8_13_compound_decl_mix.expected | 1+
Atest/parse/cases/6_8_14_return_void.c | 2++
Atest/parse/cases/6_8_14_return_void.expected | 1+
Atest/parse/cases/6_8_15_null_statement.c | 3+++
Atest/parse/cases/6_8_15_null_statement.expected | 1+
Atest/parse/cases/6_9_01_two_functions.c | 2++
Atest/parse/cases/6_9_01_two_functions.expected | 1+
Atest/parse/cases/6_9_02_recursive_function.c | 2++
Atest/parse/cases/6_9_02_recursive_function.expected | 1+
Atest/parse/cases/6_9_03_tentative_def.c | 2++
Atest/parse/cases/6_9_04_static_func.c | 2++
Atest/parse/cases/6_9_04_static_func.expected | 1+
Atest/parse/cases/6_9_05_proto_then_def.c | 3+++
Atest/parse/cases/6_9_05_proto_then_def.expected | 1+
109 files changed, 216 insertions(+), 0 deletions(-)

diff --git a/test/parse/cases/6_5_04_div_mod.c b/test/parse/cases/6_5_04_div_mod.c @@ -0,0 +1,3 @@ +int test_main(void) { + return 23 / 4 + 23 % 4; +} diff --git a/test/parse/cases/6_5_04_div_mod.expected b/test/parse/cases/6_5_04_div_mod.expected @@ -0,0 +1 @@ +8 diff --git a/test/parse/cases/6_5_05_bitwise_and.c b/test/parse/cases/6_5_05_bitwise_and.c @@ -0,0 +1,3 @@ +int test_main(void) { + return (~3) & 0xff; +} diff --git a/test/parse/cases/6_5_05_bitwise_and.expected b/test/parse/cases/6_5_05_bitwise_and.expected @@ -0,0 +1 @@ +252 diff --git a/test/parse/cases/6_5_06_bitwise_or_xor.c b/test/parse/cases/6_5_06_bitwise_or_xor.c @@ -0,0 +1,3 @@ +int test_main(void) { + return (0xa5 ^ 0x5a) & 0xff; +} diff --git a/test/parse/cases/6_5_06_bitwise_or_xor.expected b/test/parse/cases/6_5_06_bitwise_or_xor.expected @@ -0,0 +1 @@ +255 diff --git a/test/parse/cases/6_5_07_shift.c b/test/parse/cases/6_5_07_shift.c @@ -0,0 +1,3 @@ +int test_main(void) { + return (1<<5) | (16>>1); +} diff --git a/test/parse/cases/6_5_07_shift.expected b/test/parse/cases/6_5_07_shift.expected @@ -0,0 +1 @@ +40 diff --git a/test/parse/cases/6_5_08_unary_neg.c b/test/parse/cases/6_5_08_unary_neg.c @@ -0,0 +1,3 @@ +int test_main(void) { + return -7; +} diff --git a/test/parse/cases/6_5_08_unary_neg.expected b/test/parse/cases/6_5_08_unary_neg.expected @@ -0,0 +1 @@ +249 diff --git a/test/parse/cases/6_5_09_logical_not.c b/test/parse/cases/6_5_09_logical_not.c @@ -0,0 +1,3 @@ +int test_main(void) { + return !0 + !!5; +} diff --git a/test/parse/cases/6_5_09_logical_not.expected b/test/parse/cases/6_5_09_logical_not.expected @@ -0,0 +1 @@ +2 diff --git a/test/parse/cases/6_5_10_cmp_eq.c b/test/parse/cases/6_5_10_cmp_eq.c @@ -0,0 +1,3 @@ +int test_main(void) { + return (5 == 5) + (5 == 6); +} diff --git a/test/parse/cases/6_5_10_cmp_eq.expected b/test/parse/cases/6_5_10_cmp_eq.expected @@ -0,0 +1 @@ +1 diff --git a/test/parse/cases/6_5_11_cmp_lt.c b/test/parse/cases/6_5_11_cmp_lt.c @@ -0,0 +1,3 @@ +int test_main(void) { + return (-1 < 1); +} diff --git a/test/parse/cases/6_5_11_cmp_lt.expected b/test/parse/cases/6_5_11_cmp_lt.expected @@ -0,0 +1 @@ +1 diff --git a/test/parse/cases/6_5_12_logical_and_skip.c b/test/parse/cases/6_5_12_logical_and_skip.c @@ -0,0 +1,3 @@ +int test_main(void) { + int s=0; (0) && (s=99); return s; +} diff --git a/test/parse/cases/6_5_13_logical_or_skip.c b/test/parse/cases/6_5_13_logical_or_skip.c @@ -0,0 +1,3 @@ +int test_main(void) { + int s=0; (1) || (s=99); return s; +} diff --git a/test/parse/cases/6_5_14_ternary.c b/test/parse/cases/6_5_14_ternary.c @@ -0,0 +1,3 @@ +int test_main(void) { + return (5>3) ? 42 : 7; +} diff --git a/test/parse/cases/6_5_14_ternary.expected b/test/parse/cases/6_5_14_ternary.expected @@ -0,0 +1 @@ +42 diff --git a/test/parse/cases/6_5_15_comma.c b/test/parse/cases/6_5_15_comma.c @@ -0,0 +1,3 @@ +int test_main(void) { + int x; return (x=1, x=42, x); +} diff --git a/test/parse/cases/6_5_15_comma.expected b/test/parse/cases/6_5_15_comma.expected @@ -0,0 +1 @@ +42 diff --git a/test/parse/cases/6_5_16_assign.c b/test/parse/cases/6_5_16_assign.c @@ -0,0 +1,3 @@ +int test_main(void) { + int x; x = 42; return x; +} diff --git a/test/parse/cases/6_5_16_assign.expected b/test/parse/cases/6_5_16_assign.expected @@ -0,0 +1 @@ +42 diff --git a/test/parse/cases/6_5_17_compound_assign.c b/test/parse/cases/6_5_17_compound_assign.c @@ -0,0 +1,3 @@ +int test_main(void) { + int x = 40; x += 2; return x; +} diff --git a/test/parse/cases/6_5_17_compound_assign.expected b/test/parse/cases/6_5_17_compound_assign.expected @@ -0,0 +1 @@ +42 diff --git a/test/parse/cases/6_5_18_pre_inc.c b/test/parse/cases/6_5_18_pre_inc.c @@ -0,0 +1,3 @@ +int test_main(void) { + int x = 41; return ++x; +} diff --git a/test/parse/cases/6_5_18_pre_inc.expected b/test/parse/cases/6_5_18_pre_inc.expected @@ -0,0 +1 @@ +42 diff --git a/test/parse/cases/6_5_19_post_inc.c b/test/parse/cases/6_5_19_post_inc.c @@ -0,0 +1,3 @@ +int test_main(void) { + int x = 42; x++; return x; +} diff --git a/test/parse/cases/6_5_19_post_inc.expected b/test/parse/cases/6_5_19_post_inc.expected @@ -0,0 +1 @@ +43 diff --git a/test/parse/cases/6_5_20_addr_deref.c b/test/parse/cases/6_5_20_addr_deref.c @@ -0,0 +1,3 @@ +int test_main(void) { + int x = 42; int *p = &x; return *p; +} diff --git a/test/parse/cases/6_5_20_addr_deref.expected b/test/parse/cases/6_5_20_addr_deref.expected @@ -0,0 +1 @@ +42 diff --git a/test/parse/cases/6_5_21_sizeof_int.c b/test/parse/cases/6_5_21_sizeof_int.c @@ -0,0 +1,3 @@ +int test_main(void) { + return (int)sizeof(int); +} diff --git a/test/parse/cases/6_5_21_sizeof_int.expected b/test/parse/cases/6_5_21_sizeof_int.expected @@ -0,0 +1 @@ +4 diff --git a/test/parse/cases/6_5_22_sizeof_expr.c b/test/parse/cases/6_5_22_sizeof_expr.c @@ -0,0 +1,3 @@ +int test_main(void) { + int a[7]; return (int)(sizeof(a)/sizeof(int)); +} diff --git a/test/parse/cases/6_5_22_sizeof_expr.expected b/test/parse/cases/6_5_22_sizeof_expr.expected @@ -0,0 +1 @@ +7 diff --git a/test/parse/cases/6_5_23_cast.c b/test/parse/cases/6_5_23_cast.c @@ -0,0 +1,3 @@ +int test_main(void) { + return (int)(unsigned char)(-1); +} diff --git a/test/parse/cases/6_5_23_cast.expected b/test/parse/cases/6_5_23_cast.expected @@ -0,0 +1 @@ +255 diff --git a/test/parse/cases/6_5_24_func_call.c b/test/parse/cases/6_5_24_func_call.c @@ -0,0 +1,4 @@ +int id(int x){return x;} +int test_main(void) { + return id(42); +} diff --git a/test/parse/cases/6_5_24_func_call.expected b/test/parse/cases/6_5_24_func_call.expected @@ -0,0 +1 @@ +42 diff --git a/test/parse/cases/6_6_01_enum_const.c b/test/parse/cases/6_6_01_enum_const.c @@ -0,0 +1,3 @@ +int test_main(void) { + enum { K = 42 }; return K; +} diff --git a/test/parse/cases/6_6_01_enum_const.expected b/test/parse/cases/6_6_01_enum_const.expected @@ -0,0 +1 @@ +42 diff --git a/test/parse/cases/6_6_02_const_expr_init.c b/test/parse/cases/6_6_02_const_expr_init.c @@ -0,0 +1,3 @@ +int test_main(void) { + int x = 1+2*3; return x; +} diff --git a/test/parse/cases/6_6_02_const_expr_init.expected b/test/parse/cases/6_6_02_const_expr_init.expected @@ -0,0 +1 @@ +7 diff --git a/test/parse/cases/6_6_03_array_size_const.c b/test/parse/cases/6_6_03_array_size_const.c @@ -0,0 +1,3 @@ +int test_main(void) { + int a[3+4] = {0}; return (int)sizeof a / (int)sizeof a[0]; +} diff --git a/test/parse/cases/6_6_03_array_size_const.expected b/test/parse/cases/6_6_03_array_size_const.expected @@ -0,0 +1 @@ +7 diff --git a/test/parse/cases/6_7_01_typedef.c b/test/parse/cases/6_7_01_typedef.c @@ -0,0 +1,3 @@ +int test_main(void) { + typedef int I; I x = 42; return x; +} diff --git a/test/parse/cases/6_7_01_typedef.expected b/test/parse/cases/6_7_01_typedef.expected @@ -0,0 +1 @@ +42 diff --git a/test/parse/cases/6_7_02_static_local.c b/test/parse/cases/6_7_02_static_local.c @@ -0,0 +1,3 @@ +int test_main(void) { + static int s = 42; return s; +} diff --git a/test/parse/cases/6_7_02_static_local.expected b/test/parse/cases/6_7_02_static_local.expected @@ -0,0 +1 @@ +42 diff --git a/test/parse/cases/6_7_03_static_global.c b/test/parse/cases/6_7_03_static_global.c @@ -0,0 +1,2 @@ +static int g = 42; +int test_main(void){return g;} diff --git a/test/parse/cases/6_7_03_static_global.expected b/test/parse/cases/6_7_03_static_global.expected @@ -0,0 +1 @@ +42 diff --git a/test/parse/cases/6_7_04_extern_resolved.c b/test/parse/cases/6_7_04_extern_resolved.c @@ -0,0 +1,3 @@ +extern int g; +int g = 42; +int test_main(void){return g;} diff --git a/test/parse/cases/6_7_04_extern_resolved.expected b/test/parse/cases/6_7_04_extern_resolved.expected @@ -0,0 +1 @@ +42 diff --git a/test/parse/cases/6_7_05_const_qualifier.c b/test/parse/cases/6_7_05_const_qualifier.c @@ -0,0 +1,3 @@ +int test_main(void) { + const int c = 42; return c; +} diff --git a/test/parse/cases/6_7_05_const_qualifier.expected b/test/parse/cases/6_7_05_const_qualifier.expected @@ -0,0 +1 @@ +42 diff --git a/test/parse/cases/6_7_06_struct_basic.c b/test/parse/cases/6_7_06_struct_basic.c @@ -0,0 +1,3 @@ +int test_main(void) { + struct S { int a, b; } s = {10, 32}; return s.a + s.b; +} diff --git a/test/parse/cases/6_7_06_struct_basic.expected b/test/parse/cases/6_7_06_struct_basic.expected @@ -0,0 +1 @@ +42 diff --git a/test/parse/cases/6_7_07_union_basic.c b/test/parse/cases/6_7_07_union_basic.c @@ -0,0 +1,3 @@ +int test_main(void) { + union U { int i; char c[4]; } u; u.i = 42; return u.i; +} diff --git a/test/parse/cases/6_7_07_union_basic.expected b/test/parse/cases/6_7_07_union_basic.expected @@ -0,0 +1 @@ +42 diff --git a/test/parse/cases/6_7_08_enum_basic.c b/test/parse/cases/6_7_08_enum_basic.c @@ -0,0 +1,3 @@ +int test_main(void) { + enum E { A = 40, B }; return B + 1; +} diff --git a/test/parse/cases/6_7_08_enum_basic.expected b/test/parse/cases/6_7_08_enum_basic.expected @@ -0,0 +1 @@ +42 diff --git a/test/parse/cases/6_7_09_alignof.c b/test/parse/cases/6_7_09_alignof.c @@ -0,0 +1,3 @@ +int test_main(void) { + return (int)_Alignof(double); +} diff --git a/test/parse/cases/6_7_09_alignof.expected b/test/parse/cases/6_7_09_alignof.expected @@ -0,0 +1 @@ +8 diff --git a/test/parse/cases/6_7_9_01_scalar_init.c b/test/parse/cases/6_7_9_01_scalar_init.c @@ -0,0 +1,3 @@ +int test_main(void) { + int x = 42; return x; +} diff --git a/test/parse/cases/6_7_9_01_scalar_init.expected b/test/parse/cases/6_7_9_01_scalar_init.expected @@ -0,0 +1 @@ +42 diff --git a/test/parse/cases/6_7_9_02_array_brace.c b/test/parse/cases/6_7_9_02_array_brace.c @@ -0,0 +1,3 @@ +int test_main(void) { + int a[3] = {10, 20, 12}; return a[0]+a[1]+a[2]; +} diff --git a/test/parse/cases/6_7_9_02_array_brace.expected b/test/parse/cases/6_7_9_02_array_brace.expected @@ -0,0 +1 @@ +42 diff --git a/test/parse/cases/6_7_9_03_partial_zero.c b/test/parse/cases/6_7_9_03_partial_zero.c @@ -0,0 +1,3 @@ +int test_main(void) { + int a[5] = {42}; return a[0] + a[4]; +} diff --git a/test/parse/cases/6_7_9_03_partial_zero.expected b/test/parse/cases/6_7_9_03_partial_zero.expected @@ -0,0 +1 @@ +42 diff --git a/test/parse/cases/6_7_9_04_designated.c b/test/parse/cases/6_7_9_04_designated.c @@ -0,0 +1,3 @@ +int test_main(void) { + int a[5] = {[2] = 42}; return a[2]; +} diff --git a/test/parse/cases/6_7_9_04_designated.expected b/test/parse/cases/6_7_9_04_designated.expected @@ -0,0 +1 @@ +42 diff --git a/test/parse/cases/6_7_9_05_struct_init.c b/test/parse/cases/6_7_9_05_struct_init.c @@ -0,0 +1,3 @@ +int test_main(void) { + struct S {int a,b;} s={40,2}; return s.a+s.b; +} diff --git a/test/parse/cases/6_7_9_05_struct_init.expected b/test/parse/cases/6_7_9_05_struct_init.expected @@ -0,0 +1 @@ +42 diff --git a/test/parse/cases/6_7_9_06_string_init.c b/test/parse/cases/6_7_9_06_string_init.c @@ -0,0 +1,3 @@ +int test_main(void) { + char s[] = "hi"; return s[0]+s[1]+s[2]; +} diff --git a/test/parse/cases/6_7_9_06_string_init.expected b/test/parse/cases/6_7_9_06_string_init.expected @@ -0,0 +1 @@ +209 diff --git a/test/parse/cases/6_8_04_do_while.c b/test/parse/cases/6_8_04_do_while.c @@ -0,0 +1,3 @@ +int test_main(void) { + int i=0; do { i=42; } while (0); return i; +} diff --git a/test/parse/cases/6_8_04_do_while.expected b/test/parse/cases/6_8_04_do_while.expected @@ -0,0 +1 @@ +42 diff --git a/test/parse/cases/6_8_05_break.c b/test/parse/cases/6_8_05_break.c @@ -0,0 +1,3 @@ +int test_main(void) { + int i; for (i=0;;i++) if (i==42) break; return i; +} diff --git a/test/parse/cases/6_8_05_break.expected b/test/parse/cases/6_8_05_break.expected @@ -0,0 +1 @@ +42 diff --git a/test/parse/cases/6_8_06_continue.c b/test/parse/cases/6_8_06_continue.c @@ -0,0 +1,3 @@ +int test_main(void) { + int s=0; for (int i=0; i<20; i++) { if (i & 1) continue; s += i; } return s; +} diff --git a/test/parse/cases/6_8_06_continue.expected b/test/parse/cases/6_8_06_continue.expected @@ -0,0 +1 @@ +90 diff --git a/test/parse/cases/6_8_07_switch_case.c b/test/parse/cases/6_8_07_switch_case.c @@ -0,0 +1,3 @@ +int test_main(void) { + int x = 2; switch (x) { case 1: return 1; case 2: return 42; case 3: return 3; } return 0; +} diff --git a/test/parse/cases/6_8_07_switch_case.expected b/test/parse/cases/6_8_07_switch_case.expected @@ -0,0 +1 @@ +42 diff --git a/test/parse/cases/6_8_08_switch_fallthrough.c b/test/parse/cases/6_8_08_switch_fallthrough.c @@ -0,0 +1,3 @@ +int test_main(void) { + int r = 0; int x = 1; switch (x) { case 1: r += 10; case 2: r += 20; } return r; +} diff --git a/test/parse/cases/6_8_08_switch_fallthrough.expected b/test/parse/cases/6_8_08_switch_fallthrough.expected @@ -0,0 +1 @@ +30 diff --git a/test/parse/cases/6_8_09_switch_default.c b/test/parse/cases/6_8_09_switch_default.c @@ -0,0 +1,3 @@ +int test_main(void) { + int x = 99; switch (x) { case 1: return 1; case 2: return 2; default: return 7; } return 0; +} diff --git a/test/parse/cases/6_8_09_switch_default.expected b/test/parse/cases/6_8_09_switch_default.expected @@ -0,0 +1 @@ +7 diff --git a/test/parse/cases/6_8_10_goto_forward.c b/test/parse/cases/6_8_10_goto_forward.c @@ -0,0 +1,3 @@ +int test_main(void) { + int r = 0; goto L; r = 99; L: return 42; +} diff --git a/test/parse/cases/6_8_10_goto_forward.expected b/test/parse/cases/6_8_10_goto_forward.expected @@ -0,0 +1 @@ +42 diff --git a/test/parse/cases/6_8_11_goto_backward.c b/test/parse/cases/6_8_11_goto_backward.c @@ -0,0 +1,3 @@ +int test_main(void) { + int i = 0; L: if (i == 10) goto E; i++; goto L; E: return i; +} diff --git a/test/parse/cases/6_8_11_goto_backward.expected b/test/parse/cases/6_8_11_goto_backward.expected @@ -0,0 +1 @@ +10 diff --git a/test/parse/cases/6_8_12_block_scope.c b/test/parse/cases/6_8_12_block_scope.c @@ -0,0 +1,3 @@ +int test_main(void) { + int x = 7; { int x = 42; return x; } +} diff --git a/test/parse/cases/6_8_12_block_scope.expected b/test/parse/cases/6_8_12_block_scope.expected @@ -0,0 +1 @@ +42 diff --git a/test/parse/cases/6_8_13_compound_decl_mix.c b/test/parse/cases/6_8_13_compound_decl_mix.c @@ -0,0 +1,3 @@ +int test_main(void) { + int a = 40; a += 1; int b = 1; return a + b; +} diff --git a/test/parse/cases/6_8_13_compound_decl_mix.expected b/test/parse/cases/6_8_13_compound_decl_mix.expected @@ -0,0 +1 @@ +42 diff --git a/test/parse/cases/6_8_14_return_void.c b/test/parse/cases/6_8_14_return_void.c @@ -0,0 +1,2 @@ +void f(void){return;} +int test_main(void){f(); return 42;} diff --git a/test/parse/cases/6_8_14_return_void.expected b/test/parse/cases/6_8_14_return_void.expected @@ -0,0 +1 @@ +42 diff --git a/test/parse/cases/6_8_15_null_statement.c b/test/parse/cases/6_8_15_null_statement.c @@ -0,0 +1,3 @@ +int test_main(void) { + int i; for (i = 0; i < 42; i++) ; return i; +} diff --git a/test/parse/cases/6_8_15_null_statement.expected b/test/parse/cases/6_8_15_null_statement.expected @@ -0,0 +1 @@ +42 diff --git a/test/parse/cases/6_9_01_two_functions.c b/test/parse/cases/6_9_01_two_functions.c @@ -0,0 +1,2 @@ +int helper(int x) { return x + 2; } +int test_main(void) { return helper(40); } diff --git a/test/parse/cases/6_9_01_two_functions.expected b/test/parse/cases/6_9_01_two_functions.expected @@ -0,0 +1 @@ +42 diff --git a/test/parse/cases/6_9_02_recursive_function.c b/test/parse/cases/6_9_02_recursive_function.c @@ -0,0 +1,2 @@ +int factorial(int n) { if (n <= 1) return 1; return n * factorial(n - 1); } +int test_main(void) { return factorial(5); } diff --git a/test/parse/cases/6_9_02_recursive_function.expected b/test/parse/cases/6_9_02_recursive_function.expected @@ -0,0 +1 @@ +120 diff --git a/test/parse/cases/6_9_03_tentative_def.c b/test/parse/cases/6_9_03_tentative_def.c @@ -0,0 +1,2 @@ +int g; +int test_main(void) { return g; } diff --git a/test/parse/cases/6_9_04_static_func.c b/test/parse/cases/6_9_04_static_func.c @@ -0,0 +1,2 @@ +static int helper(int x) { return x + 2; } +int test_main(void) { return helper(40); } diff --git a/test/parse/cases/6_9_04_static_func.expected b/test/parse/cases/6_9_04_static_func.expected @@ -0,0 +1 @@ +42 diff --git a/test/parse/cases/6_9_05_proto_then_def.c b/test/parse/cases/6_9_05_proto_then_def.c @@ -0,0 +1,3 @@ +int helper(int); +int test_main(void) { return helper(40); } +int helper(int x) { return x + 2; } diff --git a/test/parse/cases/6_9_05_proto_then_def.expected b/test/parse/cases/6_9_05_proto_then_def.expected @@ -0,0 +1 @@ +42