eldritch horrors
b0d7a81613
clangd broke because it can't look through symlinks. compile_commands
manipulation does not fix it, clangd configuration does not fix it, a
vfs overlay does not fix it, and while a combination of those can fix
it with a bind mount in place that's just too cursed to even consider
clangd bug: https://github.com/llvm/llvm-project/issues/116877
Change-Id: I8e3e8489548eb3a7aa65ac9d12a5ec8abf814aec
25 lines
814 B
C++
25 lines
814 B
C++
#include "lix/libutil/fmt.hh" // IWYU pragma: keep
|
|
// Darwin and FreeBSD stdenv do not define _GNU_SOURCE but do have _Unwind_Backtrace.
|
|
#if __APPLE__ || __FreeBSD__
|
|
#define BOOST_STACKTRACE_GNU_SOURCE_NOT_REQUIRED
|
|
#endif
|
|
#include <boost/stacktrace/stacktrace.hpp>
|
|
|
|
template class boost::basic_format<char>;
|
|
|
|
namespace nix {
|
|
|
|
// Explicit instantiation saves about 30 cpu-seconds of compile time
|
|
template HintFmt::HintFmt(const std::string &, const Uncolored<std::string> &s);
|
|
template HintFmt::HintFmt(const std::string &, const std::string &s);
|
|
template HintFmt::HintFmt(const std::string &, const uint64_t &, const char * const &);
|
|
|
|
HintFmt::HintFmt(const std::string & literal) : HintFmt("%s", Uncolored(literal)) {}
|
|
|
|
void printStackTrace()
|
|
{
|
|
std::cerr << boost::stacktrace::stacktrace() << std::endl;
|
|
}
|
|
|
|
}
|