- For -###, -o %t.o is unnecessary if we don't specifically test the output filename.
- --target= is the canonical spelling. -target is a legacy spelling which unfortunately cannot be removed because there are too many uses.
- -no-canonical-prefixes uses the dereferenced absolute path for the cc1 command. For most tests "-cc1" is sufficient to identify the command line, no need to specifically test the "clang" command, and -no-canonical-prefixes can removed.
- --unwindlib= is the preferred spelling. -u is a short option taking a value, which means a -uwindlib= typo cannot be detected.
I recommend that you take a look at linux-cross.cpp. Testing include paths and
library paths in one RUN line is sometimes more readable than having separate
include/library tests.
Having separate RUN lines for misc features like -fdata-sections
(aix-data-sections.c) is wasteful. It may be better testing multiple
options in a single RUN command.