[clang] [Clang] Allow simpler visibility annotations when targeting win32 and mingw (PR #133699)

Martin Storsjö via cfe-commits cfe-commits at lists.llvm.org
Fri Apr 11 06:48:16 PDT 2025


mstorsjo wrote:

I can't really comment much on the implementation here, I would mostly leave that up to people more familiar with those bits in Clang.

A little nitpickery wrt the text; it'd be clearer if it'd talk about "MSVC and mingw". Both MSVC mode and mingw mode are equally much "win32" or "windows". It's just that if you specify a triple like `x86_64-win32`, it gets expanded/normalized into `x86_64-windows-msvc` (same if you'd just do `x86_64-windows`), while `x86_64-mingw32` gets expanded into `x86_64-windows-gnu`.

Then for the description of the issue, it would be less confusing if it explicitly mentions template instantiations. For simpler things, like a plain function declaration, MSVC mode and mingw mode agree about where the dllexport/import attributes should be placed. Or in practice, mingw mode accepts the attributes in a superset of the locations where msvc mode accepts them. So when reading the subject/description, I first wondered why we need two different things at all, as one place should work for both. But for explicit template instantiations there's inded a bit of conflict in how it needs to be done, and we need the two different approaches.

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


More information about the cfe-commits mailing list