clang 相关问题

有关clang LLVM编译器前端的问题。有关C的一般问题,请使用C标记。

如何抑制BCC64中的警告W7041?

在我正在开发的 Borland C++Builder 非现代 64 位代码库 (bcc64) 中,许多类定义发出以下警告: 警告 W7041:接口“XXX”并非源自 IUnknow...

回答 1 投票 0

如何使用 clang-format 将预处理器指令 (#) 与代码块对齐?

我正在使用 clang-format 来格式化我的 C++ 代码。但是,我想将预处理器指令(包括 # 符号)与周围的代码块对齐。目前,clang-format 对齐了指令

回答 1 投票 0

Clangd 在头文件中包含compile_commands.json

我正在将 neovim 与配置的 lsp (clangd) 用于我正在开发的 C 项目。每当我在源 .c 文件中时,lsp 都能很好地工作,并且可以找到定义和内容,无论它们是否在其中......

回答 1 投票 0

静态库和动态库具有相同的目标文件

我有一个项目,我正在为静态库 libx.a 构建不带-fPIC 的目标文件,为动态库 libx.so 构建带 -fPIC 的目标文件。现在我必须编译源文件 cpp 或 c 两次,然后就可以了是...

回答 1 投票 0

如何阻止 Apple 的编译器 clang 冒充 gcc?

我正在尝试根据此页面安装 gforth 的前沿版本 我的问题不是关于安装的细节,而是关于如何停止 clang 与 GNU 编译器 gcc 的冲突。 ...

回答 1 投票 0

YouCompleteMe 找不到带有compile_commands.json 的系统标头

在 YouCompleteMe 文档上,有两个选项用于设置对 C/C++ 语义支持的支持。第一个是使用带有 CMake 的编译数据库(例如文件compile_commands.jso...

回答 1 投票 0

Emscripten 找不到 clang

我从网站安装了 Emscripten(请参阅 https://emscripten.org/),按照步骤操作,但是当我尝试使用 emcc ./Desktop/cpp/test.cpp -o test.html 运行它时,它给出我的错误“emcc:呃...

回答 1 投票 0

如何启用对齐多个变量声明

我想设置我的 clang-format 来格式化它: 双 var1、var2、 变量3,变量4; 进入这个: 双 var1、var2、 变量3,变量4; 有办法实现这一点吗? 如果无法设置对齐我...

回答 1 投票 0

Clang 格式 - 如何启用对齐多个变量声明

我想设置我的 clang-format 来格式化它: 双 var1、var2、 变量3,变量4; 进入这个: 双 var1、var2、 变量3,变量4; 有办法实现这个目标吗? 如果无法设置对齐的话...

回答 1 投票 0

C语言中clion的退出码-1073741819

我一直在尝试构建练习代码,但是在步骤之后(通过扫描功能获取坐标) #包括 #包括 #定义圆周率3.1415926535 结构点{ ...

回答 1 投票 0

通过libclang编译代码时有没有办法得到有意义的错误消息?

我正在尝试使用 libclang 在运行时编译代码。我故意给了 ti 格式错误的代码来尝试查看如何打印错误消息。 为此,我调用 clang_parseTranslationUnit2 ...

回答 1 投票 0

无法理解的с++编译器行为

也许我对 C++ 不太了解,但我发现 C++ 编译器的行为难以理解(在我看来是危险的)。 MSVC、g++ 和 Clang 的行为相同。 问:为什么函数 ::a::f 可见为 f

回答 1 投票 0


强制 clang 不展开循环

我有一个以下形式的循环 对于 (int i = 0; i < SOME_CONSTANT; ++i) { // do some stuff involving `i`. } which clang is partially unrolling to do two passes at a time. I need it to not be unro...

回答 1 投票 0

不明确的部分专业化

我有一个大型的第 3 方库,我正在尝试使用最新的 clang(版本 19)进行编译,但我一直遇到不明确的部分专业化错误。重现问题的最小样本...

回答 1 投票 0

z/OS 生成零长度侧甲板文件,不显示警告

我正在尝试在 z/OS 上编译可执行文件。 最后一步因一些未定义的符号而失败。 大概这是因为它之前生成 .so 的步骤也生成了零

回答 1 投票 0

如何从llvm IR中的加载指令获取操作数名称?

我试图从指令 '%6 = load i32* %2,align 4,!dbg !135' 获取 %2,但函数 getOperand(0)->getName() 返回空字符串。怎么解决这个问题?

回答 1 投票 0

引入新的内在函数后,LLVM DAG 模式指令选择失败

我目前正在使用自定义加载指令扩展 RISC-V 内核。对于这个问题,细节并不重要。它的功能行为类似于正常的加载指令,并且应该使用相同的

回答 1 投票 0

使用捕获此值的 lambda 来初始化结构成员会导致 clang 中出现段错误吗?

我使用捕获 this 的 lambda 来初始化结构成员 std::function f。该程序预计打印 9,但出现分段错误。 我的编译命令是 clang++ prog.cc with clan...

回答 1 投票 0

gcc 和 clang 不同意使用别名模板作为模板模板参数

下面的代码使用 gcc 14.1.1 进行编译,但 clang 18.1.8 不接受它。哪一个是正确的并且有任何解决方法吗? 模板 类 T> 结构体{ 温度... 下面的代码使用 gcc 14.1.1 进行编译,但 clang 18.1.8 不接受它。哪一个是正确的,有什么解决方法吗? template <template <typename...> class T> struct s { template <typename... U> using type = T<U...>; }; template <typename T> class c {}; template <typename T> using a = c<T>; int main() { typename s<c>::type<int>{}; typename s<a>::type<int>{}; // Causing the error return 0; } ❯ clang++ -Wall -std=c++23 -pedantic text.cpp -o test test.cpp:7:20: error: pack expansion used as argument for non-pack parameter of alias template 7 | using type = T<U...>; | ^~~~ 编辑: 将别名模板设为可变参数可以使用 clang 进行编译,但模板别名是由用户创建的,库无法控制它。 template <typename... T> using a = c<T...>; 哪一个是正确的[...]? Clang 错了。 A class-template 和 alias-template 是同义词1;它们都可以用作模板模板参数的模板参数,可互换使用2。 1[dcl.typedef]/1 使用 typedef 说明符声明的名称成为 typedef 名称。 typedef-name 命名与标识符 ([dcl.decl]) 或 simple-template-id ([temp.pre]) 关联的类型;因此,typedef-name 是另一种类型的同义词。 typedef-name 不会像类声明 ([class.name]) 或枚举声明 ([dcl.enum]) 那样引入新类型。 2[temp.arg]/1 模板模板参数的模板参数应是类模板或别名模板的名称,表示为 id-expression。将模板模板参数与相应参数匹配时,仅考虑主模板;即使参数列表与模板模板参数匹配,也不会考虑部分特化。

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.