有关clang LLVM编译器前端的问题。有关C的一般问题,请使用C标记。
今天我发现 GCC 在优化这段代码中的开关方面发挥了一些神奇的作用: 楼梯类型 GetStairsType(uint8_ttileId, uint8_t dlvl) { 如果(dlvl==0) 返回楼梯类型::部分...
如何在 clang llvm LTO 创建的目标文件中重新定义符号?似乎是“LLVM IR bitcode”文件
有一个旧项目需要在构建过程中重新定义符号。我想启用-flto,但现在似乎无法重新定义符号。 echo "int foo(){return 0;}" > foo.c 叮当...
v8::internal::Isolate::Exit() 使用 clang 编译时出现段错误
使用 gcc 编译嵌入式 v8 hello-world.cc (https://chromium.googlesource.com/v8/v8/+/main/samples/hello-world.cc) 代码示例时,它可以正常工作: $ g++ -I/path/to/v8/include hello-wor...
是否可以使用 clang 在 Apple Silicon 上构建 sqlite 扩展?
我正在尝试使用页面上的说明在 M1 笔记本电脑上构建百分位数 sqlite 扩展: gcc -g -fPIC -共享百分位数.c -o 百分位数.so 然而,这会导致以下结果
Emscripten 和 CMake 的问题:em++ 无法编译简单的测试程序
我在尝试使用 Emscripten 构建项目时遇到了一个持续存在的问题。尽管尝试了各种常见的解决方案,但我仍无法解决该错误。问题发生在
如何从 llvm pass 检查 -g 标志(调试信息启用)是否已设置
如何从我正在编写的 llvm pass 中检查 -g 标志(调试信息启用)是否已设置? 我只是想看看是否有办法通过我的通行证获取命令行选项,包括 -g。
ld:警告:重新导出的库 libunwind.1.dylib 无法与任何父库匹配
我正在尝试在 macOS Sonoma (14.6) 上设置 C++20 开发环境。 我已经用 Homebrew 安装了 llvm 和 cmake。铿锵版本信息: 自制铿锵版本 18.1.8 目标:arm64-apple-darw...
我的环境是wsl2 Ubuntu22.04 LTS,编译器是clang-18.1.8,ld是LLD 18.1.8 但是,当我编译程序时,ld 输出: : && /usr/local/bin/clang++ -fPIC -stdlib=libc++ -g -Wa...
我注意到 clang 文档没有指定 clang 在相关标准中指定为实现定义的情况下的行为方式。 所以很难组织 LLVM 的实现方式...
我使用的是 Linux Mint,并且使用 Clang Complete 中的 makefile 安装了 clang_complete,但它不起作用。当我打开cpp文件时,出现错误消息: 加载 libclang 失败,完成...
clang 编译器结构打包 - 始终填充到 2 字节 简而言之:我无法让我的 clang 编译器将 lwip 中的 Packed_struct_test 测试结构打包为 5 个字节。它总是显示 6 字节。 细节: 他...
zig cc 和使用 zig build 构建 c 之间的区别
我一直在尝试将旧的 vms-empire 游戏移植到 zig,或者至少使用 zig 构建。经过一些清理后,我进入了可以在 makef 中使用 zig cc 而不是仅仅 cc 的阶段...
clang 找不到 libstdc++,但 libc++ 可以工作
操作系统:ubuntu22.04 目标:在 neovim 中使用 LSP 和 clangd 问题:无法找到“iostream” ,我生成了一个compile_commands.json,但它也不起作用。 $ catcompile_commands.json [ { &...
我正在尝试使用 clang* 编译以下代码,有什么帮助吗? typedef 结构体 A { 整数值; } A; typedef 结构 B { 一个; } B; int 主(无效){ 偏移量(B,A); ...
在循环中使用 __atribute__((noreturn)) ?
是否有编译器属性(clang / gcc)可以执行类似 noreturn 但 for 循环的操作? 像这样的东西: __atribute__((loopsnoreturn)) for (int i=0; i<12; 是否有编译器属性(clang / gcc)可以执行类似 noreturn 但 for 循环的操作? 类似: __atribute__((loopsnoreturn)) for (int i=0; i<12; <i++) { if(i==5) return 0; //< Compiler error } 如果循环只能通过return退出,那么循环条件i<12一定是多余的,你可以将其简化为1。这应该足以让编译器意识到循环后的代码是不可访问的,并具有您似乎期望的优化效果。 否则,您也可以在循环后使用 __builtin_unreachable(); 来告诉编译器无法到达循环后的路径。
使用 libgcc/compiler-rt 替代 GCC/Clang
我正在编写小型低级运行时库以获取乐趣。 根据 libgcc 网站,低级运行时库是编译器在需要执行时生成对其例程的调用的库...
我正在编写小型低级运行时库以获取乐趣。 根据 libgcc 网站,此类库是编译器用来执行某些过于复杂而无法发出的操作的库
我应该使用 #include 调用哪个头文件才能使用 PATH_MAX 作为 int 来调整字符串大小? 我希望能够声明: 字符*当前路径[PATH_MAX]; 但是当我这样做时,我的编译器(
在我正在开发的 Borland C++Builder 非现代 64 位代码库 (bcc64) 中,许多类定义发出以下警告: 警告 W7041:接口“XXX”并非源自 IUnknow...
如何使用 clang-format 将预处理器指令 (#) 与代码块对齐?
我正在使用 clang-format 来格式化我的 C++ 代码。但是,我想将预处理器指令(包括 # 符号)与周围的代码块对齐。目前,clang-format 对齐了指令