This code: ```c int bar(int *x); int foo(int s) { asm volatile("mv x8, x0" ::: "x8"); int x[s]; bar(x); return 0; } ``` generates this assembly: ```asm foo: addi sp, sp, -16 sw ra, 12(sp) sw s0, 8(sp) addi s0, sp, 16 li s0, 0 ; asm code slli a0, a0, 2 addi a0, a0, 15 andi a0, a0, -16 sub a0, sp, a0 mv sp, a0 call bar li a0, 0 addi sp, s0, -16 ; use of `s0` while it's clobbered lw ra, 12(sp) lw s0, 8(sp) addi sp, sp, 16 ret ``` https://godbolt.org/z/5hKz8KxY8