Historically, a flag beginning - in multilib meant it was not compatible. So if you saw -fexceptions in multilib that meant exceptions were not allowed, which is confusingly the exact opposite of what it means when you see it on the command line.
This change allows doing the obvious thing of just specifying verbatim the flags needed by each multilib. The default of deriving print options from flags beginning '+' remains.
(Without this change, you could just use flags with a - prefix and everything except -print-multi-lib would work, so this change only needs to change how option printing works).
I think it is worth adding some information from the commit message to the comment. In particular what the default behaviour is and what, if any, restrictions are there on the PrintOptionsList.
For example there is a comment in the assert in the constructor body that probably ought to be in the header
Are there any restrictions on the format of PrintOptionsList for it to print correctly? For example does each option need to be prefixed with -?