From 6f1e639ff0092c56fb1b8ce8fe298cc5ffc32bfb Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sat, 24 Jan 2026 13:19:48 +0900 Subject: feat: implement parsing of "sizeof expr" --- tests/operators.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'tests/operators.c') diff --git a/tests/operators.c b/tests/operators.c index 9e9ba08..e089477 100644 --- a/tests/operators.c +++ b/tests/operators.c @@ -119,4 +119,27 @@ int main() { // ternary operator ASSERT_EQ(2, 1 ? 2 : 3); ASSERT_EQ(5, 0 ? 4 : 5); + + // sizeof operator + // sizeof '(' type-name ')' + ASSERT_EQ(4, sizeof(int)); + ASSERT_EQ(1, sizeof(char)); + + // sizeof unary-expr (with parenthesized expressions) + ASSERT_EQ(4, sizeof(+123)); + ASSERT_EQ(4, sizeof(-1)); + ASSERT_EQ(4, sizeof(1 + 2)); + ASSERT_EQ(4, sizeof(~0)); + ASSERT_EQ(4, sizeof(!0)); + + // sizeof unary-expr (variable) + int sz_var = 42; + ASSERT_EQ(4, sizeof(sz_var)); + ASSERT_EQ(4, sizeof sz_var); + + // sizeof with more complex expressions + char sz_c = 'a'; + ASSERT_EQ(1, sizeof sz_c); + ASSERT_EQ(1, sizeof(sz_c)); + ASSERT_EQ(4, sizeof(sz_c + 1)); } -- cgit v1.3-1-g0d28