8得票1回答
通过 LLVM Pass 识别用户自定义函数

有没有办法可以确定被调用的函数是用户定义的还是系统定义的? 例如: void foo() { printf("hello world again"); } int main() { printf("hello world\n"); foo(); } 就像这种情况,foo...

13得票2回答
Clang与VC++:“error: declaration of 'T' shadows template parameter”

我尝试在我的Mac上使用clang 3.3编译以下代码,该代码是关于经典的拷贝和交换惯用语的。 template<typename T> class node{ private: node<T>* left; node<T>* right...

7得票1回答
在LLVM IR中将文字值分配给本地变量

我一直在尝试将代码生成为LLVM IR,但有一些我不太理解的地方,就是本地变量何时必须分配以及如何将字面值加载到本地变量中。如果我将以下简单的C代码编译为LLVM IR: //test.c int main() { int x = 3; int y = x + 4; ...

8得票1回答
LLVM中的FunctionPass中的LoopInfo无法编译

我开始学习LLVM API,并写了我的第一个Pass。我的目标是打印函数之间的调用关系。 最近,我想在显示上添加一些循环信息,以查看一个函数是否可以被多次调用。但是当我尝试使用LoopInfo时,我遇到了这个编译错误: llvm[0]: Compiling cfg.cpp for Debu...

14得票1回答
在clang命令行上提供一个LLVM ModulePass

我有一个ModulePass可以在opt工具中使用,但我不知道该如何让它在clang命令行中可用。目前使用该pass的方法如下: clang -c -emit-llvm [c源代码文件] llvm-link [llvm位码文件] opt -load [PassName].so -[pass...

13得票1回答
什么是间接跳转语句?

在Clang API中,有GotoStmt和IndirectGotoStmt。这两种goto语句之间的区别几乎没有解释。我知道什么是goto label;语句。但是什么是间接goto语句?我想知道在C / C ++代码的上下文中它是什么意思,不仅仅是Clang。在语法上,拥有一个间接goto语...

7得票3回答
使用clang无法交叉编译到SPARC平台

这是情况:我需要能够从Linux机器(在Ubuntu上)编译二进制文件,这些文件可以从SPARC服务器运行。我正在尝试编译的程序非常简单: #include <stdio.h> #include <stdlib.h> int main() { printf(...

13得票1回答
在CMake中指定CUDA编译器

我正在尝试使用基于clang-3.9的文档构建一个cuda项目。但我想使用cmake来构建我的项目,已经将CMAKE_CC_COMPILER和CMAKE_CXX_COMPILER分别设置为clang和clang++。 但问题是,如果我使用file(GLOB_RECURSE CUDA_SOUR...

16得票5回答
为什么Objective-C没有API可用性检查?

Swift 2具有API可用性检查。 当使用针对最低目标操作系统过新的API时,编译器会报错。 为什么Objective-C编译器不能做到同样的事情呢? 我在Google上搜索Objective-C API可用性检查,只出现了Swift 2的结果,所以我认为Objective-C...

9得票3回答
使用OpenMP和llvm-clang

我尝试使用最新版本的clang(clang version 3.4.2(tags / RELEASE_34 / dot2-final))来使用OpenMP。按照编译和添加omp.h路径的过程,然后使用以下命令编译我的hello.c: clang -fopenmp hello.c 即使运行...