Project

General

Profile

Actions

Bug #332

open

Alias analyzer doesn't alias int with volatile int!

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

Status:
Open
Priority:
Normal
Assignee:
Category:
-
Target version:
-
Start date:
08/03/2010
Due date:
% Done:

0%

Estimated time:
Detected in build:
pre-ldv
Platform:
Published in build:

Description

For this program *p is not aliased with a, and BLAST reports an unsafe.

int main()
{
        int volatile a = 4;
        int * const p = &a;
        p = &a;
        a = a - 4;
        if (*p != 0){
                ERROR: goto ERROR;
        }
        return 0;
}

If we remove volatile qualifier, the types--as BLAST understands them--start to match, and the program passes.

Actions #1

Updated by Alexey Khoroshilov about 13 years ago

  • Priority changed from Low to Normal
Actions #2

Updated by Evgeny Novikov over 12 years ago

Is this the case for the new implementation of aliases?

Actions #3

Updated by Pavel Shved over 12 years ago

Yes, it still is the case. There is a test for this case, and it's still not passed. I did not address this problem at all, since what I fixed were only queries to the alias analysis mechanism, not the code that gets the full-program flow-insensitive may-alias information.

Since we now (most likely) have the fast iterations, this problem could be addressed sooner.

Actions #4

Updated by Pavel Shved over 12 years ago

  • Project changed from Linux Driver Verification to BLAST
  • Category deleted (BLAST)
Actions

Also available in: Atom PDF