タグ

ブックマーク / w.atwiki.jp (2)

  • sparse - 組み込み Linux 開発の手引き - アットウィキ

    #Contents() * sparseプログラムについて sparseプログラムは、Linuxカーネルで使用されているソースコードチェッカーです。 sparseプログラムは、静的にプログラムをチェックし、間違いがあれば警告を出してくれます。Linuxカーネルのソースコードにおいて、ユーザ空間へのポインタとカーネル空間へのポインタが混在してしまっていたのをチェックするために、Linusが2003年に最初に作ったみたいです。 sparseのソースコードは、[[こちら>https://sparse.wiki.kernel.org/index.php/Main_Page]] * 使い方 まだよく調べていませんが、sparce ソースコード名 とすればチェックしてくれるようです。 Linuxカーネルのソースコードに対してsparseしたいときには、make C=2 とします。 チェックされる項目は

    sparse - 組み込み Linux 開発の手引き - アットウィキ
    hiboma
    hiboma 2014/01/21
    __user, __iomem,
  • GCC拡張命令 - 組み込み Linux 開発の手引き - アットウィキ

    * GCC拡張命令 GCCでしか使えない拡張命令が存在します。移植性は下がりますが、拡張命令によってGCCに情報を伝えることで、GCCはより最適化されたコードを吐き出せるようになります。 * &html(__attribure__((noreturn))) &html(__attribute__((noreturn)))付きで宣言されている関数は、値を返さないことを明示的にコンパイラに伝えることができます。 これを、指定すると何が嬉しいかというと、GCCがプログラムをコンパイルするときに、関数からreturnした後の処理について全く考える必要がなくなるため、より最適化されたコードを吐くことが可能ということと、未初期化変数に関するWarningを回避することができます。 ** 例1 #include #include #ifdef NORETURN extern void func(void

    GCC拡張命令 - 組み込み Linux 開発の手引き - アットウィキ
    hiboma
    hiboma 2012/12/03
    __attribute___ ((noreturn)) 最適化ってこういうことだったのか
  • 1