[LLVMbugs] [Bug 8670] Optimization causes incorrect output.
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Mon Nov 22 21:19:20 PST 2010
http://llvm.org/bugs/show_bug.cgi?id=8670
Chris Lattner <clattner at apple.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |INVALID
--- Comment #1 from Chris Lattner <clattner at apple.com> 2010-11-22 23:19:20 CST ---
It's not obvious, but this is because your program has undefined behavior.
This line:
struct IntContainer *a =
(void *)((char *)(list->next) -
((char *)&a->link - (char *)(a)));
contains a dereference of a->link before a is set. Since a contains an
uninitialized variable, a->link and a are not guaranteed to have related
values.
This is more complex but equivalent to:
int a;
print(a-a)
which is not guaranteed to print zero.
--
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