Хотите поржать?
BOOL ShaderElement::equal(ShaderElement* S)
{
if (nullptr == S && nullptr == this)
return TRUE;
if (nullptr == S || nullptr == this)
return FALSE;
return equal(*S);
}
gcc само собой выкидывает бессмысленные проверки, valgrind показывает что чуть позже происходит повреждение памяти. А на винде этот код работает!!! Так что это тупо защита от быдлокода, который вызывает потерю контекста.