linuxのメモ

Linux kernelの実装を解説していきます (対象ver 4.5)

エラー出力 - __compiletime_assert()

概要

コンパイル時にエラーを表示するコードを挿入する

詳細

このマクロでは引数として以下の値を受け取る

  • 実行時の状態を示す : condition
  • エラーメッセージを示す : msg
  • 実行する関数名のprefixを示す : prefix
  • 実行する関数名のsuffixを示す : suffix

prefixsuffixを文字列として連結したシンボルを__compiletime_error()msgを渡した関数として定義し、conditionが0の場合は定義された関数を実行し実行時にエラーを出力する

また、__compiletime_error_fallback()により__CHECKER__が有効な場合はコンパイル時にエラーを出力する