1

しばらく突っ込んできましたが、どこにも見つかりません。単純なパターンを示すcppcheckルールファイルの良い例を見つけました。

<?xml version="1.0"?>
<rule version="1">
  <pattern>if \( p \) { free \( p \) ; }</pattern>
  <message>
    <id>redundantCondition</id>
    <severity>style</severity>
    <summary>Redundant condition. It is valid to free a NULL pointer.</summary>
  </message>
</rule>

すべてのポインタに「p」という名前が付けられ、呼び出しが「無料」である限り、これはうまく機能します。'p'を任意の識別子に一致するように変更するにはどうすればよいですか?「「無料」または「削除」」を確認するにはどうすればよいですか?パターンはgrep/awk / sedパターンですか?

4

3 に答える 3

3

私は Cppcheck 開発者です。

Cppcheck はPCREを使用します。したがって、Perl の規則に従った正規表現を使用してください。

私は Perl の正規表現があまり得意ではないので、任意の識別子に一致させる方法/可能性についてはお答えできません (2 回一致する必要があるため)。

..少なくとも少しは役立つことを願っています。

于 2012-05-31T19:43:53.083 に答える
0

p をドット (.) に変更して、任意の文字を意味するようにします

于 2016-07-20T02:32:44.190 に答える