[OptTable] Reapply Improve error message output for grouped short options
authorgbreynoo <Owen.Reynolds@sony.com>
Fri, 3 Sep 2021 10:08:39 +0000 (11:08 +0100)
committergbreynoo <Owen.Reynolds@sony.com>
Fri, 3 Sep 2021 10:13:52 +0000 (11:13 +0100)
commite28cd75a5039893db5861f49eeea9eb5b59bdcdc
tree90bf63ad2eab8c590dd9e959d0dc4d61d334b915
parent9e3f86e273d07786f5efa41494581e4971d8b0c0
[OptTable] Reapply Improve error message output for grouped short options

This reapplies 71d7fed3bc2ad6c22729d446526a59fcfd99bd03 which was
reverted by 3e2bd82f02c6cbbfb0544897c7645867f04b3a7e. This change
includes the fix for breaking the sanitizer bots.

As seen in https://bugs.llvm.org/show_bug.cgi?id=48880 the current
implementation for parsing grouped short options can return unclear
error messages. This change fixes the example given in the ticket in
which a flag is incorrectly given an argument. Also when parsing a
group we now keep reading past the first incorrect option and output
errors for all incorrect options in the group.

Differential Revision: https://reviews.llvm.org/D108770
llvm/lib/Option/OptTable.cpp
llvm/test/tools/llvm-objcopy/tool-help-message.test
llvm/unittests/Option/OptionParsingTest.cpp