Project

General

Profile

Actions

Bug #1684

closed

BLAST incorrectly updates lvalue indexes when converting to SSA with recursion enabled!

Added by Pavel Shved over 12 years ago. Updated over 12 years ago.

Status:
Closed
Priority:
High
Assignee:
Category:
-
Target version:
Start date:
08/24/2011
Due date:
% Done:

0%

Estimated time:
Detected in build:
svn
Platform:
Published in build:
9cfb95f

Description

I tried to run a simple program with full-blown alias support (attached):

void err() { ERROR: goto ERROR;}
void mutex_lock(int *a)
{ if (*a == 1) err();
  *a = 1;
}
void mutex_unlock(int *b)
{ if (*b != 1) err();
  *b = 0;
}
int main()
{ int m;
  m = 0;
  mutex_lock(&m);
  mutex_unlock(&m);
}

Command line:

pblast.opt only_int.c -predH 7 -craig 2 -alias bdd -cref  -cldepth 2 -enable-recursion

And it reports that the program in unsafe, which is wrong! However, if I exclude the option -enable-recursion, it reports the program as safe! But this stupid program does not contain any recursive calls at all!

I noticed that the indexes of lvalues converted into SSA form just do not match when the recursion is enabled. Is there a bug in lval_map subsystem?

Gotta investigate this...


Files

only_int.c (226 Bytes) only_int.c Pavel Shved, 08/24/2011 09:56 PM

Related issues 2 (1 open1 closed)

Related to BLAST - Feature #1685: Make BLAST understand and verify recursionNewPavel Shved08/24/2011

Actions
Related to BLAST - Bug #1970: Nondetermined variable intitialization is not performedClosedPavel Shved11/06/2011

Actions
Actions

Also available in: Atom PDF