2013-07-09 29 views
3

Clang has several kinds of diagnostics,其中三種主要類型是錯誤,警告和註釋。是否有一個Clang診斷只是一個音符?

注通常伴隨一定的警告和錯誤,如重複定義:

error: conflicting types for 'square' 
static double square(double x) { 
      ^
note: previous declaration is here 
static int square(int x); 
     ^

我想知道的是,它鏘有任何診斷,尤其是對的Objective-C或C,但我會解決對於C++來說,如果我必須 - 只包含便箋,沒有相關的錯誤或警告?

回答

4

http://clang.llvm.org/docs/InternalsManual.html#the-diagnostic-kinds-td-files說:

這些嚴重性由 診斷子系統映射到一個較小的集(診斷::級別 枚舉,{忽略,注意,警告,錯誤,致命})的輸出電平基於各種配置選項。 Clang 內部支持完全精細的映射機制,允許您將幾乎任何診斷映射到您想要的輸出級別。 無法映射的唯一診斷是NOTE,它總是 遵循以前發出的診斷和錯誤的嚴重性 ,它們只能映射到致命(例如,不可能將錯誤 變成警告) 。

因此不幸的是沒有;如果沒有黑客Clang本身,你無法做到這一點。注意僅用於鏈接到其他診斷。我會用LLVM跟蹤器提交一個錯誤;這絕對是有用的功能。

+1

出於好奇,你認爲他們有什麼用處? – rodrigo

相關問題