Pour obtenir une clé
d'essai remplissez le formulaire ci-dessous
Demandez des tariffs
Nouvelle licence
Renouvellement de licence
--Sélectionnez la devise--
USD
EUR
RUB
* En cliquant sur ce bouton, vous acceptez notre politique de confidentialité

Free PVS-Studio license for Microsoft MVP specialists
To get the licence for your open-source project, please fill out this form
** En cliquant sur ce bouton, vous acceptez notre politique de confidentialité.

I am interested to try it on the platforms:
** En cliquant sur ce bouton, vous acceptez notre politique de confidentialité.

Message submitted.

Your message has been sent. We will email you at


If you haven't received our response, please do the following:
check your Spam/Junk folder and click the "Not Spam" button for our message.
This way, you won't miss messages from our team in the future.

>
>
>
Examples of errors detected by the V669…

Examples of errors detected by the V669 diagnostic

V669. Argument is a non-constant reference. The analyzer is unable to determine the position where this argument is modified. Consider checking the function for 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());
  }
}

Unicorn with delicious cookie
Nous utilisons des cookies pour améliorer votre expérience de navigation. En savoir plus
Accepter