Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ llvm解释器能否处理c++;例外?_C++_Exception Handling_Llvm_Interpreter - Fatal编程技术网

C++ llvm解释器能否处理c++;例外?

C++ llvm解释器能否处理c++;例外?,c++,exception-handling,llvm,interpreter,C++,Exception Handling,Llvm,Interpreter,我的源代码如下: test.cpp: void func(){ throw "abc"; } int main(){ try{ func(); } catch(...){ } } 我用clang clang -S -emit-llvm test.cpp 然后用lli执行它: lli -force-interpreter test.ll 然后崩溃了: 以类型为char const* 我正在使用macbook(llvm3.6)。答案是肯定的 编译C++代码,使用代码> C

我的源代码如下:

test.cpp:

void func(){
   throw "abc";
}

int main(){
try{
   func();
}

catch(...){
}
}
  • 我用
    clang

    clang -S -emit-llvm test.cpp
    
  • 然后用
    lli
    执行它:

    lli -force-interpreter test.ll
    
  • 然后崩溃了:

    以类型为
    char const*

    我正在使用macbook(llvm3.6)。

    答案是肯定的

    • 编译C++代码,使用代码> CLAN++<代码>代替<代码> CLAN< /COD>
    • 删除选项
      -强制解释器
    • 添加选项
    我对你的测试做了一些修改:

    #include <stdio.h>
    void func(){
           throw "test";
    }
    
    int main(){
        try{
               func();
        }
    
        catch(...){
            printf("Gotcha\n");
        }
    }
    
    #包括
    void func(){
    抛出“测试”;
    }
    int main(){
    试一试{
    func();
    }
    捕获(…){
    printf(“明白了”);
    }
    }
    
    结果:

    $clang++-S-emit llvm test.cpp
    $lli-jit启用eh测试。ll
    明白了