編譯器通常會提供一個switch to warn when code is unreachable。我也看到一些庫的宏,它們提供assertions for unreachable code。如何向GCC提示一行應該無法訪問?
有沒有提示,比如通過一個編譯指示或內建函數,我可以傳遞給GCC(或者其他任何編譯器),如果確定預期的行將會在編譯期間發出警告或錯誤實際上無法達到?
下面是一個例子:
if (!conf->devpath) {
conf->devpath = arg;
return 0;
} // pass other opts into fuse
else {
return 1;
}
UNREACHABLE_LINE();
的這個值是在檢測,在預期可達線以上條件的變化後,該線實際上可到達的。
我想要注意的是'-Wunreachable-code'選項在gcc的後續版本中被刪除(因爲在不同的優化選項下它是高度不可預測的) – Hasturkun 2015-07-26 08:13:17