- Notifications
You must be signed in to change notification settings - Fork 15.3k
Open
Labels
crashPrefer [crash-on-valid] or [crash-on-invalid]Prefer [crash-on-valid] or [crash-on-invalid]tools:llvm-cov
Description
$ clang --version clang version 19.0.0git (/media/wd-sn580-2t-1/llvm/trunk/src/clang 91c0ef6f67821eb7298cb05988045e92354ac77b) Target: x86_64-unknown-linux-gnu Thread model: posix InstalledDir: /media/wd-sn580-2t-1/llvm/trunk/src/build/bin Build config: +assertionsHow to reproduce:
cat << EOF > test.c int main(void) { int a = 0; int b = 0; return a && b; } EOF clang -fprofile-instr-generate -fcoverage-mapping -fcoverage-mcdc \ -mllvm -profile-correlate=binary \ test.c -o test.exe ./test.exe llvm-profdata merge default.profraw --binary-file test.exe -o default.profdata llvm-cov show --show-mcdc -instr-profile default.profdata test.exeLog
llvm-cov: /media/wd-sn580-2t-1/llvm/trunk/src/llvm/include/llvm/ADT/BitVector.h:450: bool llvm::BitVector::operator[](unsigned int) const: Assertion `Idx < Size && "Out-of-bounds Bit access."' failed. PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace. Stack dump: 0. Program arguments: llvm-cov "llvm-cov show" --show-mcdc -instr-profile default.profdata test.exe #0 0x00005a3126ed5daf llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /media/wd-sn580-2t-1/llvm/trunk/src/llvm/lib/Support/Unix/Signals.inc:727:3 #1 0x00005a3126ed3a9f llvm::sys::RunSignalHandlers() /media/wd-sn580-2t-1/llvm/trunk/src/llvm/lib/Support/Signals.cpp:105:20 #2 0x00005a3126ed3df6 SignalHandler(int) /media/wd-sn580-2t-1/llvm/trunk/src/llvm/lib/Support/Unix/Signals.inc:413:1 #3 0x000076aa61a42520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520) #4 0x000076aa61a969fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc) #5 0x000076aa61a42476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476) #6 0x000076aa61a287f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3) #7 0x000076aa61a2871b (/lib/x86_64-linux-gnu/libc.so.6+0x2871b) #8 0x000076aa61a39e96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96) #9 0x00005a3126f6d80b llvm::SmallVectorTemplateCommon<std::array<int, 2ul>, void>::operator[](unsigned long) /media/wd-sn580-2t-1/llvm/trunk/src/llvm/include/llvm/ADT/BitVector.h:450:5 #10 0x00005a3126f6d80b (anonymous namespace)::MCDCRecordProcessor::buildTestVector(llvm::coverage::MCDCRecord::TestVector&, short, int) /media/wd-sn580-2t-1/llvm/trunk/src/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp:412:42 #11 0x00005a3126f6fced findExecutedTestVectors /media/wd-sn580-2t-1/llvm/trunk/src/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp:446:5 #12 0x00005a3126f6fced processMCDCRecord /media/wd-sn580-2t-1/llvm/trunk/src/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp:513:28 #13 0x00005a3126f6fced llvm::coverage::CounterMappingContext::evaluateMCDCRegion(llvm::coverage::CounterMappingRegion const&, llvm::ArrayRef<llvm::coverage::CounterMappingRegion const*>, bool) /media/wd-sn580-2t-1/llvm/trunk/src/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp:533:41 #14 0x00005a3126f727da llvm::Expected<llvm::coverage::MCDCRecord>::takeError() /media/wd-sn580-2t-1/llvm/trunk/src/llvm/include/llvm/Support/Error.h:610:15 #15 0x00005a3126f727da llvm::coverage::CoverageMapping::loadFunctionRecord(llvm::coverage::CoverageMappingRecord const&, llvm::IndexedInstrProfReader&) /media/wd-sn580-2t-1/llvm/trunk/src/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp:901:35 #16 0x00005a3126f73a20 llvm::Error::setChecked(bool) /media/wd-sn580-2t-1/llvm/trunk/src/llvm/include/llvm/Support/Error.h:310:22 #17 0x00005a3126f73a20 llvm::Error::operator bool() /media/wd-sn580-2t-1/llvm/trunk/src/llvm/include/llvm/Support/Error.h:242:15 #18 0x00005a3126f73a20 llvm::coverage::CoverageMapping::loadFromReaders(llvm::ArrayRef<std::unique_ptr<llvm::coverage::CoverageMappingReader, std::default_delete<llvm::coverage::CoverageMappingReader>>>, llvm::IndexedInstrProfReader&, llvm::coverage::CoverageMapping&) /media/wd-sn580-2t-1/llvm/trunk/src/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp:944:71 #19 0x00005a3126f74079 llvm::Error::setChecked(bool) /media/wd-sn580-2t-1/llvm/trunk/src/llvm/include/llvm/Support/Error.h:310:22 #20 0x00005a3126f74079 llvm::Error::operator bool() /media/wd-sn580-2t-1/llvm/trunk/src/llvm/include/llvm/Support/Error.h:242:15 #21 0x00005a3126f74079 llvm::coverage::CoverageMapping::loadFromFile(llvm::StringRef, llvm::StringRef, llvm::StringRef, llvm::IndexedInstrProfReader&, llvm::coverage::CoverageMapping&, bool&, llvm::SmallVectorImpl<llvm::SmallVector<unsigned char, 10u>>*) /media/wd-sn580-2t-1/llvm/trunk/src/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp:1003:66 #22 0x00005a3126f74b1d llvm::Error::setChecked(bool) /media/wd-sn580-2t-1/llvm/trunk/src/llvm/include/llvm/Support/Error.h:310:22 #23 0x00005a3126f74b1d llvm::Error::operator bool() /media/wd-sn580-2t-1/llvm/trunk/src/llvm/include/llvm/Support/Error.h:242:15 #24 0x00005a3126f74b1d llvm::coverage::CoverageMapping::load(llvm::ArrayRef<llvm::StringRef>, llvm::StringRef, llvm::vfs::FileSystem&, llvm::ArrayRef<llvm::StringRef>, llvm::StringRef, llvm::object::BuildIDFetcher const*, bool) /media/wd-sn580-2t-1/llvm/trunk/src/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp:1031:80 #25 0x00005a3126cc1182 llvm::Expected<std::unique_ptr<llvm::coverage::CoverageMapping, std::default_delete<llvm::coverage::CoverageMapping>>>::takeError() /media/wd-sn580-2t-1/llvm/trunk/src/llvm/include/llvm/Support/Error.h:610:15 #26 0x00005a3126cc1182 (anonymous namespace)::CodeCoverageTool::load() /media/wd-sn580-2t-1/llvm/trunk/src/llvm/tools/llvm-cov/CodeCoverage.cpp:486:41 #27 0x00005a3126cc4f02 (anonymous namespace)::CodeCoverageTool::doShow(int, char const**, llvm::function_ref<int (int, char const**)>) (.constprop.0) /media/wd-sn580-2t-1/llvm/trunk/src/llvm/tools/llvm-cov/CodeCoverage.cpp:1143:3 #28 0x00005a3126ccae48 (anonymous namespace)::CodeCoverageTool::run((anonymous namespace)::CodeCoverageTool::Command, int, char const**) /media/wd-sn580-2t-1/llvm/trunk/src/llvm/tools/llvm-cov/CodeCoverage.cpp:980:18 #29 0x00005a3126ccb73f showMain(int, char const**) /media/wd-sn580-2t-1/llvm/trunk/src/llvm/tools/llvm-cov/CodeCoverage.cpp:1348:1 #30 0x00005a3126cad063 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>::~basic_string() /usr/include/c++/11/bits/basic_string.h:672:19 #31 0x00005a3126cad063 main /media/wd-sn580-2t-1/llvm/trunk/src/llvm/tools/llvm-cov/llvm-cov.cpp:82:5 #32 0x000076aa61a29d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90) #33 0x000076aa61a29e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40) #34 0x00005a3126cac5e5 _start (/media/wd-sn580-2t-1/llvm/trunk/src/build/bin/llvm-cov+0x2895e5) [1] 462045 IOT instruction (core dumped) llvm-cov show --show-mcdc -instr-profile default.profdata test.exe Removing either MC/DC options or binary profile correlation can run successfully.
Metadata
Metadata
Assignees
Labels
crashPrefer [crash-on-valid] or [crash-on-invalid]Prefer [crash-on-valid] or [crash-on-invalid]tools:llvm-cov