由LLVM版本引发的诡异问题
LLVM提供了编译器基础设施,根据语法树可以方便的生成LLVM IR,然后编译成可执行文件。
然而在尝试创建一个函数时,发现无法获取函数参数值。代码如下:
1 2 3 4 5 6 |
|
此段代码非常简单,首先创建一个函数原型int fib(int n)
,使用原型创建实例,然后在
实例中获取第一个参数n
。然而执行到注释的语句时会出现空指针错误。
在此处浪费了许多时间,最终发现是由于LLVM版本错乱而引发的问题。我的开发环境是OS X、 Xcode。此前为了使用iPython安装了Anaconda,它自带了一份LLVM 3.3,并且设置了PATH 环境变量;而现在换成从Homebrew安装的LLVM 3.4.1,一切就正常了。