<div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">---------- Forwarded message ---------<br>发件人: <strong class="gmail_sendername" dir="auto">shankusu2017</strong> <span dir="auto"><<a href="mailto:shankusu2017@gmail.com">shankusu2017@gmail.com</a>></span><br>Date: 2021年12月19日周日 18:17<br>Subject: Fwd: about clang compile c to wasm lost argument<br>To:  <<a href="mailto:llvm-admin@lists.llvm.org">llvm-admin@lists.llvm.org</a>><br></div><br><br><div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">---------- Forwarded message ---------<br>发件人: <strong class="gmail_sendername" dir="auto">shankusu2017</strong> <span dir="auto"><<a href="mailto:shankusu2017@gmail.com" target="_blank">shankusu2017@gmail.com</a>></span><br>Date: 2021年12月19日周日 18:15<br>Subject: about clang compile c to wasm lost argument<br>To:  <<a href="mailto:surma@surma.dev" target="_blank">surma@surma.dev</a>><br></div><br><br><div dir="ltr">hi:<div>   I use clang to compile the c code into wasm, and I found that clang13/14 regards the variable reference in the c language as a parameter, such as the "..." part in int printf(const char *format, ...); In this way, when I implemented my own printf function in the host environment, wasm only passed 2 parameters to the host when calling prinf, but I actually passed more than 2 parameters. This will cause the printf function I implemented by myself to receive only 2 parameters, and thus lose one parameter. The attachment contains my original c code and compiled wasm and wat codes. The green box part shows that the printf function only accepts 2 input parameters. I don't know how to make clang understand that the number of parameters received by printf is uncertain. Is there any solution?</div><div>   follow build cmd:</div><div>clang -I ../../src/ --target=wasm32 -nostdlib  -Wl,--no-entry -Wl,--export-all -Wl,--allow-undefined --sysroot=/usr printf.c -o ../.././build/printf.wasm<br></div><div>wabt</div><div><br></div><div>wasm2wat printf.wasm -o printf.wat<br></div></div>
</div></div>
</div></div>