5

この関数を使用して gcc クロス コンパイラで変換された PowerPC アセンブリ コードがいくつかあります。

uint32_t fill_cache(void)
{
    __asm__ ("addi 3, 0, 0\n");  /* R3 = 0 */
    /* More asm here modifying R3 and filling the cache lines. */
}

これは、PowerPC EABI の下で、R3 で計算された値を返します。コンパイルすると、

foo.c:105: warning: control reaches end of non-void function

値が実際に返されることをgccに教える方法はありますか? または、警告を抑制する方法はありますか (-Wall を削除したり、-Wno-* を追加したりせずに)? 一般的な警告レベルを可能な限り高くするために、この関数のみのこの警告を非常に選択的に抑制したいと思います。

この関数が void を返すようにすることはオプションではありません。これは、計算された値が呼び出し元によって必要とされるためです。

4

2 に答える 2