llvm-clang

    1熱度

    1回答

    如果I是llvm::Instruction型的,我們可以通過errs() << I; 打印出人類可讀的形式(文本表示)相同的我想要的分配完全相同的表述到std::string到C類型的字符串。我怎樣才能做到這一點?

    1熱度

    2回答

    here是一個C++(克利翁)項目的鏈接。我儘可能多地提煉/簡化了這個問題。 的問題是,在調試時,LLDB(3.9.0版本)崩潰。 步驟來重現崩潰: 開放項目與克利翁2017.1(使用內置LLDB調試) 編譯項目的main.cpp線 將斷點14 在調試模式下運行。 一旦你在第14行的斷點,然後輸出變量「an_integer」通過「打印an_integer」命令。 崩潰 的錯誤/崩潰報告: 斷言失敗

    2熱度

    1回答

    給定一個C++源代碼,我想找到每個函數寫入和讀取的類字段。使用Clang前端進行此操作的最佳方式是什麼? (我不是要求的所有步驟的詳細說明,但對於有效的解決方案的起點將是巨大的。) 到目前爲止,我試圖解析使用RecursiveASTVisitor語句,但保持跟蹤節點連接很困難。另外,我無法弄清楚如何保持跟蹤的東西象下面這樣: int& x = m_int_field; x++; 這清楚地修改

    1熱度

    1回答

    我正在嘗試創建分析密碼。我的代碼如下所示。我使用Adrian Sampson的方法來構建.so文件(https://www.cs.cornell.edu/~asampson/blog/llvm.html)。 #include "llvm/Pass.h" #include "llvm/IR/Function.h" #include "llvm/Support/raw_os

    2熱度

    1回答

    我正在學習編寫LLVM傳遞,試圖重現hello world示例。通hello.cpp看起來像: #include "llvm/Pass.h" #include "llvm/IR/Function.h" #include "llvm/Support/raw_ostream.h" using namespace llvm; namespace { struct Hello : p

    5熱度

    4回答

    的official LLVM 4.0 build for Windows與Visual Studio集成了多達到Visual Studio 2015年。不幸的是仍然不支持的Visual Studio 2017 當您嘗試設置項目的平臺工具集到LLVM-vs2014,它彈出一個錯誤。 你知道任何方式使它工作嗎?

    3熱度

    1回答

    我想寫一個LLVM傳遞,它將提取函數調用的參數。如果爭論是一個常數,我的目標是恢復常數。 紅外看起來像 %2 = call noalias i8* @malloc(i64 512) #3 LLVM的傳球看起來像 bool runOnFunction(Function &F) override { for (auto& B : F) { for (auto& I : B)

    0熱度

    1回答

    我需要在llvm傳遞期間提取目錄和文件名。 當前版本的llvm將getFilename和getDirectory從DebugLoc移動到DebugInfoMetadata。我無法直接在DebugLoc頭文件中找到類成員getFilename。因此,我該如何從指令轉到源代碼文件名和目錄。 http://llvm.org/docs/doxygen/html/classllvm_1_1DebugLoc.

    1熱度

    1回答

    我需要在我的LLVM傳遞中識別虛擬函數調用站點,並識別可能在運行時調用的候選函數。 class B { virtual void F() { // do something } }; class D : public B { void F() { // do something else } }; B* d = new D(); d->F(); 例如,對於給定的層

    0熱度

    1回答

    我想在Fedora 25上從源代碼編譯LLVM,Clang,OpenMP(來自LLVM項目)和libC++(libcxx)。默認GCC 6.3正在用於構建它們。我發出 cmake ../llvm -DCMAKE_BUILD_TYPE=Release -DLLVM_TARGETS_TO_BUILD="X86" 一切似乎順利,直到我得到 -- Performing Test LIBOMPTARGE