この関数を使用して 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 を返すようにすることはオプションではありません。これは、計算された値が呼び出し元によって必要とされるためです。