All that's really needed is to remember all of the unknown -Wno-* options seen. From the point of view of the core of the option parser, accept them, but just store the string as provided. When the first warning is printed, print a message about them and clear them out so that the message will not be repeated.
If that's too difficult then it would be better to completely ignore unknown -Wno-* options than to complain about them.
All that's really needed is to remember all of the unknown -Wno-* options seen. From the point of view of the core of the option parser, accept them, but just store the string as provided. When the first warning is printed, print a message about them and clear them out so that the message will not be repeated.
If that's too difficult then it would be better to completely ignore unknown -Wno-* options than to complain about them.