http://llvm.org/bugs/show_bug.cgi?id=19111
Bug ID: 19111 Summary: wrong code by LTO on x86_64-linux-gnu (both 32-bit and 64-bit modes) Product: clang Version: trunk Hardware: PC OS: All Status: NEW Severity: normal Priority: P Component: -New Bugs Assignee: unassignedclangb...@nondot.org Reporter: s...@cs.ucdavis.edu CC: llvmbugs@cs.uiuc.edu Classification: Unclassified The current clang trunk miscompiles the following code when using LTO on x86_64-linux-gnu in both 32-bit and 64-bit modes. $ clang-trunk -v clang version 3.5.0 (trunk 203564) Target: x86_64-unknown-linux-gnu Thread model: posix Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/4.8 Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/4.8.1 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.4 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.4.6 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.4.7 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.6 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.6.4 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.7 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.7.3 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.8 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.8.1 Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.8 Candidate multilib: .;@m64 Candidate multilib: 32;@m32 Selected multilib: .;@m64 $ $ clang-trunk -O0 foo.c main.c $ a.out $ $ clang-trunk -flto -O0 -c foo.c $ clang-trunk -flto -O1 -c main.c $ clang-trunk -flto -O1 foo.o main.o $ a.out a.out: main.c:12: int main(): Assertion `b == 0' failed. Aborted (core dumped) $ $ cat foo.c extern int c, **d; static int bar (int p) { return 0; } int * foo (void) { int ***e = &d; for (; c < 1; c++) bar (*e == 0); return 0; } $ cat main.c #include <assert.h> extern int *foo (void); int a, *b = &a, c, **d = &b; int main () { *b = 0; *d = 0; assert (b == 0); foo (); return 0; } -- You are receiving this mail because: You are on the CC list for the bug.
_______________________________________________ LLVMbugs mailing list LLVMbugs@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs