On Mon, Jun 23, 2014 at 5:13 PM, Reid Kleckner <[email protected]> wrote: > Does your code handle explicit template specializations with inconsistent DLL > attributes? I'm thinking of this test case: > > template <typename T> struct Foo { T get() { return {}; } }; > template <> struct __declspec(dllimport) Foo<int> { int get() { return 42; > } }; > struct __declspec(dllexport) Bar : Foo<int> { > int baz() { return Foo<int>::get(); } > }; > Bar b; > > MSVC appears to import Foo<int>::get(), but if I understand your code > correctly, it will diagnose this.
Interesting. I guess they don't try to propagate the attribute to explicit specializations, which makes sense. I'll see if I can make my patch not warn here, and check if this applies to partial specializations too. _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
