Our website uses cookies to enhance your browsing experience.
Accept
to the top
close form

Fill out the form in 2 simple steps below:

Your contact information:

Step 1
Congratulations! This is your promo code!

Desired license type:

Step 2
Team license
Enterprise license
** By clicking this button you agree to our Privacy Policy statement
close form
Request our prices
New License
License Renewal
--Select currency--
USD
EUR
* By clicking this button you agree to our Privacy Policy statement

close form
Free PVS‑Studio license for Microsoft MVP specialists
* By clicking this button you agree to our Privacy Policy statement

close form
To get the licence for your open-source project, please fill out this form
* By clicking this button you agree to our Privacy Policy statement

close form
I am interested to try it on the platforms:
* By clicking this button you agree to our Privacy Policy statement

close form
check circle
Message submitted.

Your message has been sent. We will email you at


If you do not see the email in your inbox, please check if it is filtered to one of the following folders:

  • Promotion
  • Updates
  • Spam

Webinar: Evaluation - 05.12

>
>
>
Examples of errors detected by the V530…

Examples of errors detected by the V530 diagnostic

V530. Return value of 'Foo' function is required to be used.


TortoiseSVN

V530 The return value of function 'empty' is required to be utilized. contextmenu.cpp 434


STDMETHODIMP CShellExt::Initialize(....)
{
  ....
  ignoredprops.empty();
  for (int p=0; p<props.GetCount(); ++p)
  {
    if (props.GetItemName(p).
          compare(SVN_PROP_IGNORE)==0)
    {
      std::string st = props.GetItemValue(p);
      ignoredprops = UTF8ToWide(st.c_str());
      // remove all escape chars ('\\')
      std::remove(ignoredprops.begin(),
                  ignoredprops.end(), '\\');
      break;
    }
  }
  ....
}

The std::remove function does not remove elements from the container. It only shifts the elements and brings the iterator back to the beginning of the trash. Suppose we have the vector<int> container that contains elements 1,2,3,1,2,3,1,2,3. If we execute the code "remove( v.begin(), v.end(), 2 )", the container will contain elements 1,3,1,3,?,?,?, where ? is some trash. The function will bring the iterator back to the first senseless element, so if we want to remove these trash elements, we must write the code this way: "v.erase(remove(v.begin(), v.end(), 2), v.end())".

Similar errors can be found in some other places:

  • V530 The return value of function 'remove' is required to be utilized. contextmenu.cpp 442

TortoiseSVN

V530 The return value of function 'empty' is required to be utilized. mailmsg.cpp 40


CMailMsg& CMailMsg::SetFrom(string sAddress,
                            string sName)
{
   if (initIfNeeded())
   {
      // only one sender allowed
      if (m_from.size())
         m_from.empty();
      m_from.push_back(TStrStrPair(sAddress,sName));
   }
   return *this;
}

This is what should have been written here: m_from.clear();


TortoiseSVN

V530 The return value of function 'empty' is required to be utilized. mailmsg.cpp 54


CMailMsg& CMailMsg::SetTo(string sAddress,
                          string sName)
{
   if (initIfNeeded())
   {
      // only one recipient allowed
      if (m_to.size())
         m_to.empty();

      m_to.push_back(TStrStrPair(sAddress,sName));
   }
   return *this;
}

This is what should have been written here: m_to.clear();


WinMerge

V530 The return value of function 'empty' is required to be utilized. diractions.cpp 1312


/**
* @brief Get the file names on both sides for specified item.
* @note Return empty strings if item is special item.
*/
void CDirView::GetItemFileNames(int sel,
  String& strLeft, String& strRight) const
{
  UINT_PTR diffpos = GetItemKey(sel);
  if (diffpos == (UINT_PTR)SPECIAL_ITEM_POS)
  {
    strLeft.empty();
    strRight.empty();
  }
  else
  {
     ....
  }
}

This is what should have been written here: strLeft.clear(); strRight.clear();


WinMerge

V530 The return value of function 'empty' is required to be utilized. varprop.cpp 133


/**
* @brief Clear variant's value (reset to defaults).
*/
void VariantValue::Clear()
{
  m_vtype = VT_NULL;
  m_bvalue = false;
  m_ivalue = 0;
  m_fvalue = 0;
  m_svalue.empty();
  m_tvalue = 0;
}

This is what should have been written here: m_svalue.clear();


EchoVNC

V530 The return value of function 'empty' is required to be utilized. miniWinVNC parsecmdline.cpp 367


bool CParseCmdLine::CheckParameter(..., std::string& rStrForSave)
{
  ....
  rStrForSave.empty();
  ....
}

This is what should have been written here: rStrForSave.clear();


EchoVNC

V530 The return value of function 'empty' is required to be utilized. AskParameter wndproc.cpp 163


struct ST_DATA
{
  ....
  std::string m_szImagePath;
  ....
};

void Install_and_Run_MainFiles(const char* szPath)
{
  ....
  if (!WriteTmpBanner(ser, szPath))
  {
    ser.m_data.m_szImagePath.empty();
  }
  ....
}

This is what should have been written here: ser.m_data.m_szImagePath.clear();


IPP Samples

V530 The return value of function 'remove' is required to be utilized. h264_dec umc_h264_thread.cpp 226


void H264ThreadGroup::RemoveThread(H264Thread * thread)
{
    AutomaticUMCMutex guard(m_mGuard);
    std::remove(m_threads.begin(), m_threads.end(), thread);
}

The std::remove function does not remove elements from the container. It only shifts the elements and brings the iterator back to the beginning of the trash. Suppose we have the vector<int> container that contains elements 1,2,3,1,2,3,1,2,3. If we execute the code "remove( v.begin(), v.end(), 2 )", the container will contain elements 1,3,1,3,?,?,?, where ? is some trash. The function will bring the iterator back to the first senseless element, so if we want to remove these trash elements, we must write the code this way: "v.erase(remove(v.begin(), v.end(), 2), v.end())".


Nmap Security Scanner

V530 The return value of function 'empty' is required to be utilized. nping nepcontext.cc 562


/** Deletes all previous field specifiers.
  * This should be used when dealing
  * with clients that send multiple NEP_PACKET_SPEC messages,
  * so only the last PacketSpec is taken into account. */
int NEPContext::resetClientFieldSpecs(){
  this->fspecs.empty();
  return OP_SUCCESS;
} /* End of resetClientFieldSpecs() */

What a nice comment. It's a pity that the code does quite a different thing. This is what should have been written here: this->fspecs.clear();


Chromium

V530 The return value of function 'empty' is required to be utilized. chrome_frame_ie protocol_sink_wrap.cc 399


std::wstring url_;

HRESULT ProtData::ReportProgress(IInternetProtocolSink* delegate,
                                 ULONG status_code,
                                 LPCWSTR status_text)
{
  ....
  case BINDSTATUS_REDIRECTING:
    url_.empty();
    if (status_text)
      url_ = status_text;
    break;
  ....
}

This is what should have been written here: url_.clear();


Chromium

V530 The return value of function 'empty' is required to be utilized. chrome_frame_npapi np_proxy_service.cc 293


bool NpProxyService::GetProxyValueJSONString(std::string* output)
{
  DCHECK(output);
  output->empty();
  ....
}

This is what should have been written here: output->clear();


Intel AMT SDK

V530 The return value of function 'empty' is required to be utilized. AMTredirection mcsol.cpp 443


bool MCSOL::_createHTLink()
{
  ....
  string HTcmd = TERM_CMD;
  ....
  HTcmd.empty();
  ....
}

This is what should have been written here: HTcmd.clear();


Intel AMT SDK

V530 The return value of function 'empty' is required to be utilized. EventLogReader cimclass.h 153


void CimClassContainer::Clear()
{
  for(unsigned int i = 0; i < vec.size(); i++)
  {
    delete vec[i];
    vec[i] = NULL;
  }
  vec.empty();
}

This is what should have been written here: vec.clear();


ReactOS

V530 The return value of function 'wcscmp' is required to be utilized. msdmo dmoreg.c 617


  if (ERROR_SUCCESS == hres)
  {
    Names[count] = HeapAlloc(GetProcessHeap(), 0,
                             strlenW(szValue) + 1);
    if (Names[count])
       strcmpW(Names[count], szValue);
  }

It's strange that the result of calling the strcmpW() function is not used in any way.


Battle for Wesnoth

V530 The return value of function 'back' is required to be utilized. wesnoth menu_events.cpp 91


gui::dialog_button_action::RESULT
delete_recall_unit::button_pressed(int menu_selection)
{
  const std::vector<std::pair<int, int> >& param =
    std::vector<std::pair<int, int> >();
  param.back();
  const size_t index = size_t(filter_.get_index(menu_selection));
  ....
}

It's strange that the result of calling the param.back() function is not used in any way.


wxWidgets

V530 The return value of function 'empty' is required to be utilized. base translation.cpp 989


bool wxMsgCatalogFile::LoadData(....)
{
  ....
  wxString m_charset;
  ....
  if ( m_charset == wxS("CHARSET") )
  {
    m_charset.empty();
  }
  ....
}

This is what should have been written here: m_charset.clear();


wxWidgets

V530 The return value of function 'empty' is required to be utilized. base registry.cpp 329


wxString m_strKey;

void wxRegKey::SetHkey(WXHKEY hKey)
{
  ....

  // reset old data
  m_strKey.empty();
  m_dwLastError = 0;
}

This is what should have been written here: m_strKey.clear();


Visualization Toolkit (VTK)

V530 The return value of function 'empty' is required to be utilized. vtkRendering vtklabelhierarchy.cxx 425


std::vector<int> Path;

void vtkLabelHierarchyFrustumIterator::Next()
{
  ....
  this->Path.empty();
  ....
}

This is what should have been written here: this->Path.clear();


MongoDB

V530 The return value of function 'remove' is required to be utilized. cmdline.cpp 106


void CmdLine::parseConfigFile( istream &f, stringstream &ss ) {
  ....
  f.getline(line, MAX_LINE_LENGTH);
  s = line;
  std::remove(s.begin(), s.end(), ' ');
  std::remove(s.begin(), s.end(), '\t');
  boost::to_upper(s);
  ....
}

The std::remove function does not remove elements from the container. It only shifts the elements and brings the iterator back to the beginning of the trash. Suppose we have the vector<int> container that contains elements 1,2,3,1,2,3,1,2,3. If we execute the code "remove( v.begin(), v.end(), 2 )", the container will contain elements 1,3,1,3,?,?,?, where ? is some trash. The function will bring the iterator back to the first senseless element, so if we want to remove these trash elements, we must write the code this way: "v.erase(remove(v.begin(), v.end(), 2), v.end())".

Similar errors can be found in some other places:

  • V530 The return value of function 'remove' is required to be utilized. cmdline.cpp 107

ReactOS

V530 The return value of function 'wcscmp' is required to be utilized. dmoreg.c 621


#define strcmpW(s1,s2) wcscmp((s1),(s2))

static HRESULT WINAPI IEnumDMO_fnNext(....)
{
  ....
  if (Names[count])
    strcmpW(Names[count], szValue);
  ....
}

Chromium

V530 The return value of function 'remove_if' is required to be utilized. shortcuts_provider.cc 136


void ShortcutsProvider::DeleteMatchesWithURLs(
  const std::set<GURL>& urls)
{
  std::remove_if(matches_.begin(),
                 matches_.end(),
                 RemoveMatchPredicate(urls));
  listener_->OnProviderUpdate(true);
}

Multi Theft Auto

V530 The return value of function 'empty' is required to be utilized. cperfstat.functiontiming.cpp 197


std::map < SString, SFunctionTimingInfo > m_TimingMap;

void CPerfStatFunctionTimingImpl::DoPulse ( void )
{
  ....
  // Do nothing if not active
  if ( !m_bIsActive )
  {
    m_TimingMap.empty ();
    return;
  }
  ....
}

Multi Theft Auto

V530 The return value of function 'empty' is required to be utilized. cclientcolsphere.cpp 34


void CreateSphereFaces (
  std::vector < SFace >& faceList, int iIterations )
{
  int numFaces = (int)( pow ( 4.0, iIterations ) * 8 );
  faceList.empty ();
  faceList.reserve ( numFaces );
  ....
}

Similar errors can be found in some other places:

  • V530 The return value of function 'empty' is required to be utilized. cresource.cpp 132
  • V530 The return value of function 'empty' is required to be utilized. cresource.cpp 139
  • V530 The return value of function 'empty' is required to be utilized. cresource.cpp 147

Trans-Proteomic Pipeline

V530 The return value of function 'empty' is required to be utilized. tag.cxx 72


static void clearTagNames() {
   std::vector<const char *>ptrs;
   for (tagname_set::iterator i = tagnames.begin();
        i!=tagnames.end();i++) {
      ptrs.push_back(*i);
   }
   for (tagname_set::iterator j = attrnames.begin();
        j!=attrnames.end();j++) {
      ptrs.push_back(*j);
   }
   tagnames.empty();
   attrnames.empty();
   for (size_t n=ptrs.size();n--;) {
      delete [] (char *)(ptrs[n]); // cast away const
   }
}

Similar errors can be found in some other places:

  • V530 The return value of function 'empty' is required to be utilized. tag.cxx 73

QuantLib

V530 The return value of function 'empty' is required to be utilized. commoditycurve.cpp 70


void CommodityCurve::setPrices(std::map<Date, Real>& prices) {
  QL_REQUIRE(prices.size()>1, "too few prices");

  dates_.empty();
  data_.empty();

  for (std::map<Date, Real>::const_iterator i = prices.begin();
       i != prices.end(); i++)
  {
    dates_.push_back(i->first);
    data_.push_back(i->second);
  }
  ....
}

This is what should have been written here: dates_.clear(); data_.clear();

Similar errors can be found in some other places:

  • V530 The return value of function 'empty' is required to be utilized. commoditycurve.cpp 71

QuantLib

V530 The return value of function 'empty' is required to be utilized. energycommodity.cpp 152


void EnergyCommodity::calculateSecondaryCostAmounts(
  const CommodityType& commodityType,
  Real totalQuantityValue,
  const Date& evaluationDate) const
{
  secondaryCostAmounts_.empty();
  ....
}

QuantLib

V530 The return value of function 'remove' is required to be utilized. recursivecdoengine.hpp 172


template <class CDOEngine, class copulaT>
void RecursiveCdoEngine<CDOEngine, copulaT>::initialize() const {
  ....
  std::remove(lgds.begin(), lgds.end(), 0.);
  ....
}

The std::remove function does not remove elements from the container. It only shifts the elements and brings the iterator back to the beginning of the trash. Suppose we have the vector<int> container that contains elements 1,2,3,1,2,3,1,2,3. If we execute the code "remove( v.begin(), v.end(), 2 )", the container will contain elements 1,3,1,3,?,?,?, where ? is some trash. The function will bring the iterator back to the first senseless element, so if we want to remove these trash elements, we must write the code this way: "lgds.erase(std::remove(lgds.begin(), lgds.end(), 0.), lgds.end());".


Firebird

V530 The return value of function 'fgetpos' is required to be utilized. inputdevices.cpp 118


void InputDevices::indev::getPos(fpos_t* out) const
{
  fb_assert(out);
  fb_assert(indev_fpointer);
  fgetpos(indev_fpointer, out);
}

Synergy

V530 The return value of function 'empty' is required to be utilized. cipcserver.cpp 69


typedef std::list<CIpcClientProxy*> CClientList;
CClientList      m_clients;

CIpcServer::~CIpcServer()
{
  ....
  m_clients.empty();
  ....
}

Micro-Manager

V530 The return value of function 'c_str' is required to be utilized. ZeissCAN.cpp 1553


int HalogenLamp::SetIntensity(long intensity)
{
  ....
  command_stream.str().c_str();
  ....
}

Similar errors can be found in some other places:

  • V530 The return value of function 'c_str' is required to be utilized. ZeissCAN.cpp 2800

Unreal Engine 4

V530 The return value of function 'Memcmp' is required to be utilized. d3d11statecacheprivate.h 547


D3D11_STATE_CACHE_INLINE void GetBlendState(
  ID3D11BlendState** BlendState, float BlendFactor[4],
  uint32* SampleMask)
{
  ....
  FMemory::Memcmp(BlendFactor, CurrentBlendFactor,
                  sizeof(CurrentBlendFactor));
  ....
}

This is what should have been written here: FMemory::Memcpy


Qt

V530 The return value of function 'toLower' is required to be utilized. main.cpp 72


int main(int argc, char **argv)
{
  ....
  QByteArray arg(argv[a]);
  ....
  arg = arg.mid(1);
  arg.toLower();
  if (arg == "o")
  ....
}

Similar errors can be found in some other places:

  • V530 The return value of function 'toLower' is required to be utilized. main.cpp 1522

ITK

V530 The return value of function 'empty' is required to be utilized. itkpatchbaseddenoisingimagefilter.hxx 85


template <typename TInputImage, typename TOutputImage>
void
PatchBasedDenoisingImageFilter<TInputImage, TOutputImage>
::EmptyCaches()
{
  for (unsigned int threadId = 0;
       threadId < m_ThreadData.size(); ++threadId)
    {
    SizeValueType cacheSize = ....;
    for (SizeValueType c = 0; c < cacheSize; ++c)
      {
      delete m_ThreadData[threadId].eigenValsCache[c];
      delete m_ThreadData[threadId].eigenVecsCache[c];
      }
    m_ThreadData[threadId].eigenValsCache.empty();
    m_ThreadData[threadId].eigenVecsCache.empty();
    }
}

Similar errors can be found in some other places:

  • V530 The return value of function 'empty' is required to be utilized. itkpatchbaseddenoisingimagefilter.hxx 86

ITK

V530 The return value of function 'remove' is required to be utilized. itkge5imageio.cxx 297


GEImageHeader *
GE5ImageIO::ReadHeader(const char  *FileNameToRead)
{
  ....
  std::string tmpId(buffer+VOff(84,88), 13);
  std::remove(tmpId.begin(), tmpId.end(), '-');
  ....
}

ITK

V530 The return value of function 'empty' is required to be utilized. itkvideofilewriter.hxx 334


std::vector<SizeValueType>   m_Dimensions;

template< typename TInputVideoStream >
bool
VideoFileWriter< TInputVideoStream >
::InitializeOutputParameters()
{
  ....
  m_Dimensions.empty();
  ....
}

Spring Engine

V530 The return value of function 'size' is required to be utilized. assimp b3dimporter.cpp 536


void B3DImporter::ReadBB3D( aiScene *scene ){
  _textures.clear();
  _materials.size();     // <=
  _vertices.clear();
  _meshes.clear();
  ....
}

Doxygen

V530 The return value of function 'toupper' is required to be utilized. classdef.cpp 1963


int toupper (int __c);

void ClassDef::writeDocumentationContents(....)
{
  QCString pageType = " ";
  pageType += compoundTypeString();
  toupper(pageType.at(1));
  ....
}

FreeSWITCH

V530 The return value of function 'LoadLibraryExA' is required to be utilized. switch_dso.c 42


SWITCH_DECLARE(switch_dso_lib_t) switch_dso_open(....)
{
  HINSTANCE lib;

  lib = LoadLibraryEx(path, NULL, 0);

  if (!lib) {
    LoadLibraryEx(path, NULL, LOAD_WITH_ALTERED_SEARCH_PATH);
  }

  if (!lib) {
    DWORD error = GetLastError();
    *err = switch_mprintf("dll open error [%ul]\n", error);
  }

  return lib;
}

Mozilla Thunderbird

V530 The return value of function 'getenv' is required to be utilized. nswindowswmain.cpp 134


int wmain(int argc, WCHAR **argv)
{
  ....
  // Force creation of the multibyte _environ variable.
  getenv("PATH");
  int result = main(argc, argvConverted, _environ);
  ....
}

Wine Is Not an Emulator

V530 The return value of function 'DSCF_AddRef' is required to be utilized. dsound_main.c 760


static ULONG WINAPI DSCF_AddRef(LPCLASSFACTORY iface)
{
    return 2;
}

HRESULT WINAPI DllGetClassObject(....)
{
  ....
  while (NULL != DSOUND_CF[i].rclsid) {
    if (IsEqualGUID(rclsid, DSOUND_CF[i].rclsid)) {
      DSCF_AddRef(&DSOUND_CF[i].IClassFactory_iface);  // <=
      *ppv = &DSOUND_CF[i];
      return S_OK;
    }
    i++;
  }
  ....
}

Computational Network Toolkit

V530 The return value of function 'empty' is required to be utilized. utterancesourcemulti.h 340


template <class UTTREF>
std::vector<shiftedvector<....>>getclassids(const UTTREF &uttref)
{
  std::vector<shiftedvector<....>> allclassids;
  allclassids.empty();  // <=
  ....
}

Similar errors can be found in some other places:

  • V530 The return value of function 'empty' is required to be utilized. utterancesourcemulti.h 364

OpenToonz

V530 The return value of function 'toUpper' is required to be utilized. sceneviewerevents.cpp 847


void SceneViewer::keyPressEvent(QKeyEvent *event)
{
  ....
  QString text = event->text();
  if ((event->modifiers() & Qt::ShiftModifier))
    text.toUpper();
  ....
}

Similar errors can be found in some other places:

  • V530 The return value of function 'left' is required to be utilized. tfarmserver.cpp 569
  • V530 The return value of function 'ftell' is required to be utilized. tiio_bmp.cpp 804
  • V530 The return value of function 'accumulate' is required to be utilized. bendertool.cpp 374

ReactOS

V530 The return value of function 'GetWindow' is required to be utilized. oleobject.c 113


#define IOleInPlaceSite_GetWindow(This,phwnd)\
    ( (This)->lpVtbl -> GetWindow(This,phwnd) )

static void create_shell_embedding_hwnd(WebBrowser *This)
{
  HWND parent = NULL;
  ....
  if(SUCCEEDED(hres)) {
      IOleInPlaceSite_GetWindow(inplace, &parent); // <=
      IOleInPlaceSite_Release(inplace);
  }
  ....
}

Similar errors can be found in some other places:

  • V530 The return value of function 'GetWindow' is required to be utilized. oleobject.c 185

Open X-Ray Engine

V530 The return value of function 'empty' is required to be utilized. actor_network.cpp 657


BOOL CActor::net_Spawn(CSE_Abstract* DC)
{
  ....
  m_States.empty();
  ....
}

Similar errors can be found in some other places:

  • V530 The return value of function 'unique' is required to be utilized. uidragdroplistex.cpp 780

Casablanca

V530 The return value of function 'release' is required to be utilized. cpprestsdk140 http_server_api.cpp 64


std::unique_ptr<http_server>
  http_server_api::s_server_api((http_server*)nullptr);

void http_server_api::unregister_server_api()
{
  pplx::extensibility::scoped_critical_section_t lock(s_lock);

  if (http_server_api::has_listener())
  {
    throw http_exception(_XPLATSTR("Server API ..... attached"));
  }

  s_server_api.release();
}

CodeLite

V530 The return value of function 'empty' is required to be utilized. tokenizer.cpp 56


StringTokenizer::StringTokenizer(const wxString& str,
                const wxString& strDelimiter,
                const bool &bAllowEmptyTokens /* false */)
{
  ....
  wxString token;
  while( nEnd != -1 )
  {
    if( nEnd != nStart)
      token = str.substr(nStart, nEnd-nStart);
    else
      token.empty();                                       // <=

    if(!token.empty())
      m_tokensArr.push_back(token);
    ....
  }
}

LLVM/Clang

V530 The return value of function 'release' is required to be utilized. VerifyDiagnosticConsumer.cpp 46


std::unique_ptr<DiagnosticConsumer> takeClient()
  { return std::move(Owner); }

VerifyDiagnosticConsumer::~VerifyDiagnosticConsumer() {
  ....
  SrcManager = nullptr;
  CheckDiagnostics();
  Diags.takeClient().release();
}

CryEngine V

V530 The return value of function 'release' is required to be utilized. ClipVolumes.cpp 492


vector<unique_ptr<CFullscreenPass>> m_jitteredDepthPassArray;

void CClipVolumesStage::PrepareVolumetricFog()
{
  ....
  for (int32 i = 0; i < m_jitteredDepthPassArray.size(); ++i)
  {
    m_jitteredDepthPassArray[i].release();
  }

  m_jitteredDepthPassArray.resize(depth);

  for (int32 i = 0; i < depth; ++i)
  {
    m_jitteredDepthPassArray[i] = CryMakeUnique<....>();
    m_jitteredDepthPassArray[i]->SetViewport(viewport);
    m_jitteredDepthPassArray[i]->SetFlags(....);
  }
  ....
}

Scilab

V530 The return value of function 'back' is required to be utilized. sci_mscanf.cpp 274


types::Function::ReturnValue sci_mscanf(....)
{
  ....
  std::vector<types::InternalType*> pITTemp = std::vector<...>();
  ....
  case types::InternalType::ScilabString :
  {
    ....
    pITTemp.pop_back();       // <=
    pITTemp.push_back(pType);
  }
  break;
  case types::InternalType::ScilabDouble :
  {
    ....
    pITTemp.back();           // <= ???
    pITTemp.push_back(pType);
  }
  break;
  ....
}

Audacity

V530 The return value of function 'remove' is required to be utilized. OverlayPanel.cpp 31


bool OverlayPanel::RemoveOverlay(Overlay *pOverlay)
{
  const size_t oldSize = mOverlays.size();
  std::remove(mOverlays.begin(), mOverlays.end(), pOverlay);
  return oldSize != mOverlays.size();
}

Audacity

V530 The return value of function 'Left' is required to be utilized. ASlider.cpp 973


wxString LWSlider::GetTip(float value) const
{
  wxString label;

  if (mTipTemplate.IsEmpty())
  {
    wxString val;

    switch(mStyle)
    {
    case FRAC_SLIDER:
      val.Printf(wxT("%.2f"), value);
      break;

    case DB_SLIDER:
      val.Printf(wxT("%+.1f dB"), value);
      if (val.Right(1) == wxT("0"))
      {
        val.Left(val.Length() - 2);        // <=
      }
      break;
  ....
}

wxString Left (size_t count) const


Ardour

V530 The return value of function 'unique' is required to be utilized. audio_library.cc 162


void
AudioLibrary::search_members_and (vector<string>& members,
const vector<string>& tags)
{
  ....
  sort(members.begin(), members.end());
  unique(members.begin(), members.end());
  ....
}

sort(members.begin(), members.end()); auto last = unique(members.begin(), members.end()); v.erase(last, members.end());


Chromium

V530 CWE-252 The return value of function 'remove_if' is required to be utilized. pdf_to_emf_converter.cc 44


void OnConvertedClientDisconnected() {
  // We have no direct way of tracking which
  // PdfToEmfConverterClientPtr got disconnected as it is a
  // movable type, short of using a wrapper.
  // Just traverse the list of clients and remove the ones
  // that are not bound.

  std::remove_if(
    g_converter_clients.Get().begin(),
    g_converter_clients.Get().end(),
    [](const mojom::PdfToEmfConverterClientPtr& client) {
      return !client.is_bound();
    });
}

A function remove_if deletes nothing, but only rearranges the elements in a container.


Android

V530 CWE-252 The return value of function 'bswap32' is required to be utilized. ELFAttribute.cpp 84


inline uint32_t bswap32(uint32_t pData) {
  return
    (((pData & 0xFF000000) >> 24) | ((pData & 0x00FF0000) >> 8) |
     ((pData & 0x0000FF00) << 8) | ((pData & 0x000000FF) << 24));
}

bool ELFAttribute::merge(....) {
  ....
  uint32_t subsection_length =
    *reinterpret_cast<const uint32_t*>(subsection_data);

  if (llvm::sys::IsLittleEndianHost !=
      m_Config.targets().isLittleEndian())
    bswap32(subsection_length);               // <=
  ....
}

Similar errors can be found in some other places:

  • V530 CWE-252 The return value of function 'bswap32' is required to be utilized. ELFAttribute.cpp 218
  • V530 CWE-252 The return value of function 'bswap32' is required to be utilized. ELFAttribute.cpp 346
  • V530 CWE-252 The return value of function 'bswap32' is required to be utilized. ELFAttribute.cpp 352

ANGLE

V530 CWE-252 The return value of function 'release' is required to be utilized. error.inl 52


class Error final
{
  ....
  mutable std::unique_ptr<std::string> mMessage;
};

Error &Error::operator=(const Error &other)
{
  mCode = other.mCode;
  mID = other.mID;

  if (other.mMessage)
  {
    createMessageString();
    *mMessage = *(other.mMessage);
  }
  else
  {
    mMessage.release();
  }

  return *this;
}

Similar errors can be found in some other places:

  • V530 CWE-252 The return value of function 'release' is required to be utilized. error.inl 126

Qt

V530 CWE-252 The return value of function 'InitializeAcl' is required to be utilized. qlocalserver_win.cpp 144


bool QLocalServerPrivate::addListener()
{
  ....
  InitializeAcl(acl, aclSize, ACL_REVISION_DS);
  ....
}

Qt

V530 CWE-252 The return value of function 'SetSecurityDescriptorOwner' is required to be utilized. qlocalserver_win.cpp 167


bool QLocalServerPrivate::addListener()
{
  ....
  SetSecurityDescriptorOwner(pSD.data(), pTokenUser->User.Sid, FALSE);
  SetSecurityDescriptorGroup(pSD.data(), pTokenGroup->PrimaryGroup, FALSE);
  ....
}

Similar errors can be found in some other places:

  • V530 CWE-252 The return value of function 'SetSecurityDescriptorGroup' is required to be utilized. qlocalserver_win.cpp 168

LibreOffice

V530 The return value of function 'SysAllocString' is required to be utilized. maccessible.cxx 1077


STDMETHODIMP CMAccessible::put_accValue(....)
{
  ....
  if(varChild.lVal==CHILDID_SELF)
  {
    SysAllocString(m_pszValue);
    m_pszValue=SysAllocString(szValue);
    return S_OK;
  }
  ....
}

Haiku Operation System

V530 The return value of function 'begin' is required to be utilized. IMAPFolder.cpp 414


void
IMAPFolder::RegisterPendingBodies(...., const BMessenger* replyTo)
{
  ....
  IMAP::MessageUIDList::const_iterator iterator = uids.begin();
  for (; iterator != uids.end(); iterator++) {
    if (replyTo != NULL)
      fPendingBodies[*iterator].push_back(*replyTo);
    else
      fPendingBodies[*iterator].begin();   // <=
  }
}

Blender

V530 The return value of function 'clamp' is required to be utilized. BLI_math_vector.hh 88


template <typename T, int Size>
inline vec_base<T, Size>
  clamp(const vec_base<T, Size> &a, const T &min, const T &max)
{
  vec_base<T, Size> result = a;
  for (int i = 0; i < Size; i++) {
    std::clamp(result[i], min, max);
  }
  return result;
}

Ogre3D

V530 The return value of function 'back' is required to be utilized. OgreGLXConfigDialog.cpp 410


class GLXConfigurator
{
public:
  // ....
  std::list<ConfigCallbackData> mConfigCallbackData
  // ....
}
void GLXConfigurator::SetRenderer(RenderSystem *r)

  // ....
  mConfigCallbackData.back();
  // ....
}

Here, for some reason, we call the back function of the std::list container to get a reference to the last element. However, we do not use or save this reference.


LLVM/Clang

V530 The return value of function 'getRangeRef' is required to be utilized. ScalarEvolution.cpp:6587


ScalarEvolution::getRangeRefIter(const SCEV *S,
                                 ScalarEvolution::RangeSignHint SignHint)
{
  ....
  for (const SCEV *P : reverse(drop_begin(WorkList))) {
    getRangeRef(P, SignHint);
    ....
  }
  ....
}