[LLVMbugs] [Bug 8273] New: possible volatile bug

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Fri Oct 1 10:24:50 PDT 2010


http://llvm.org/bugs/show_bug.cgi?id=8273

           Summary: possible volatile bug
           Product: new-bugs
           Version: trunk
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: new bugs
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: regehr at cs.utah.edu
                CC: llvmbugs at cs.uiuc.edu, chenyang at cs.utah.edu


Ok this is super nitpicky, but I think actually wrong.

We take this code:

int const volatile vol1 = 0;
int const vol2 = 0;

int main (void)
{
  return 0;
}

and then run these commands:

[regehr at gamow ~]$ clang -O vol.c -o vol
[regehr at gamow ~]$ nm vol |grep vol
00000000004005cc R vol1
00000000004005cc R vol2

They have been put at the same location.  I argue that this transformation is
illegal if any of the variables in question are volatile, because a
volatile-qualified object should only be loaded from or store to when the
abstract machine would do so.

-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



More information about the llvm-bugs mailing list