[clang] Ignore template parameter visibility (PR #72092)

John McCall via cfe-commits cfe-commits at lists.llvm.org
Mon Nov 13 13:14:00 PST 2023


rjmccall wrote:

Can we just ignore template parameters selectively when we have a visibility attribute, the way I suggested in https://reviews.llvm.org/D154774?  To quote:

> A visibility attribute on an explicit specialization or instantiation should definitely override everything else.  A visibility attribute on a template pattern should only override other visibility information that we would derive from that pattern, like the visibility of the template parameters; it should not override visibility from the template arguments.  You probably need this function to return an enum with three cases: (1) factor in both template arguments and template parameters, (2) factor in only template arguments, and (3) factor in nothing.

In the absence of visibility attributes, a template that's templated over e.g. an `enum` with hidden visibility seems like it ought to have hidden visibility.

https://github.com/llvm/llvm-project/pull/72092


More information about the cfe-commits mailing list