This PR addresses a number of issues in clang argument handling:
Single letter options can immediately be followed by their value in the same argument rather than in the next argument.
Multi-letter options taking a value can frequently use either a space or an = separator before their value.
When -oFILE.OBJ is expressed (see item 1), FILE.OBJ needs to be identified as the output file to place the resulting bitcode into
Argument identification (for following argument values or for blacklisting) is based on regexps that need anchoring to prevent accidental false positives (e.g. recognizing -o in -fspec-output or --other).
Adds a --strict flag which preserves architecture and optimization specifications, which are (by default) otherwise removed to ensure maximal bitcode information without requiring cross-compilation support in clang/llvm.
This PR also adds a bunch of tests for verification of the above.
This PR addresses a number of issues in clang argument handling:
=
separator before their value.-oFILE.OBJ
is expressed (see item 1),FILE.OBJ
needs to be identified as the output file to place the resulting bitcode into-o
in-fspec-output
or--other
).--strict
flag which preserves architecture and optimization specifications, which are (by default) otherwise removed to ensure maximal bitcode information without requiring cross-compilation support in clang/llvm.This PR also adds a bunch of tests for verification of the above.