[MinGW] Reject explicit non-default visibility applied to dllexport/dllimport declaration
authorFangrui Song <i@maskray.me>
Mon, 5 Sep 2022 17:17:19 +0000 (10:17 -0700)
committerFangrui Song <i@maskray.me>
Mon, 5 Sep 2022 17:17:19 +0000 (10:17 -0700)
commit91d8324366f405e871aa8174ab61fc66912964dd
treec636e769a48115b80264c509475741d1b66848cc
parent05737fa209ba97b330739af3b00834c21b0547b7
[MinGW] Reject explicit non-default visibility applied to dllexport/dllimport declaration

dllimport/dllexport is incompatible with protected/hidden visibilities.
(Arguably dllexport semantics is compatible with protected but let's reject the
combo for simplicity.)

When an explicit visibility attribute applies on a dllexport/dllimport
declaration, report a Frontend error (Sema does not compute visibility).

Reviewed By: mstorsjo

Differential Revision: https://reviews.llvm.org/D133266
clang/include/clang/Basic/DiagnosticFrontendKinds.td
clang/lib/CodeGen/CodeGenModule.cpp
clang/test/CodeGenCXX/dllstorage-visibility.cpp