that is why it was not "static const char buf[]" ;) it was not an accident
executable stacks are still common (incl on windows with some settings), and sometimes they are required (eg for gcc nested functions)
That won't be located on the stack either. The underlying buffer will be a TU local - ie static and not rx
That won't be located on the stack either. The underlying buffer will be a TU local - ie static and not rx