[LLVMbugs] [Bug 21467] New: clang hangs on valid code at -Os and above on x86_64-linux-gnu
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Mon Nov 3 13:42:35 PST 2014
http://llvm.org/bugs/show_bug.cgi?id=21467
Bug ID: 21467
Summary: clang hangs on valid code at -Os and above on
x86_64-linux-gnu
Product: clang
Version: trunk
Hardware: PC
OS: All
Status: NEW
Severity: normal
Priority: P
Component: -New Bugs
Assignee: unassignedclangbugs at nondot.org
Reporter: su at cs.ucdavis.edu
CC: llvmbugs at cs.uiuc.edu
Classification: Unclassified
The following test case causes the current clang trunk to hang when compiling
at -Os and above in both 32-bit and 64-bit modes on x86_64-linux-gnu.
It is regression from 3.1 and affects all earlier versions of clang since 3.2.
It also seems to affect MacOS X.
This should be different from PR 21377, which also affects clang 3.1.
$ clang-trunk -v
clang version 3.6.0 (trunk 220839)
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 -O1 -c small.c
$ clang-3.1 -Os -c small.c
$
$ timeout -s 9 30 clang-trunk -Os -c small.c
Killed
$
-----------------------
struct { int f1; } b;
char a;
int c;
short
fn1 (int p1, int p2)
{
return p2 == 0 ? p1 : p1 / p2;
}
void fn2 () { }
void
fn3 ()
{
fn2 ();
unsigned char d = 0;
while (1)
{
d |= a;
c = fn1 (10, 1);
if (fn1 (1, c))
d |= 0;
else
b.f1 = 0;
d |= a;
}
}
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20141103/7c181ee4/attachment.html>
More information about the llvm-bugs
mailing list