我有一個遺留的c項目與許多類型轉換和鑄件。通常檢查溢出動態行爲,gcc(和C朗)定義了一個內置函數:使用gcc捕獲類型轉換溢出
內置函數:布爾__builtin_add_overflow(TYPE1一個,2型B,類型3 * RES)
如果結果溢出,則函數返回true。然後我的計劃可能會抓住這種情況並採取相應的行動
爲了在不更改任何遺留代碼的情況下具有相同的功能,是否可以指示gcc使用此類內置函數並調用提供的函數作爲捕獲器(如果內置函數返回true)?我希望我能找到的東西,如:
無效_cyg_add_overflow_catcher(A,B,__FILE,LINE);
GCC已經可以instrument functions,爲了追蹤和分析,所以這個概念並不奇怪。 任何想法?
有沒有可能簡單地使用[UBSan](http://developers.redhat.com/blog/2014/10/16/gcc-undefined-behavior-sanitizer-ubsan)? – yugr