https://llvm.org/bugs/show_bug.cgi?id=27804
Bug ID: 27804 Summary: wrong code at -Os and above in 32-bit mode on x86_64-linux-gnu Product: clang Version: trunk Hardware: PC OS: All Status: NEW Severity: normal Priority: P Component: -New Bugs Assignee: unassignedclangb...@nondot.org Reporter: chengnian...@gmail.com CC: llvm-bugs@lists.llvm.org Classification: Unclassified The following code is miscompiled by the trunk at -Os, -O2, and -O3 in 32-bit mode (not in 64-bit mode) on x86_64-linux-gnu. $: clang-trunk -v clang version 3.9.0 (trunk 269748) Target: x86_64-unknown-linux-gnu Thread model: posix InstalledDir: /usr/local/bin Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/4.9 Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/4.9.3 Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/5.3.0 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.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.5 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.9 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.9.3 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/5.3.0 Found candidate GCC installation: /usr/local/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.6.3 Found candidate GCC installation: /usr/local/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.7.4 Found candidate GCC installation: /usr/local/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.8.2 Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.9 Candidate multilib: .;@m64 Candidate multilib: 32;@m32 Candidate multilib: x32;@mx32 Selected multilib: .;@m64 $: $: clang-trunk small.c -w -m32 -Os ; ./a.out Floating point exception (core dumped) $: clang-trunk small.c -w -m32 -O2 ; ./a.out Floating point exception (core dumped) $: clang-trunk small.c -w -m32 -O3 ; ./a.out Floating point exception (core dumped) $: clang-trunk small.c -w -m32 -O1 ; ./a.out l_5906=1 $: $: cat small.c volatile short a, g, l = 1; char b, e; int c, d, h, i = -7L, k, m; short f; short j; static short fn1() { unsigned short n = 4; for (; b >= 0; b--) ; for (;;) { int o = ~(e && f && j), p = ~(~(h % ~k ^ e) & b); char q = ~(b | e) ^ (p && o ^ j) >> ~i; short r = (n & h && q) | ~(o | (e | p)), s = (h && q && j && i % l) * e; if (e) k = r | b; j = s; if (!(c >= 0)) { h++; printf("g_5326=%lld\n", (long long)2); } a / b &&a; short t = ~g; n = t; L1: if (l) { printf("l_5906=%lld\n", (long long)l); goto L2; } continue; L2: if (d) goto L1; return m; } } int main() { fn1(); } $: -- You are receiving this mail because: You are on the CC list for the bug.
_______________________________________________ llvm-bugs mailing list llvm-bugs@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs