#include <string.h> #include <unistd.h> void foo(size_t n; const char s[static n], size_t n) { write(1, s, n); } int main(int argc, char **argv) { foo("hello, ", 7); if (argc > 1) foo(argv[1], strlen(argv[1])); foo("\n", 1); return 0; }
Clang does not support this syntax.
It did not in GCC 13, but I fixed this bug.