For example, given:
class __single_inheritance T;
-ast-print -fms-extensions used to print:
class __single_inheritance(1) T;
Clang fails to parse that because the "(1)" is not valid syntax.
This was discovered at:
http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20180514/228390.html
To fix that, this patch generally suppresses printing any attribute
argument that has its default value unless other arguments will be
printed after it. Doing so should always maintain the original source
semantics and produce valid syntax.
However, doing so also drops arguments where attributes are legally
specified explicitly with their default values but are not followed by
other arguments. Correct syntax in the previous case seems more
important than exact textual fidelity in this case.