我在64位Windows 7系统上运行oracle VM Virtualbox 4.3.6。
VM是使用Debian i386 7.3 DVD创建的,这是一个全新安装。
编译了LLVM 3.3,然后编译了Clang 3.3。
尝试运行clang二进制文件来编译一个简单的程序(int main(){return 1;})崩溃:
任何人都知道是什么给出了什么?
./ clang test.c clang-3.3:/home/kzvr/llfi/llvmsrc/lib/IR/Value.cpp:559:void llvm :: ValueHandleBase :: RemoveFromUseList():断言`VP.getPointer()&& VP.getPointer() - > HasValueHandle&& "指针没有使用列表!"'失败。 0 clang-3.3 0x0973d62a llvm :: sys :: PrintStackTrace(_IO_FILE *)+ 50 1 clang-3.3 0x0973d87d 2 clang-3.3 0x0973d284 3 0xb7761400 __kernel_sigreturn + 0 4 0xb7761422 __kernel_vsyscall + 2 5 libc.so.6 0xb74c6941 gsignal + 81 6 libc.so.6 0xb74c9d72 abort + 386 7 libc.so.6 0xb74bfb58 __assert_fail + 248 8 clang-3.3 0x096610ad llvm :: ValueHandleBase :: RemoveFromUseList()+ 103 9 clang-3.3 0x08d649f4 10 clang-3.3 0x093085e4 11 clang-3.3 0x09781560 12 clang-3.3 0x0977be5a clang :: CodeGen :: CodeGenFunction :: StartFunction(clang :: GlobalDecl,clang :: QualType,llvm :: Function *,clang :: CodeGen :: CGFunctionInfo const&,clang :: CodeGen :: FunctionArgList const& amp ;,clang :: SourceLocation)+ 692 13 clang-3.3 0x0977c929 clang :: CodeGen :: CodeGenFunction :: GenerateCode(clang :: GlobalDecl,llvm :: Function *,clang :: CodeGen :: CGFunctionInfo const&)+ 473 14 clang-3.3 0x0978dbc2 clang :: CodeGen :: CodeGenModule :: EmitGlobalFunctionDefinition(clang :: GlobalDecl)+ 650 15 clang-3.3 0x0978ae33 clang :: CodeGen :: CodeGenModule :: EmitGlobalDefinition(clang :: GlobalDecl)+ 383 16 clang-3.3 0x0978a849 clang :: CodeGen :: CodeGenModule :: EmitGlobal(clang :: GlobalDecl)+ 587 17 clang-3.3 0x097909d8 clang :: CodeGen :: CodeGenModule :: EmitTopLevelDecl(clang :: Decl *)+ 252 18 clang-3.3 0x0976d7e6 19 clang-3.3 0x0976c9df 20 clang-3.3 0x09a8d4d6 clang :: ParseAST(clang :: Sema&,bool,bool)+ 484 21 clang-3.3 0x099afde0 clang :: ASTFrontendAction :: ExecuteAction()+ 284 22 clang-3.3 0x0976beca clang :: CodeGenAction :: ExecuteAction()+ 1090 23 clang-3.3 0x099af995 clang :: FrontendAction :: Execute()+ 183 24 clang-3.3 0x0998b9b5 clang :: CompilerInstance :: ExecuteAction(clang :: FrontendAction&)+ 559 25 clang-3.3 0x09742469 clang :: ExecuteCompilerInvocation(clang :: CompilerInstance *)+ 939 26 clang-3.3 0x08878f0b cc1_main(char const * ,char const *,char const *,void *)+ 624 27 clang-3.3 0x088738a0 main + 523 28 libc.so.6 0xb74b2e46 __libc_start_main + 230 29 clang-3.3 0x08872261 堆栈转储: 0.程序参数:/home/kzvr/llfi/clang/bin/clang-3.3 -cc1 -triple i386-pc-linux-gnu -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -main -file-name test.c -mrelocation-model static -mdisable -fp-elim -fmath-errno -masm-verbose -mconstructor-aliases -fuse-init-array -target-cpu pentium4 -resource-dir / home / kzvr / llfi / clang / bin /../ lib / clang / 3.3 -internal-isystem / usr / local / include -internal-isystem /home/kzvr/llfi/clang/bin/../lib/clang/3.3/include - internal-externc-isystem / usr / include / i386-linux-gnu -internal-externc-isystem / include -internal-externc-isystem / usr / include -fdebug-compilation-dir / home / kzvr / llfi / clang / bin - ferror-limit 19 -fmessage-length 140 -mstackrealign -fobjc-runtime = gcc -fobjc-default-synthesize-properties -fdiagnostics-show-option -fcolor-diagnostics -backend-option -vectorize-loops -o / tmp / test- Gjdo7r.o -xc test.c 1.文件末尾的解析器 2. test.c:1:5:LLVM IR生成声明' main' 3. test.c:1:5:生成声明代码' main' clang-3.3:错误:无法执行命令:已中止 clang-3.3:错误:clang frontend命令因信号失败(使用-v查看调用) clang version 3.3(标签/ RELEASE_33 / final) 目标:i386-pc-linux-gnu 线程模型:posix clang-3.3:注意:诊断消息:请向http://llvm.org/bugs/提交错误报告,并包括崩溃回溯,预处理源和关联的运行脚本。 clang-3.3:注意:诊断信息:
请将以下文件附于BUG报告中: 预处理的源和相关的运行脚本位于: clang-3.3:注意:诊断消息:/tmp/test-jvuGLK.c clang-3.3:注意:诊断消息:/tmp/test-jvuGLK.sh clang-3.3:注意:诊断信息:
答案 0 :(得分:1)
修正了......
重新编译的clang将CMAKE_BUILD_TYPE = RELEASE传递给cmake ...
答案 1 :(得分:0)
很可能你的clang / llvm被你的系统gcc误编了。确保您没有使用列表中的任何损坏的gcc:http://llvm.org/docs/GettingStarted.html#broken-versions-of-gcc-and-other-tools