See T55054 for details, I can no longer reproduce the crash however using
dumpbin on the object files one can easily validate if the symbols are
public or private.
before:
2CA 00000000 SECTDC notype () External | ?interp_3d_tricubic@?$TextureInterpolator@Vhalf@ccl@@@ccl@@SA?AUfloat4@2@AEBUTextureInfo@2@MMM@Z (public: static struct ccl::float4 __cdecl ccl::TextureInterpolator<class ccl::half>::interp_3d_tricubic(struct ccl::TextureInfo const &,float,float,float)) 2CF 00000000 SECTDD notype () External | ?interp_3d_tricubic@?$TextureInterpolator@E@ccl@@SA?AUfloat4@2@AEBUTextureInfo@2@MMM@Z (public: static struct ccl::float4 __cdecl ccl::TextureInterpolator<unsigned char>::interp_3d_tricubic(struct ccl::TextureInfo const &,float,float,float)) 2D4 00000000 SECTDE notype () External | ?interp_3d_tricubic@?$TextureInterpolator@G@ccl@@SA?AUfloat4@2@AEBUTextureInfo@2@MMM@Z (public: static struct ccl::float4 __cdecl ccl::TextureInterpolator<unsigned short>::interp_3d_tricubic(struct ccl::TextureInfo const &,float,float,float)) 2D9 00000000 SECTDF notype () External | ?interp_3d_tricubic@?$TextureInterpolator@M@ccl@@SA?AUfloat4@2@AEBUTextureInfo@2@MMM@Z (public: static struct ccl::float4 __cdecl ccl::TextureInterpolator<float>::interp_3d_tricubic(struct ccl::TextureInfo const &,float,float,float)) 2DE 00000000 SECTE0 notype () External | ?interp_3d_tricubic@?$TextureInterpolator@Uhalf4@ccl@@@ccl@@SA?AUfloat4@2@AEBUTextureInfo@2@MMM@Z (public: static struct ccl::float4 __cdecl ccl::TextureInterpolator<struct ccl::half4>::interp_3d_tricubic(struct ccl::TextureInfo const &,float,float,float)) 2E3 00000000 SECTE1 notype () External | ?interp_3d_tricubic@?$TextureInterpolator@Uuchar4@ccl@@@ccl@@SA?AUfloat4@2@AEBUTextureInfo@2@MMM@Z (public: static struct ccl::float4 __cdecl ccl::TextureInterpolator<struct ccl::uchar4>::interp_3d_tricubic(struct ccl::TextureInfo const &,float,float,float)) 2E8 00000000 SECTE2 notype () External | ?interp_3d_tricubic@?$TextureInterpolator@Uushort4@ccl@@@ccl@@SA?AUfloat4@2@AEBUTextureInfo@2@MMM@Z (public: static struct ccl::float4 __cdecl ccl::TextureInterpolator<struct ccl::ushort4>::interp_3d_tricubic(struct ccl::TextureInfo const &,float,float,float)) 2ED 00000000 SECTE3 notype () External | ?interp_3d_tricubic@?$TextureInterpolator@Ufloat4@ccl@@@ccl@@SA?AUfloat4@2@AEBUTextureInfo@2@MMM@Z (public: static struct ccl::float4 __cdecl ccl::TextureInterpolator<struct ccl::float4>::interp_3d_tricubic(struct ccl::TextureInfo const &,float,float,float))
after:
2CA 00000000 SECTDC notype () Static | ?interp_3d_tricubic@?$TextureInterpolator@Vhalf@ccl@@@?A0x9A03A44B@ccl@@SA?AUfloat4@2@AEBUTextureInfo@2@MMM@Z (public: static struct A0x9A03A44B::float4 __cdecl ccl::`anonymous namespace'::TextureInterpolator<class ccl::half>::interp_3d_tricubic(struct A0x9A03A44B::TextureInfo const &,float,float,float)) 2CF 00000000 SECTDD notype () Static | ?interp_3d_tricubic@?$TextureInterpolator@E@?A0x9A03A44B@ccl@@SA?AUfloat4@2@AEBUTextureInfo@2@MMM@Z (public: static struct A0x9A03A44B::float4 __cdecl ccl::`anonymous namespace'::TextureInterpolator<unsigned char>::interp_3d_tricubic(struct A0x9A03A44B::TextureInfo const &,float,float,float)) 2D4 00000000 SECTDE notype () Static | ?interp_3d_tricubic@?$TextureInterpolator@G@?A0x9A03A44B@ccl@@SA?AUfloat4@2@AEBUTextureInfo@2@MMM@Z (public: static struct A0x9A03A44B::float4 __cdecl ccl::`anonymous namespace'::TextureInterpolator<unsigned short>::interp_3d_tricubic(struct A0x9A03A44B::TextureInfo const &,float,float,float)) 2D9 00000000 SECTDF notype () Static | ?interp_3d_tricubic@?$TextureInterpolator@M@?A0x9A03A44B@ccl@@SA?AUfloat4@2@AEBUTextureInfo@2@MMM@Z (public: static struct A0x9A03A44B::float4 __cdecl ccl::`anonymous namespace'::TextureInterpolator<float>::interp_3d_tricubic(struct A0x9A03A44B::TextureInfo const &,float,float,float)) 2DE 00000000 SECTE0 notype () Static | ?interp_3d_tricubic@?$TextureInterpolator@Uhalf4@ccl@@@?A0x9A03A44B@ccl@@SA?AUfloat4@2@AEBUTextureInfo@2@MMM@Z (public: static struct A0x9A03A44B::float4 __cdecl ccl::`anonymous namespace'::TextureInterpolator<struct ccl::half4>::interp_3d_tricubic(struct A0x9A03A44B::TextureInfo const &,float,float,float)) 2E3 00000000 SECTE1 notype () Static | ?interp_3d_tricubic@?$TextureInterpolator@Uuchar4@ccl@@@?A0x9A03A44B@ccl@@SA?AUfloat4@2@AEBUTextureInfo@2@MMM@Z (public: static struct A0x9A03A44B::float4 __cdecl ccl::`anonymous namespace'::TextureInterpolator<struct ccl::uchar4>::interp_3d_tricubic(struct A0x9A03A44B::TextureInfo const &,float,float,float)) 2E8 00000000 SECTE2 notype () Static | ?interp_3d_tricubic@?$TextureInterpolator@Uushort4@ccl@@@?A0x9A03A44B@ccl@@SA?AUfloat4@2@AEBUTextureInfo@2@MMM@Z (public: static struct A0x9A03A44B::float4 __cdecl ccl::`anonymous namespace'::TextureInterpolator<struct ccl::ushort4>::interp_3d_tricubic(struct A0x9A03A44B::TextureInfo const &,float,float,float)) 2ED 00000000 SECTE3 notype () Static | ?interp_3d_tricubic@?$TextureInterpolator@Ufloat4@ccl@@@?A0x9A03A44B@ccl@@SA?AUfloat4@2@AEBUTextureInfo@2@MMM@Z (public: static struct A0x9A03A44B::float4 __cdecl ccl::`anonymous namespace'::TextureInterpolator<struct ccl::float4>::interp_3d_tricubic(struct A0x9A03A44B::TextureInfo const &,float,float,float))