翻譯|行業資訊|編輯:莫成敏|2020-01-08 15:12:33.523|閱讀 545 次
概述:在PC-lint Plus最新版本中,PC-lint Plus產品更新了很多新功能,跟著小編來了解一下吧~
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
PC-lint Plus是一種靜態分析工具,通過分析C和C ++源代碼來發現軟件中的缺陷。與編譯器一樣,PC-lint Plus會解析源代碼文件,執行語義分析,并構建一個抽象語法樹來表示程序。PC-lint Plus采用各種機制,包括數據流分析,數值跟蹤,讀寫分析,強類型檢查,功能語義驗證和許多其他技術,來提供對單個文件和整個項目強大而全面的分析。
在PC-lint Plus最新版本中,PC-lint Plus產品更新了很多新功能,跟著小編來了解一下吧~(更新內容較多,新功能分為上下兩篇)
默認情況下,新標志ffi為OFF。啟用后,顯示較大整數值和范圍的Value Tracking消息將相對于附近的有符號或無符號整數類型限制進行格式化。例如,5 +(uint32_t)-1將顯示為(UINT32_MAX + 5),而2147480000將顯示為(INT32_MAX-3647)。
可以將正值與有符號或無符號類型限制進行比較,而與值表達式類型的有符號性無關。負值將僅相對于有符號整數類型最小值顯示。值可以完全匹配限制,也可以在任一方向上偏移。偏移量受限制的平方根大小限制(例如,將32位限制限制為16位偏移量)。不符合相對格式標準的整數仍將按字面意義打印。范圍的每一側都被獨立考慮。根據值,可以相對格式顯示一個、兩個或兩個都不顯示。
新的au-certc.lnt作者文件(在PC-lint Plus發行版的lnt /目錄中)支持CERT C。
現在,“值跟蹤”將跟蹤從地址運算符的應用派生到非靜態成員的合格名稱所得出的指針成員類型的對象的值,并評估指針成員運算符*和-> *。
默認情況下,新標志fcv為OFF。啟用該選項后,如果對參數的唯一引用是強制轉換為void,則PC-lint Plus不會報告該參數可以設為const(或指向const的指針等)。
imposter實用程序現在支持新選項,以處理涉及相對路徑到絕對路徑的編譯器參數轉換。
PC-lint Plus現在支持某些嵌入式編譯器使用的特殊0.NaN和0.Infinity浮點常量。
當使用似乎包含副作用但未擴展相應參數的參數調用類似函數的宏時,會發出新的警告2666,例如:
#define DEBUG_VAL(x) int process(int i) { DEBUG_VAL(++i); // 2666 - increment doesn’t occur /* ... */ return i; }
現在,當預處理指令出現在函數調用中時,將發布新的選修注釋9501,例如:
void init_buffer(void *buffer) { memset(buffer, 0, #ifdef LARGE_BUFFER 1024 #else 128 #endif );
現在,當宏定義中出現不帶括號的一元運算符時,將發出選修注釋973,例如:
#define N -1
消息823將報告以分號結尾的宏定義,例如
#define SQUARE(x) ((x)*(x));
將報告:
info 823: definition of macro ’SQUARE’ ends in semi-colon #define SQUARE(x) ((x)*(x)); ^
過時的“struct hack”技術用于聲明可變長度的結構或聯合成員。該技術已被C標準中的“靈活的數組成員”所取代。當檢測到這種“struct hack”時,新消息9040將報告。
當do-while(0)循環中未包含多語句宏時,新消息9502將報告。
添加了新消息3419(類型為type的靜態數據成員符號的類初始化器是GNU擴展),以警告為C++03模式中的浮點類型的靜態數據成員提供類初始化器的不可移植的行為。
此版本的PC-lint Plus使用發行版的lnt /目錄中包含的au-barr.lnt文件,支持Barr Group的“嵌入式C編碼標準” BARR-C:2018。 BARR-C:2018是PC-lint 9支持的Netrino編碼標準的更新版本。與Netrino提供的PC-lint 9相比,PC-lint Plus為該版本提供了更大的支持。
新功能語義:
-async_signal_safe:可在信號處理程序中安全調用,抑制了2670和2761-async_signal_unsafe:在信號處理程序中調用不安全,觸發2670
-signal_handler:將函數標記為信號處理程序
-exception_signal_handler:除了signal_handler之外,還觸發2671和2764
-signal_register(n):參數n將使用前面參數的信號編號注冊為信號處理程序,以確定是否為異常信號注冊了信號處理程序新消息:
-2670:當具有signal_handler語義的函數調用具有async_signal_unsafe語義的函數時發出
-2761:當具有signal_handler語義的函數調用不具有async_signal_safe語義的函數時發出
-2762:當具有signal_handler語義的函數調用具有信號函數的特殊語義的函數時發出
-2763:當具有signal_handler語義的函數調用具有信號函數的特殊語義的函數來注冊自身時發出
-2671:當具有exception_signal_handler語義的函數包含return語句時發出
-2764:當具有exception_signal_handler語義的函數似乎沒有顯式結束程序時發出
-2765:當具有signal_handler語義的函數引用的共享變量不是_Atomic,std :: atomic或volatile sig_atomic_t時,發出當調用rand / random但從未調用srand / srandom時,將發出新消息2461。當調用srand/srandom并給出時間結果時,將發出新的消息2760。一個新的論點語義,名義上,已被添加。如果具有名義語義的參數的自變量是文字(整數、浮點、字符或字符串),則將發出新消息2460。如果具有名義語義的參數的參數是整數常量表達式,則將發出新消息2960。
在此版本中,PC-lint Plus新功能更新得比較多,小編把這些內容分為上下兩篇,想要了解后半部分內容請繼續關注我們網站~您也可以下載PC-lint Plus最新版免費評估~
相關內容推薦:
C和C ++的靜態分析工具PC-lint Plus v1.3更新內容:新消息摘要
C和C ++的靜態分析工具PC-lint Plus v1.3更新內容:修復錯誤(上)
C和C ++的靜態分析工具PC-lint Plus v1.3更新內容:修復錯誤(下)
C和C ++的靜態分析工具PC-lint Plus v1.3更新內容:文檔改進
想要購買PC-lint Plus正版授權,或了解更多產品信息請點擊
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: