Examples of errors detected by the V584 diagnostic

V584. The same value is present on both sides of the operator. The expression is incorrect or it can be simplified.


Far Manager

V584 The 'FADC_ALLDISKS' value is present on both sides of the '==' operator. The expression is incorrect or it can be simplified. far findfile.cpp 3317


enum FINDASKDLGCOMBO
{
  FADC_ALLDISKS,
  ...
};

FindFiles::FindFiles()
{
  ...
  if (FADC_ALLDISKS+SearchMode==FADC_ALLDISKS ||
      FADC_ALLDISKS+SearchMode==FADC_ALLBUTNET)
  ...
}

A strange expression FADC_ALLDISKS+SearchMode==FADC_ALLDISKS can be simplified to SearchMode == 0.


Asterisk

V584 The '1' value is present on both sides of the '==' operator. The expression is incorrect or it can be simplified. chan_unistim.c 1095


static void check_send_queue(struct unistimsession *pte)
{
  if (pte->last_buf_available == 1) {
    ....
  }
  else if (pte->last_seq_ack + 1 == pte->seq_server + 1) {  // <=
    ....
  }
}

Ruby MRI

V584 The 'ptr' value is present on both sides of the '==' operator. The expression is incorrect or it can be simplified. string.c 7211


static VALUE
rb_str_split_m(int argc, VALUE *argv, VALUE str)
{
  ....
  char *ptr = RSTRING_PTR(str);
  long len = RSTRING_LEN(str);
  long start = beg;
  ....
  if (ptr+start == ptr+len)
    start++;
  ....
}


Do you make errors in the code?

Check your code
with PVS-Studio

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

goto PVS-Studio;