Examples of errors detected by the V704 diagnostic.

V704. 'this == 0' comparison should be avoided - this comparison is always false on newer compilers.


Miranda NG

V704 '!this ||!dat' expression should be avoided: 'this' pointer can never be NULL on newer compilers. GG image.cpp 1157


BOOL GGPROTO::img_sendonrequest(gg_event* e)
{
  GGIMAGEDLGDATA *dat =
    gg_img_find(this,
                e->event.image_request.sender,
                e->event.image_request.crc32);
  if (!this || !dat || !isonline())
    return FALSE;
  ....
}

Identical errors can be found in some other places:

  • V704 'this' expression in conditional statements should be avoided - this expression is always true on newer compilers, because 'this' pointer can never be NULL. IRC irclib.cpp 176
  • V704 'this' expression in conditional statements should be avoided - this expression is always true on newer compilers, because 'this' pointer can never be NULL. ICQ icq_avatar.cpp 42
  • V704 'this' expression in conditional statements should be avoided - this expression is always true on newer compilers, because 'this' pointer can never be NULL. ICQ icq_rates.cpp 109
  • And 9 additional diagnostic messages.

.NET CoreCLR

V704 'this == nullptr' expression should be avoided - this expression is always false on newer compilers, because 'this' pointer can never be NULL. ClrJit gentree.cpp 12731


bool FieldSeqNode::IsFirstElemFieldSeq()
{
  if (this == nullptr)
    return false;
  return m_fieldHnd == FieldSeqStore::FirstElemPseudoField;
}

Identical errors can be found in some other places:

  • V704 'this == nullptr' expression should be avoided - this expression is always false on newer compilers, because 'this' pointer can never be NULL. ClrJit gentree.cpp 12738
  • V704 'this == nullptr' expression should be avoided - this expression is always false on newer compilers, because 'this' pointer can never be NULL. ClrJit gentree.cpp 12745
  • V704 'this == 0' expression should be avoided - this expression is always false on newer compilers, because 'this' pointer can never be NULL. bcltype sstring.inl 650
  • And 15 additional diagnostic messages.

Serious Engine 1 v.1.10

V704 'this != 0' expression should be avoided - this expression is always true on newer compilers, because 'this' pointer can never be NULL. entity.h 697


inline void CEntity::AddReference(void) {
  if (this!=NULL) { // <=
    ASSERT(en_ctReferences>=0);
    en_ctReferences++;
  }
};

Inkscape

V704 '!this' expression in conditional statements should be avoided - this expression is always false on newer compilers, because 'this' pointer can never be NULL. sp-lpe-item.cpp 213


bool SPLPEItem::performPathEffect(....) {
  if (!this) {
    return false;
  }
  ....
}

Identical errors can be found in some other places:

  • V704 'this' expression in conditional statements should be avoided - this expression is always true on newer compilers, because 'this' pointer can never be NULL. sp-paint-server.cpp 42

CMaNGOS

V704 '!this ||!pVictim' expression should be avoided: 'this' pointer can never be NULL on newer compilers. Unit.cpp 1417


void Unit::CalculateSpellDamage(....)
{
  ....
  if (!this || !pVictim)
    return;
  ....
}

Identical errors can be found in some other places:

  • V704 '!this ||!pVictim' expression should be avoided: 'this' pointer can never be NULL on newer compilers. Unit.cpp 1476
  • V704 '!this ||!pVictim' expression should be avoided: 'this' pointer can never be NULL on newer compilers. Unit.cpp 1511
  • V704 '!this ||!pVictim' expression should be avoided: 'this' pointer can never be NULL on newer compilers. Unit.cpp 1797


Do you make errors in the code?

Check your code
with PVS-Studio

Static code analysis
for C, C++ and C#

goto PVS-Studio;