I've just tried to use the C++ backend (gcc-10.2.1)
nim cpp -d:danger --gc:arc --passC:-ffast-math ...
but I get
/usr/lib/nim/wrappers/linenoise/linenoise.c: In function 'void
abAppend(abuf*, const char*, int)':
/usr/lib/nim/wrappers/linenoise/linenoise.c:462:11: error: expected
unqualified-id before 'new'
462 | char *new = realloc(ab->b,ab->len+len);
| ^~~
/usr/lib/nim/wrappers/linenoise/linenoise.c:464:13: error: expected
type-specifier before '==' token
464 | if (new == NULL) return;
| ^~
/usr/lib/nim/wrappers/linenoise/linenoise.c:465:15: error: expected
type-specifier before '+' token
465 | memcpy(new+ab->len,s,len);
Run
**new** is a keyword in C++ and must not be used as a variable