Примеры ошибок, обнаруженных с помощью диагностики V542

V542. Consider inspecting an odd type cast: 'Type1' to ' Type2'.

Miranda IM

V542 Consider inspecting an odd type cast: 'char *' to 'char'. clist_modern modern_toolbar.cpp 586

static void
sttRegisterToolBarButton(..., char * pszButtonName, ...)
  if ((BYTE)pszButtonName)

This code is suspicious. In fact, we check that the string address is multiple of 256. But what the programmer actually wanted to write in the condition is a mystery. I'm not sure that this is exactly an error. There are similar games with pointers - that is, something else is stored in pointers. This code should be cited simply as an example of a suspicious code fragment that needs checking.


V542 Consider inspecting an odd type cast: 'bool' to 'char *'. PltCtrlPoint.cpp:1617

NPT_Result PLT_CtrlPoint::ProcessSubscribeResponse(...)
  bool subscription = (request.GetMethod().ToUppercase() == "SUBSCRIBE");
  NPT_String prefix = NPT_String::Format("
    PLT_CtrlPoint::ProcessSubscribeResponse %ubscribe for
    service \"%s\" (result = %d, status code = %d)",
    (const char*)subscription?"S":"Uns",   // <=
    (const char*)service->GetServiceID(),

Найденные ошибки

Проверено проектов
Собрано ошибок
13 764

А ты совершаешь ошибки в коде?

Проверь с помощью

Статический анализ
кода для C, C++, C#
и Java

goto PVS-Studio;