clang tidyでは、チェック[llvm-header-guard]はLLVMスタイルのヘッダーガードを探しますが、適切なLLVMヘッダーガードスタイルの例は見つかりません。具体的には、定義に与えられた名前の構造です。coding standardsページには何も言及されません。適切なLLVMヘッダーガードスタイルは何ですか?
答えて
テスト:
- https://github.com/llvm-mirror/clang-tools-extra/blob/master/unittests/clang-tidy/LLVMModuleTest.cpp
よく使用されるパターンにはいくつかのバリエーションがあります。名前のファイルinclude/llvm/ADT/foo.h
規則があると思われる場合:
#ifndef LLVM_ADT_FOO_H
#define LLVM_ADT_FOO_H
//...
#endif // LLVM_ADT_FOO_H
また、[HeaderGuard.cpp](https://github.com/llvm-mirror/clang-tools-extra/)の 'EndOfMainFile'のマクロチェックループを見て少し論理を拾うことができます。 blob/master/clang-tidy/utils/HeaderGuard.cpp)。そこで、ヘッダーガードを解析し、ガードを自動生成し、それらが同一であることを確認します。そうでなければ、それは警告です。 – paddy
おそらくLLVMコードベースはLLVMコーディング標準に準拠しているので、ガードの外観を知るために、いくつかのLLVMヘッダーファイルを見ることができます。ここで私は見ていくつかのランダムなLLVMのヘッダファイルです:これらのファイルに基づいて
https://github.com/llvm-mirror/llvm/blob/master/include/llvm/CodeGen/SelectionDAG.h
https://github.com/llvm-mirror/llvm/blob/master/include/llvm/Support/AlignOf.h
が、私は、ヘッダのガードはこのようになりますと思う:
ユニットを見て#ifndef LLVM_CODEGEN_SELECTIONDAG_H
#define LLVM_CODEGEN_SELECTIONDAG_H
...
#endif
私はdefineの名前の構造を探しています。リンクから、includeディレクトリからのパスのように見えます。それがLLVMによって綴られているのを見てうれしいです。 –
これは非常に良い答えです。 LLVMだけでなく、* ANY *コンパイラ、CまたはC++のための合理的な規則です。私は、これより複雑なことをするのは非常に賢明ではないと思う。 IMO ... – paulsm4
- 1. 不適切なリストは何ですか?
- 2. LLVMからWin32/64関数を呼び出す適切な方法は何ですか?
- 3. データレイヤから適切な量の抽象化は何ですか?
- 4. PHP/Apacheでのアップロードフォルダの適切な権限は何ですか?
- 5. Androidでのスレッドの適切な使い方は何ですか?
- 6. C++でのソフトウェアバージョンの適切なデータ型は何ですか?
- 7. 使用する適切なルーセンアナライザは何ですか?
- 8. ジェネリックメソッドをオーバーライドする適切な方法は何ですか?
- 9. ジキルをインストールする適切な方法は何ですか?
- 10. GUIを作成する適切な方法は何ですか
- 11. ゲームデータを保存する適切な方法は何ですか?
- 12. サーバに使用する適切なユーザエージェントは何ですか?
- 13. jquery.inputmaskをインポートする適切な方法は何ですか?
- 14. constを追加する適切な方法は何ですか?
- 15. Django_comments:post_comment()をオーバーライドする適切な方法は何ですか?
- 16. 宝石をダウングレードする適切な方法は何ですか?
- 17. ユーザープロファイルを登録する適切な方法は何ですか?
- 18. アプリケーションログを保存する適切な場所は何ですか?
- 19. デリゲートをサブクラス化する適切な方法は何ですか?
- 20. 壁をUVマップする適切な方法は何ですか?
- 21. AppBarを修正する適切な方法は何ですか?
- 22. Erlangをインデントする適切な方法は何ですか?
- 23. [NSString stringWithFormat:]をラップする適切な方法は何ですか?
- 24. 3ノードクラスタをシードする適切な方法は何ですか?
- 25. FB.Event.subscribeを処理する適切な方法は何ですか?
- 26. ダイナミックアレイを削除する適切な方法は何ですか?
- 27. ICpをシャットダウンする適切な方法は何ですか?
- 28. 外部(YouTube)ビデオの適切なog:video:タイプは何ですか?
- 29. 次のコードスニペットの適切なnunitテストケースは何ですか?
- 30. RawRabbitの適切な名前空間とアセンブリは何ですか?
リンクによると、 'LLVM-ヘッダ-guard'が付着していないものを修正するので、あなたはそれを実行し、結果を見て持っているのだろうか?また、既存のLLVMヘッダーを調べて、それらの外観を確認することもできます。 – JAB