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

V669. The argument is a non-constant reference. The analyzer is unable to determine the position at which this argument is being modified. It is possible that the function contains an error.


WinMerge

V669 The 'sel1' argument is a non-constant reference. The analyzer is unable to determine the position at which this argument is being modified. It is possible that the function contains an error. dirview.cpp 1322


bool CDirView::OpenOneItem(
  UINT_PTR pos1, DIFFITEM **di1, DIFFITEM **di2,
  String &path1, String &path2, int & sel1, bool & isDir)
{
  ....
  // Variable 'sel1' don't modified.
  ....
}

CryEngine 3 SDK

V669 The 'outThreat' argument is a non-constant reference. The analyzer is unable to determine the position at which this argument is being modified. It is possible that the function contains an error. targettrackthreatmodifier.cpp 48


void CTargetTrackThreatModifier::ModifyTargetThreat(
  IAIObject &ownerAI, IAIObject &targetAI,
  const ITargetTrack &track,
  float &outThreatRatio,
  EAITargetThreat &outThreat) const
{
  if (track.GetTargetType() > AITARGET_SOUND &&
      outThreat >= AITHREAT_AGGRESSIVE)
  {
    outThreatRatio = 1.0f;
  }
}

Similar errors can be found in some other places:

  • V669 The 'chatter', 'actorId' arguments are non-constant references. The analyzer is unable to determine the position at which this argument is being modified. It is possible that the function contains an error. battlechatter.cpp 418

Micro-Manager

V669 The 'offset' argument is a non-constant reference. The analyzer is unable to determine the position at which this argument is being modified. It is possible that the function contains an error. pgFocus.cpp 356


int pgFocus::GetOffset(double& offset)
{
  MM_THREAD_GUARD_LOCK(&mutex);
  deviceInfo_.offset = offset;
  MM_THREAD_GUARD_UNLOCK(&mutex);
  return DEVICE_OK;
}

Strange code. Most likely this is what should be written here: offset = deviceInfo_.offset;


CMaNGOS

V669 The 'uiHealedAmount' argument is a non-constant reference. The analyzer is unable to determine the position at which this argument is being modified. It is possible that the function contains an error. boss_twinemperors.cpp 109


void
HealedBy(Unit* pHealer, uint32& uiHealedAmount) override
{
  if (!m_pInstance)
    return;

  if (Creature* pTwin =
      m_pInstance->GetSingleCreatureFromStorage(
        m_creature->GetEntry() == NPC_VEKLOR ?
                                  NPC_VEKNILASH :
                                  NPC_VEKLOR))
  {
      float fHealPercent = ((float)uiHealedAmount) /
                           ((float)m_creature->GetMaxHealth());

      uint32 uiTwinHeal =
        (uint32)(fHealPercent * ((float)pTwin->GetMaxHealth()));

      uint32 uiTwinHealth = pTwin->GetHealth() + uiTwinHeal;

      pTwin->SetHealth(uiTwinHealth < pTwin->GetMaxHealth() ?
                                      uiTwinHealth :
                                      pTwin->GetMaxHealth());
  }
}


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

Проверено проектов
409
Собрано ошибок
14 072

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

Проверь с помощью
PVS-Studio

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

goto PVS-Studio;
Этот сайт использует куки и другие технологии, чтобы предоставить вам более персонализированный опыт. Продолжая просмотр страниц нашего веб-сайта, вы принимаете условия использования этих файлов. Если вы не хотите, чтобы ваши данные обрабатывались, пожалуйста, покиньте данный сайт. Подробнее →
Принять