<html>
<head>
<base href="http://llvm.org/bugs/" />
</head>
<body><table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Bug ID</th>
<td><a class="bz_bug_link
bz_status_NEW "
title="NEW --- - Assertion failed: (hiBit <= numBits && "hiBit out of range"), function getBitsSet, file include/llvm/ADT/APInt.h, line 496."
href="http://llvm.org/bugs/show_bug.cgi?id=17026">17026</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>Assertion failed: (hiBit <= numBits && "hiBit out of range"), function getBitsSet, file include/llvm/ADT/APInt.h, line 496.
</td>
</tr>
<tr>
<th>Product</th>
<td>clang
</td>
</tr>
<tr>
<th>Version</th>
<td>trunk
</td>
</tr>
<tr>
<th>Hardware</th>
<td>PC
</td>
</tr>
<tr>
<th>OS</th>
<td>FreeBSD
</td>
</tr>
<tr>
<th>Status</th>
<td>NEW
</td>
</tr>
<tr>
<th>Severity</th>
<td>normal
</td>
</tr>
<tr>
<th>Priority</th>
<td>P
</td>
</tr>
<tr>
<th>Component</th>
<td>-New Bugs
</td>
</tr>
<tr>
<th>Assignee</th>
<td>unassignedclangbugs@nondot.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>dimitry@andric.com
</td>
</tr>
<tr>
<th>CC</th>
<td>llvmbugs@cs.uiuc.edu
</td>
</tr>
<tr>
<th>Classification</th>
<td>Unclassified
</td>
</tr></table>
<p>
<div>
<pre>Created <span class=""><a href="attachment.cgi?id=11112" name="attach_11112" title="Testcase for hiBit out of range assertion">attachment 11112</a> <a href="attachment.cgi?id=11112&action=edit" title="Testcase for hiBit out of range assertion">[details]</a></span>
Testcase for hiBit out of range assertion
After a report that the xmame port on FreeBSD failed to compile with clang, I
found out this is caused by a clang assertion failure during optimization. It
reproduces with trunk r189471.
Compiling the attached minimized testcase with -O2 leads to the following
assert (backtrace produced on Linux):
$ ~/llvm/189471-trunk-linux2-x86_64-aconf-rel-1/bin/clang -O2 -c hibit-assert.c
hibit-assert.c:18:12: warning: implicit declaration of function
'ExecuteDataALUOpcode' is invalid in C99
[-Wimplicit-function-declaration]
size = ExecuteDataALUOpcode(0);
^
hibit-assert.c:41:1: warning: control reaches end of non-void function
[-Wreturn-type]
}
^
clang: /home/dim/src/llvm/trunk/include/llvm/ADT/APInt.h:496: static
llvm::APInt llvm::APInt::getBitsSet(unsigned int, unsigned int, unsigned int):
Assertion `hiBit <= numBits && "hiBit out of range"' failed.
0 clang 0x0000000002232082 llvm::sys::PrintStackTrace(_IO_FILE*) + 34
1 clang 0x000000000223327a
2 libc.so.6 0x00007f9531476920
3 libc.so.6 0x00007f95314768a5 gsignal + 53
4 libc.so.6 0x00007f9531478085 abort + 373
5 libc.so.6 0x00007f953146fa1e
6 libc.so.6 0x00007f953146fae0 __assert_perror_fail + 0
7 clang 0x0000000001ebdbbb
8 clang 0x0000000001ebf69d
9 clang 0x0000000001ec23fa
10 clang 0x0000000001ebf034
11 clang 0x0000000001ec23fa
12 clang 0x0000000001ebebff
13 clang 0x0000000001ec23fa
14 clang 0x0000000001e9e712
15 clang 0x0000000001e6a951
16 clang 0x0000000001e6b76f
17 clang 0x00000000021c92d8
llvm::FPPassManager::runOnFunction(llvm::Function&) + 568
18 clang 0x0000000001f3e9de
19 clang 0x0000000001f3f26d
20 clang 0x00000000021c8d6a llvm::MPPassManager::runOnModule(llvm::Module&)
+ 666
21 clang 0x00000000021c8f97 llvm::PassManagerImpl::run(llvm::Module&) + 247
22 clang 0x000000000083fedc
23 clang 0x0000000000840ac1
clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::CodeGenOptions
const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::Module*,
clang::BackendAction, llvm::raw_ostream*) + 193
24 clang 0x000000000083d109
25 clang 0x00000000009e645e clang::ParseAST(clang::Sema&, bool, bool) + 382
26 clang 0x000000000083bdde clang::CodeGenAction::ExecuteAction() + 78
27 clang 0x00000000006b52a9 clang::FrontendAction::Execute() + 313
28 clang 0x0000000000691c05
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 341
29 clang 0x00000000006770cd
clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 1549
30 clang 0x000000000066daa8 cc1_main(char const**, char const**, char
const*, void*) + 1048
31 clang 0x0000000000675493 main + 4467
32 libc.so.6 0x00007f9531462cdd __libc_start_main + 253
33 clang 0x000000000066d4a9
Stack dump:
0. Program arguments:
/home/dim/llvm/189471-trunk-linux2-x86_64-aconf-rel-1/bin/clang -cc1 -triple
x86_64-unknown-linux-gnu -emit-obj -disable-free -main-file-name hibit-assert.c
-mrelocation-model static -fmath-errno -masm-verbose -mconstructor-aliases
-munwind-tables -target-cpu x86-64 -target-linker-version 2.20.51.0.2
-momit-leaf-frame-pointer -coverage-file
/home/dim/src/llvm/bugs/hibit/hibit-assert.o -resource-dir
/home/dim/llvm/189471-trunk-linux2-x86_64-aconf-rel-1/bin/../lib/clang/3.4
-internal-isystem /usr/local/include -internal-isystem
/home/dim/llvm/189471-trunk-linux2-x86_64-aconf-rel-1/bin/../lib/clang/3.4/include
-internal-externc-isystem /include -internal-externc-isystem /usr/include -O2
-fdebug-compilation-dir /home/dim/src/llvm/bugs/hibit -ferror-limit 19
-fmessage-length 137 -mstackrealign -fobjc-runtime=gcc
-fobjc-default-synthesize-properties -fdiagnostics-show-option
-fcolor-diagnostics -vectorize-loops -vectorize-slp -o hibit-assert.o -x c
hibit-assert.c
1. <eof> parser at end of file
2. Per-module optimization passes
3. Running pass 'CallGraph Pass Manager' on module 'hibit-assert.c'.
4. Running pass 'Combine redundant instructions' on function '@execute_one'
clang: error: unable to execute command: Aborted
clang: error: clang frontend command failed due to signal (use -v to see
invocation)
clang version 3.4 (trunk 189471)
Target: x86_64-unknown-linux-gnu
Thread model: posix
clang: note: diagnostic msg: PLEASE submit a bug report to
<a href="http://llvm.org/bugs/">http://llvm.org/bugs/</a> and include the crash backtrace, preprocessed source, and
associated run script.
clang: note: diagnostic msg:
********************
PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang: note: diagnostic msg: /home/dim/tmp/hibit-assert-c1eaaa.c
clang: note: diagnostic msg: /home/dim/tmp/hibit-assert-c1eaaa.sh
clang: note: diagnostic msg:
********************</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are on the CC list for the bug.</li>
</ul>
</body>
</html>