This is an archive of the discontinued LLVM Phabricator instance.

[Sema] Use MSVC inner class behavior on Itanium
ClosedPublic

Authored by smeenai on Apr 18 2017, 11:31 PM.

Details

Summary

Windows Itanium aims to use MSVC export and import semantics. Inner
class members shouldn't be exported on a dllexport explicit
instantiation definition of the outer class, and they shouldn't be
imported on a dllimport explicit instantiation declaration of the outer
class (instead a local copy should be emitted). We were doing the first
but not the second, and this mismatch can lead to link errors. Fix the
behavior and add tests for both.

Event Timeline

smeenai created this revision.Apr 18 2017, 11:31 PM
compnerd accepted this revision.Apr 19 2017, 6:13 PM
This revision is now accepted and ready to land.Apr 19 2017, 6:13 PM
This revision was automatically updated to reflect the committed changes.