問題タブ [llvm-clang]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
225 参照

llvm - LLVM: 関数の引数の場所を取得する (ABI)

LLVM プラグインを作成して、関数宣言ごとに、関数が持つ汎用レジスタ、XMM レジスタ、およびスタック引数の数を教えてください。これは、x86 SYSV 呼び出し規約でのみ機能する必要があります。これは現在可能ですか?もしそうなら、どんな方向でも大歓迎です。

0 投票する
0 に答える
595 参照

c++ - clang++ と g++ の両方でコンパイル中に c++ エラーが発生する

ユーザープログラムの制御フローを変更するプロジェクトに取り組んでいます。これにはllvmを使用しています。最後に、clang++ を使用して一連の .s ファイルを生成します。次に、g++ を使用してそれらをすべてマージします。この段階で多くのエラーが発生するため、(g ++の代わりに)clang ++を使用できません(これは現在の問題ではありません)

C プログラム (gcc および clang) の場合、問題なく動作しています。しかし、C++ ユーザー コード (g++、clang++) の場合、実行時に次のエラーが発生します。

g++ -O3 -rdynamic *.s -o main.exe -Wa,-Iressource -lstdc++ -lm -ldl

私のインターネットでの検索によると、ほとんどの人にとって、(clang++ の代わりに)clang を使用しているため、このエラーが発生しました。

クラン

clang --version clang バージョン 3.1 (ブランチ/release_31)

ターゲット: x86_64-unknown-linux-gnu

スレッドモデル: posix

g++

g++ --バージョン

g++ (Ubuntu/Linaro 4.7.3-1ubuntu1) 4.7.3

実際の問題がどこにあるのかわかりません。しかし、単純に clang++ を使用して *.s ファイルを生成し、次に g++ を (llvm パスなしで) 使用すると、正常に動作することがわかっています。llvm は最後まで文句を言わず、g++ は文句を言うので、実際のエラーがどこで発生したかはわかりません。前に述べたように、元のコードが (clang と gcc を使用して) "C" である場合、問題なく動作します。

続行方法や問題を解決するための解決策についてのヘルプをいただければ幸いです。

特に(このコンテキストで)につながる可能性があるもの

  1. __cxx_global_var_init への未定義の参照
  2. をキーとするグローバル コンストラクタ
0 投票する
0 に答える
379 参照

flush - __gcov_flush を使用してすべてのバッファをフラッシュするにはどうすればよいですか?

__gcov_flush はどのように使用できますか? 私のアプリでは、uncaughtException をキャッチし、ハンドラーで __gcov_flush 関数が呼び出されました。誰かがそれはバグだと言いました( http://llvm.org/bugs/show_bug.cgi?id=15191 )が、すべてのバッファをフラッシュするにはどうすればよいですか?

0 投票する
1 に答える
358 参照

c++ - コンパイル方法C++11 を有効にした xcode 4.6.2 で

< Functional > (標準ヘッダー) を含む .mm ファイルがあり、次のエラーが報告されます。

コマンドラインは

回避策はありますか?

0 投票する
1 に答える
229 参照

llvm - llvm-clang を使用して完全な分析を作成する


研究アイデアの一環として、次のタスクを実行する必要があり
ます。 1. 手元にある C ファイルを解析して、llvm-IR を取得します。
2. IR の分析を行います。場合によっては、いくつかの命令または BB を追加および削除し
ます。 3. x86 実行可能ファイルまたは C のいずれかを発行します (後で決定する必要があります)。

これは、C で分析を作成する人にとって非常に一般的なタスクだと思います。これらのタスクはすべて C/C++ で実行したいと考えています (研究コードのほとんどは C/C++ で作成されているため)。タスク 2 と 3 では多くのドキュメントを利用できますが、タスク 1 で利用できるドキュメントはほとんどありません。

これらのタスクをパイプラインとしてフックしたいのですが、これに関する提案も大歓迎です。

-ありがとう

0 投票する
1 に答える
2073 参照

ios - Clang Analyzer を使用してレポートを生成する - scan-build

私は Clang アナライザーを初めて使用し、scan-build を使用してレポートを生成しようとしています。以下のようにスキャンビルドを使用している間:

私は常に以下のエラーが発生しています:

この問題の解決を手伝ってください。

0 投票する
1 に答える
1046 参照

libgdx - RoboVM: robovm プロジェクトの実行中にエラーが発生しました

私の目標は、libgdx ゲームを iOS に移植することです。http://www.robovm.org/docs.htmlのインストール手順に従いました

指示に従って、clang と robovm をインストールします。

robovm プラグインがインストールされた Eclipse から、iOS シミュレーター アプリを実行すると、次のエラー メッセージが表示されます。ターミナルから単一の Java クラス ファイルを変換する場合も同様です。

0 投票する
1 に答える
349 参照

clang - if ステートメントの then 部分の正しい行番号を出力できない、Clang

次のコードでは、clang API を使用して C コードを解析してから、

1) コードに HTML ヘッダーとフッターを追加して、ブラウザーで表示できるようにします。

2) IF ステートメントの THEN 部分の行番号を取得して出力します。

(2)で困っています。私は出力を理解することができません。次の入力 (行番号が追加されています) については、(関連する) 出力を次のように取得しています。

行番号は 6

行番号は 6

行番号は 6

行番号は 6


行番号は 12 です

行番号は 12 です

行番号は 12 です

行番号は 12 です


それぞれ 4 と 8 になると思います。誰かが私が間違っている場所を説明できますか?

私の入力は次のとおりです(行番号を削除するか、http://pastebin.com/hF5yMMAzにアクセスしてください)

%nl myinput.c

10 }

11

12 リターン 0;

13 }

私のコードは次の場所にあります (1 つのファイルのみ) http://pastebin.com/txF9Bwa4

コードをコンパイルするには、次のコマンドを実行します。

CLANG_INSTALL=/usr/installdir/

g++ -I$CLANG_INSTALL/include/ -D_DEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -g -fvisibility-inlines-hidden -fno-exceptions -fno-rtti -fno-common -Woverloaded-virtual -Wcast-qual -fno-rtti -c -o rewritersample.o rewritersample.cpp

g++ -g -I$CLANG_INSTALL/include/ -o rewritersample rewritersample.o -lclangTooling -lclangFrontendTool -lclangFrontend -lclangDriver -lclangSerialization -lclangCodeGen -lclangParse -lclangSema -lclangStaticAnalyzerFrontend -lclangStaticAnalyzerCheckers -lclangStaticAnalyzerCore -lclangAnalysis -lclangARCMigrate -lclangRewriteFrontend -lclangRewriteCore -lclangEdit -lclangAST -lclangLex -lclangBasic -lLLVMIRReader -lLLVMBitReader -lLLVMAsmParser -lLLVMHexagonCodeGen -lLLVMHexagonAsmPrinter - lLLVMHexagonDesc -lLLVMHexagonInfo -lLLVMNVPTXCodeGen -lLLVMNVPTXDesc -lLLVMNVPTXInfo -lLLVMNVPTXAsmPrinter -lLLVMMBlazeDisassembler -lLLVMMBlazeCodeGen -lLLVMMBlazeDesc -lLLVMMBlazeAsmPrinter -lLLVMMBlazeAsmParser -lLLVMMBlazeInfo -lLLVMCppBackendCodeGen -lLLVMCppBackendInfo -lLLVMMSP430CodeGen -lLLVMMSP430Desc -lLLVMMSP430Info -lLLVMMSP430AsmPrinter -lLLVMXCoreDisassembler -lLLVMXCoreCodeGen -lLLVMXCoreDesc -lLLVMXCoreInfo-lLLVMXCoreAsmPrinter -lLLVMMipsDisassembler -lLLVMMipsCodeGen -lLLVMMipsAsmParser -lLLVMMipsDesc -lLLVMMipsInfo -lLLVMMipsAsmPrinter -lLLVMARMDisassembler -lLLVMARMCodeGen -lLLVMARMAsmParser -lLLVMARMDesc -lLLVMARMInfo -lLLVMARMAsmPrinter -lLLVMAArch64Disassembler -lLLVMAArch64CodeGen -lLLVMAArch64AsmParser -lLLVMAArch64Desc -lLLVMAArch64Info -lLLVMAArch64AsmPrinter -lLLVMAArch64Utils -lLLVMSparcCodeGen -lLLVMSparcDesc -lLLVMSparcInfo -lLLVMTableGen -lLLVMDebugInfo -lLLVMOption -lLLVMX86Disassembler -lLLVMX86AsmParser -lLLVMX86CodeGen -lLLVMSelectionDAG -lLLVMAsmPrinter -lLLVMX86Desc -lLLVMX86Info -lLLVMX86AsmPrinter -lLLVMX86Utils -lLLVMMCDisassembler -lLLVMMCParser -lLLVMInstrumentation -lLLVMInterpreter -lLLVMipo -lLLVMVectorize -lLLVMLinker -lLLVMBitWriter -lLLVMMCJIT -lLLVMJIT -lLLVMCodeGen -lLLVMObjCARCOpts -lLLVMScalarOpts-lLLVMInstCombine -lLLVMTransformUtils -lLLVMipa -lLLVMAnalysis -lLLVMRuntimeDyld -lLLVMExecutionEngine -lLLVMTarget -lLLVMMC -lLLVMObject -lLLVMCore -lLLVMSupport -L$CLANG_INSTALL/lib/ -lz -lpthread -lm -lLLVMCppBackendCodeGen -lLLVMCppBackendInfo -lLLVMTarget -lLLVMCore -VMlMMC -lLLVSupport ldl

コードを実行するには、コマンドは

$./rewritersample ./myinput.c

0 投票する
0 に答える
501 参照

ubuntu-12.04 - clangを使用してubuntuでobjective-c 2.0をコンパイルする

入手したもの: Ubuntu 12.04、clang、gnustep-devel、gnustep、libobjc2

だから私は簡単なプログラムをコンパイルしようとしています

このようにコンパイルします:clang prog.m -I /usr/include/GNUstep/ -D_NATIVE_OBJC_EXCEPTIONS -lgnustep-base -fconstant-string-class=NSConstantString 問題ありません。すべてが完璧で、正常に動作します

しかし、autoreleasepool を使用したい場合:

エラーが発生したのと同じ方法でコンパイルします。

私は長い間グーグルで検索しましたが、解決策が見つかりませんでした。誰かが同じ問題を解決したのでしょうか?