Issue 176118
Summary [clang][bug] clang-extdef-mapping crashes with no options
Labels clang
Assignees
Reporter capitan-davide
    In a build with assertions, calling `clang-extdef-mapping` with no options results in the following crash:

```text
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/unique_ptr.h:453: typename add_lvalue_reference<element_type>::type std::unique_ptr<clang::tooling::CompilationDatabase>::operator*() const [_Tp = clang::tooling::CompilationDatabase, _Dp = std::default_delete<clang::tooling::CompilationDatabase>]: Assertion 'get() != pointer()' failed.
 #0 0x00007fa8045e4d5d llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/q645278/repos/llvm-project/llvm/lib/Support/Unix/Signals.inc:834:11
 #1 0x00007fa8045e528b PrintStackTraceSignalHandler(void*) /home/q645278/repos/llvm-project/llvm/lib/Support/Unix/Signals.inc:916:1
 #2 0x00007fa8045e315f llvm::sys::RunSignalHandlers() /home/q645278/repos/llvm-project/llvm/lib/Support/Signals.cpp:104:5
 #3 0x00007fa8045e5929 SignalHandler(int, siginfo_t*, void*) /home/q645278/repos/llvm-project/llvm/lib/Support/Unix/Signals.inc:426:38
 #4 0x00007fa7fb245330 (/lib/x86_64-linux-gnu/libc.so.6+0x45330)
 #5 0x00007fa7fb29eb2c __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
 #6 0x00007fa7fb29eb2c __pthread_kill_internal ./nptl/pthread_kill.c:78:10
 #7 0x00007fa7fb29eb2c pthread_kill ./nptl/pthread_kill.c:89:10
 #8 0x00007fa7fb24527e raise ./signal/../sysdeps/posix/raise.c:27:6
 #9 0x00007fa7fb2288ff abort ./stdlib/abort.c:81:7
#10 0x00007fa7fb6df90d (/lib/x86_64-linux-gnu/libstdc++.so.6+0xdf90d)
#11 0x00005e000a7c1fcb std::unique_ptr<clang::tooling::CompilationDatabase, std::default_delete<clang::tooling::CompilationDatabase>>::operator*() const /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/unique_ptr.h:453:2
#12 0x00005e000a7b5275 clang::tooling::CommonOptionsParser::getCompilations() /home/q645278/repos/llvm-project/clang/include/clang/Tooling/CommonOptionsParser.h:96:5
#13 0x00005e000a7b3b91 main /home/q645278/repos/llvm-project/clang/tools/clang-extdef-mapping/ClangExtDefMapGen.cpp:225:36
#14 0x00007fa7fb22a1ca __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:74:3
#15 0x00007fa7fb22a28b call_init ./csu/../csu/libc-start.c:128:20
#16 0x00007fa7fb22a28b __libc_start_main ./csu/../csu/libc-start.c:347:5
#17 0x00005e000a7b3535 _start (./build/Debug/bin/clang-extdef-mapping+0x1933535)
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace and instructions to reproduce the bug
```

This happens because the `CommonOptionParser` is created with `cl::ZeroOrMore` flag, causing a null pointer deference.
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to