[llvm-bugs] [Bug 28042] New: Crash in static analyzer

via llvm-bugs llvm-bugs at lists.llvm.org
Tue Jun 7 14:21:52 PDT 2016


https://llvm.org/bugs/show_bug.cgi?id=28042

            Bug ID: 28042
           Summary: Crash in static analyzer
           Product: clang
           Version: 3.8
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: Static Analyzer
          Assignee: kremenek at apple.com
          Reporter: andrew.melo at gmail.com
                CC: llvm-bugs at lists.llvm.org
    Classification: Unclassified

Created attachment 16487
  --> https://llvm.org/bugs/attachment.cgi?id=16487&action=edit
lio_fuse_core.c preprocessed

Hello,

With "clang version 3.8.0-2ubuntu3 (tags/RELEASE_380/final)" on ubuntu xenial,
I get a two different crashes with my codebase (though one of them appears to
not always occur.

I've posted the stacktrace and command line after this message. The
preprocessed input is attached as an attachment. The "runner-unix" crash
appears to always occur, while the "lio_fuse_core" crash seems to happen
inconsistently.

Thanks!
Andrew

The stacktrace for each file looks the same:

0  libLLVM-3.8.so.1 0x00007f273edecd38
llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 56
1  libLLVM-3.8.so.1 0x00007f273edeafc6 llvm::sys::RunSignalHandlers() + 54
2  libLLVM-3.8.so.1 0x00007f273edeb129
3  libc.so.6        0x00007f273df284a0
4  clang            0x00000000014dc4c5 clang::Stmt::getLocStart() const + 21
5  clang            0x00000000012d5e15
6  clang            0x00000000012d8e49
clang::ento::PathDiagnosticLocation::createBegin(clang::Stmt const*,
clang::SourceManager const&, llvm::PointerUnion<clang::LocationContext const*,
clang::AnalysisDeclContext*>) + 25
7  clang            0x00000000011f7643
8  clang            0x00000000012705f5
clang::ento::CheckerManager::runCheckersForEndAnalysis(clang::ento::ExplodedGraph&,
clang::ento::BugReporter&, clang::ento::ExprEngine&) + 101
9  clang            0x000000000127ba5a
clang::ento::CoreEngine::ExecuteWorkList(clang::LocationContext const*,
unsigned int, llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>) + 234
10 clang            0x0000000000b279af
11 clang            0x0000000000b282fb
12 clang            0x0000000000b321ce
13 clang            0x0000000000b3676a clang::ParseAST(clang::Sema&, bool,
bool) + 938
14 clang            0x000000000099a1fe clang::FrontendAction::Execute() + 302
15 clang            0x000000000096fbf6
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 278
16 clang            0x0000000000a14aa3
clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 1987
17 clang            0x00000000006b2d18 cc1_main(llvm::ArrayRef<char const*>,
char const*, void*) + 2264
18 clang            0x00000000006af7ac main + 6252
19 libc.so.6        0x00007f273df13830 __libc_start_main + 240
20 clang            0x00000000006b1159 _start + 41
Stack dump:

And the following is the command line for lio_fuse_core.c

/usr/bin/clang -cc1 -triple x86_64-pc-linux-gnu -analyze -disable-free
-disable-llvm-verifier -main-file-name lio_fuse_core.c -analyzer-store=region
-analyzer-opt-analyze-nested-blocks -analyzer-eagerly-assume
-analyzer-checker=core -analyzer-checker=unix -analyzer-checker=deadcode
-analyzer-checker=security.insecureAPI.UncheckedReturn
-analyzer-checker=security.insecureAPI.getpw
-analyzer-checker=security.insecureAPI.gets
-analyzer-checker=security.insecureAPI.mktemp
-analyzer-checker=security.insecureAPI.mkstemp
-analyzer-checker=security.insecureAPI.vfork
-analyzer-checker=nullability.NullPassedToNonnull
-analyzer-checker=nullability.NullReturnedFromNonnull -analyzer-output plist -w
-mrelocation-model pic -pic-level 2 -mthread-model posix -mdisable-fp-elim
-fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables
-fuse-init-array -target-cpu x86-64 -dwarf-column-info -debugger-tuning=gdb
-resource-dir /usr/lib/llvm-3.8/bin/../lib/clang/3.8.0 -isystem
/tmp/workspace/LStore-Branches/PR-94/build/include -isystem
/tmp/workspace/LStore-Branches/PR-94/build/include/apr-ACCRE-1 -isystem
/tmp/workspace/LStore-Branches/PR-94/build/include/apr-util-ACCRE-1 -D
lio_EXPORTS -I /tmp/workspace/LStore-Branches/PR-94/src/toolbox -I
/tmp/workspace/LStore-Branches/PR-94/src/gop -I
/tmp/workspace/LStore-Branches/PR-94/src/ibp -D _REENTRANT -D _GNU_SOURCE -D
_LARGEFILE64_SOURCE -D _FILE_OFFSET_BITS=64 -D _FILE_OFFSET_BITS=64 -D
LSTORE_HACK_EXPORT -internal-isystem /usr/local/include -internal-isystem
/usr/lib/llvm-3.8/bin/../lib/clang/3.8.0/include -internal-externc-isystem
/usr/include/x86_64-linux-gnu -internal-externc-isystem /include
-internal-externc-isystem /usr/include -Wno-unused-parameter
-Wno-deprecated-declarations -std=c99 -fdebug-compilation-dir
/tmp/workspace/LStore-Branches/PR-94/build/src/lio -ferror-limit 19
-fmessage-length 0 -fvisibility hidden -fobjc-runtime=gcc
-fdiagnostics-show-option -analyzer-display-progress -analyzer-checker
alpha.core.BoolAssignment -analyzer-checker
alpha.core.CallAndMessageUnInitRefArg -analyzer-checker alpha.core.CastSize
-analyzer-checker alpha.core.CastToStruct -analyzer-checker
alpha.core.DynamicTypeChecker -analyzer-checker alpha.core.FixedAddr
-analyzer-checker alpha.core.IdenticalExpr -analyzer-checker
alpha.core.PointerArithm -analyzer-checker alpha.core.PointerSub
-analyzer-checker alpha.core.SizeofPtr -analyzer-checker
alpha.core.TestAfterDivZero -analyzer-checker alpha.cplusplus.VirtualCall
-analyzer-checker alpha.deadcode.UnreachableCode -analyzer-checker
alpha.security.ArrayBound -analyzer-checker alpha.security.ArrayBoundV2
-analyzer-checker alpha.security.MallocOverflow -analyzer-checker
alpha.security.ReturnPtrRange -analyzer-checker
alpha.security.taint.TaintPropagation -analyzer-checker alpha.unix.Chroot
-analyzer-checker alpha.unix.PthreadLock -analyzer-checker
alpha.unix.SimpleStream -analyzer-checker alpha.unix.Stream -analyzer-checker
alpha.unix.cstring.BufferOverlap -analyzer-checker
alpha.unix.cstring.NotNullTerminated -analyzer-checker
alpha.unix.cstring.OutOfBounds -analyzer-checker=debug.Stats -analyzer-max-loop
10 -analyzer-output=html -o
/tmp/workspace/LStore-Branches/PR-94/build/clang-static-analyzer/2016-06-07-064307-13352-1
-x c /tmp/workspace/LStore-Branches/PR-94/src/lio/lio_fuse_core.c

And this is the preprocessed runner-unix.c
0.    Program arguments: /usr/bin/clang -cc1 -triple x86_64-pc-linux-gnu
-analyze -disable-free -disable-llvm-verifier -main-file-name runner-unix.c
-analyzer-store=region -analyzer-opt-analyze-nested-blocks
-analyzer-eagerly-assume -analyzer-checker=core -analyzer-checker=unix
-analyzer-checker=deadcode
-analyzer-checker=security.insecureAPI.UncheckedReturn
-analyzer-checker=security.insecureAPI.getpw
-analyzer-checker=security.insecureAPI.gets
-analyzer-checker=security.insecureAPI.mktemp
-analyzer-checker=security.insecureAPI.mkstemp
-analyzer-checker=security.insecureAPI.vfork
-analyzer-checker=nullability.NullPassedToNonnull
-analyzer-checker=nullability.NullReturnedFromNonnull -analyzer-output plist -w
-mrelocation-model pic -pic-level 2 -mthread-model posix -mdisable-fp-elim
-fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables
-fuse-init-array -target-cpu x86-64 -dwarf-column-info -debugger-tuning=gdb
-resource-dir /usr/lib/llvm-3.8/bin/../lib/clang/3.8.0 -isystem
/tmp/workspace/LStore-Branches/PR-94/build/include/apr-ACCRE-1 -I
/tmp/workspace/LStore-Branches/PR-94/build/include -I
/tmp/workspace/LStore-Branches/PR-94/src/toolbox -I
/tmp/workspace/LStore-Branches/PR-94/src/gop -I
/tmp/workspace/LStore-Branches/PR-94/src/ibp -D _REENTRANT -D _GNU_SOURCE -D
_LARGEFILE64_SOURCE -D _FILE_OFFSET_BITS=64 -D LSTORE_HACK_EXPORT
-internal-isystem /usr/local/include -internal-isystem
/usr/lib/llvm-3.8/bin/../lib/clang/3.8.0/include -internal-externc-isystem
/usr/include/x86_64-linux-gnu -internal-externc-isystem /include
-internal-externc-isystem /usr/include -Wno-unused-parameter
-Wno-deprecated-declarations -std=c99 -fdebug-compilation-dir
/tmp/workspace/LStore-Branches/PR-94/build -ferror-limit 19 -fmessage-length 0
-fvisibility hidden -fobjc-runtime=gcc -fdiagnostics-show-option
-analyzer-display-progress -analyzer-checker alpha.core.BoolAssignment
-analyzer-checker alpha.core.CallAndMessageUnInitRefArg -analyzer-checker
alpha.core.CastSize -analyzer-checker alpha.core.CastToStruct -analyzer-checker
alpha.core.DynamicTypeChecker -analyzer-checker alpha.core.FixedAddr
-analyzer-checker alpha.core.IdenticalExpr -analyzer-checker
alpha.core.PointerArithm -analyzer-checker alpha.core.PointerSub
-analyzer-checker alpha.core.SizeofPtr -analyzer-checker
alpha.core.TestAfterDivZero -analyzer-checker alpha.cplusplus.VirtualCall
-analyzer-checker alpha.deadcode.UnreachableCode -analyzer-checker
alpha.security.ArrayBound -analyzer-checker alpha.security.ArrayBoundV2
-analyzer-checker alpha.security.MallocOverflow -analyzer-checker
alpha.security.ReturnPtrRange -analyzer-checker
alpha.security.taint.TaintPropagation -analyzer-checker alpha.unix.Chroot
-analyzer-checker alpha.unix.PthreadLock -analyzer-checker
alpha.unix.SimpleStream -analyzer-checker alpha.unix.Stream -analyzer-checker
alpha.unix.cstring.BufferOverlap -analyzer-checker
alpha.unix.cstring.NotNullTerminated -analyzer-checker
alpha.unix.cstring.OutOfBounds -analyzer-checker=debug.Stats -analyzer-max-loop
10 -analyzer-output=html -o
/tmp/workspace/LStore-Branches/PR-94/build/clang-static-analyzer/2016-06-07-064307-13352-1
-x c /tmp/workspace/LStore-Branches/PR-94/test/runner-unix.c 
1.    <eof> parser at end of file

-- 
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/20160607/baa841ed/attachment-0001.html>


More information about the llvm-bugs mailing list