質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

コンパイラ

コンパイラは、プログラミング言語で記述したソースコードを、コンピュータの実行形式であるオブジェクトコードに変換するプログラムです。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Clang

Clangは、プログラミング言語 C、C++、Objective-C、Objective-C++ 向けのコンパイラである。

Q&A

0回答

3049閲覧

clang-tidyを実行するとclang-diagnostic-errorが出る

Advent

総合スコア9

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

コンパイラ

コンパイラは、プログラミング言語で記述したソースコードを、コンピュータの実行形式であるオブジェクトコードに変換するプログラムです。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Clang

Clangは、プログラミング言語 C、C++、Objective-C、Objective-C++ 向けのコンパイラである。

0グッド

0クリップ

投稿2020/08/28 12:13

C言語のプロジェクトに対して、変数や定数についての命名規則をチェックするために、clang-tidyを使おうとしています。
チェック項目を記した.clang-tidyファイルとコンパイルデータベースファイル(compile_commands.json)をルートディレクトリに置き、

gccでコンパイラしたcコードに対して以下コマンドを実行したところ、

D:\root\hoge\huga $clang-tidy source.c

このようなエラーが出てしまい、指定したチェック項目についての結果がかえって来ません。

22 warnings and 21 errors generated. Error while processing D:\root\hoge\huga\source.c error: too many errors emitted, stopping now [clang-diagnostic-error] error: unknown argument: '-tPPCE200Z420N3VFG' [clang-diagnostic-error] D:\root\hoge\fuga\osCompiler_DIAB.h:94:13: error: expected ';' after top-level asm block [clang-diagnostic-error] asm volatile osuint32 osGetSPR(const osuint32 SPRNumber) /* PRQA S 1503 */ ・・・以下似たようなエラー列挙・・・ Suppressed 22 warnings (22 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. Found compiler error(s).

といったエラーメッセージが出ます。
海外の質問サイト(https://stackoverflow.com/questions/56841014/disabling-clang-tidy-diagnostic
にて、
clang-diagnostic-error doesn't have anything to do with clang-tidy itself.
Those are compiler warnings and you cannot turn them off.
Clang-tidy needs the analyzed file to be compile-able to build an AST which it uses internally for the checks.
という記述が見つかりましたが、意味がよく把握できません。
コンパイル済みのコードを対象にするわけではないということなのでしょうか?

コンパイルそのものは通っているはずなので、clang-tidyに

Found

1```と言われてしまっているあたり、何か的外れなことをしているのかと思っているのですが... 2 3 4どなたかお詳しい方にアドバイスを頂ければ幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/08/31 09:48

全く知見もありませんが、妄想で話します。clang-tidyはlinterツールで、そのチェックをするためにAST(abstract syntax tree)を構築する必要があります。その構築にはコンパイルできるように解析されたファイルがいると書いてるように見えます。恐らくその解析されたファイルをclangが出力していて、そのときに当該エラーが吐かれているのではないでしょうか?何かの診断エラーのようですが、それが何かは知りません。 質問に書かれている内容から妄想した結果は以上です。何も調べてません。
Advent

2020/09/02 08:30

コメントを頂きありがとうございます。参考になります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問