Currently, FlangOptionsDocs.td doesn't specify ExcludedFlags which
means that in the generated documentation file we expose flags that:
- we don't necessarily want to advertise to our users (e.g. hidden flags), or
- are not supported altogether (e.g. CL options).
This patch defines ExcludeFlags to fix that. The definition of
ExcludeFlags was copied from Clang so that LLVM frontends have
consistent documentation.
It might be a bit counter-intuitive that IncludeFlags alone is not sufficient
here. However, the current logic in ClangOptionDocEmitter.cpp will parse
IncludeFlags and print all options that contains one of the included flags,
as well as their aliases. So, for example, for -fopenmp (which is a
supported Flang option), one would also get /fopenmp (i.e. CL mode
equivalent for -fopenmp). By adding ExcludeFlags,. which make sure
that such aliases are excluded.
I've also taken the liberty and moved FlangOptionsDocs.td. Originally it
was located in Flang's top include directory, but there shouldn't be any
implementation/documentation files there. Instead, I'm moving it to the
flang/docs directory.
If you've moved FlangOptionsDocs.td from flang/include/flang/ to flang/docs/, then should this include not be change to "../../clang/include/clang/Driver/Options.td"?