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

Reply via email to