You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-Wconsumed leads to: Assertion failed: (StateMapsArray[Block->getBlockID()] && "Block has no block info"), function borrowInfo, file tools/clang/lib/Analysis/Consumed.cpp, line 1080.
#20776
Closed
DimitryAndric opened this issue
Jul 22, 2014
· 3 comments
The state map information starts out with null entries, and so attempting to "borrow" that null entry is what generates the assertion.
One possible way to fix that is to add a ConsumedBlockInfo::hasInfo() function, and not attempt to borrow when that is false. However, that may also be a very hackish solution. Delesley or Chris may have a better idea.
Extended Description
This assertion was reported by Benjamin Kaduk here:
http://lists.freebsd.org/pipermail/freebsd-current/2014-July/051348.html
I reduced the test case to this very short .c file, which reproduces the assertion with clang trunk r213143:
$ cat testcase.c
a;
GetToken() {
S1:
switch (a)
case ' ':
goto S1;
goto S1;
}
static
$ clang -v
clang version 3.5.0 (trunk 213143)
Target: x86_64-unknown-freebsd11.0
Thread model: posix
$ clang -cc1 -triple x86_64-unknown-freebsd11.0 -emit-obj -Wconsumed testcase.c
clang -cc1 -triple x86_64-unknown-freebsd11.0 -emit-obj -Wconsumed testcase.c
testcase.c:1:1: warning: type specifier missing, defaults to 'int'
a;
^
testcase.c:2:1: warning: type specifier missing, defaults to 'int'
GetToken() {
^~~~~~~~
Assertion failed: (StateMapsArray[Block->getBlockID()] && "Block has no block info"), function borrowInfo, file /share/dim/src/llvm/trunk/tools/clang/lib/Analysis/Consumed.cpp, line 1080.
Stack dump:
0. Program arguments: /share/dim/llvm/213143-trunk-freebsd11-amd64-aconf-rel-2/bin/clang -cc1 -triple x86_64-unknown-freebsd11.0 -emit-obj -Wconsumed testcase.c
Abort trap
Obviously, a workaround is to remove -Wconsumed, but this warning was not explicitly enabled the original reporter; he was using -Weverything.
The text was updated successfully, but these errors were encountered: