[LLVMbugs] [Bug 3024] New: possible volatile bug
bugzilla-daemon at cs.uiuc.edu
bugzilla-daemon at cs.uiuc.edu
Fri Nov 7 14:09:15 PST 2008
http://llvm.org/bugs/show_bug.cgi?id=3024
Summary: possible volatile bug
Product: new-bugs
Version: unspecified
Platform: PC
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P2
Component: new bugs
AssignedTo: unassignedbugs at nondot.org
ReportedBy: regehr at cs.utah.edu
CC: llvmbugs at cs.uiuc.edu
I apologize for the poor timing of my recent bug reports! Unfortunately I'm at
the mercy of the random number generator here.
This is seen on r58855 on Ubuntu Hardy on x86.
It looks like a backend bug: the bitcode accesses the volatile the right number
of times at all optimization levels, but the x86 doesn't.
The code is below. The right number of reads from g_107 is 2. At -O1,
llvm-gcc produces x86 that reads this variable only once.
#include <stdio.h>
// VOLATILE GLOBAL g_107
volatile unsigned int g_107;
int x;
static inline unsigned int
rshift_u_u(unsigned int left, unsigned int right)
{
if (right >= sizeof(unsigned int)*8) {
/* Avoid undefined behavior. */
return left;
}
return left >> right;
}
void func_95 (unsigned int p_97);
void func_95 (unsigned int p_97)
{
for (; p_97 < -7; --p_97)
if (rshift_u_u (g_107, (-9L * p_97)))
x++;
}
int
main (void)
{
func_95 (1);
printf ("checksum = 0\n");
return 0;
}
--
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