I forgot to say that I get this from the repl:
(define-macro (test x . args) `(list ,@(map car args)))
(test 10 ('x 1) ('y 2))
'(x y)
On the noreturn problem, I'm using this:
#ifdef _MSC_VER
#define noreturn _Noreturn /* deprecated in C23 */
...
which I got from somewhere online. I wonder what the correct code is.