tree eb9eea72a3501a1c88514a89ff195770cbe2f4a8
parent f5ac9206e576c0968c84aaaee4242072775e9b32
author nightstrike <nightstrike@gmail.com> 1629933300 -0700
committer nightstrike <nightstrike@gmail.com> 1629943972 -0700

Uglify function parameter names in public headers

For a long time, we have used unprefixed symbols like "a" in public
facing headers.  These are caught by the libstdc++ testsuite, so fix
them globally where possible.  The general technique applied is:

1) Default to just removing the parameter entirely if it provides no
additional information to the reader.  For instance:

  void f(struct timespec *t); // The letter 't' there is not helpful

2) In cases where the data type is generic and the parameter name has
added documentation value, replace it with a prefixed version, either
two underscores, or one underscore and an uppercase letter.  It seems
that much existing code uses the latter, so this patch does likewise.
For instance:

  void f(int signal);
  void f(int _Signal);
