我的项目使用clang-libtooling,由于来自头文件的错误而无法编译。错误是:C:\llvm\llvm\include\llvm\Support\MathExtras.h(372,31): error C4146: unary minus operator applied to unsigned type, result still unsigned,库头中的相关代码是:
/// Gets the minimum value for a N-bit signed integer.
inline int64_t minIntN(int64_t N) {
assert(N > 0 && N <= 64 && "integer width out of range");
return -(UINT64_C(1)<<(N-1));
}我不知道这应该如何编译,但它在一段时间之前就已经编译了。这可能是我的代码的结果,但我尝试编译和空程序只包含头文件,它仍然失败了,就像这样。你知道怎么解决这个问题吗?
发布于 2020-11-24 05:13:45
首先,您应该向llvm.org报告错误。C4146是由-sdl编译器选项转换为错误的警告,我相信这是一个默认的(始终打开)选项。删除编译器选项,错误将变为警告,代码将进行编译。
https://stackoverflow.com/questions/64430551
复制相似问题