原創|產品更新|編輯:鄭恭琳|2020-07-06 10:49:30.743|閱讀 522 次
概述:1.3.5版本對PC-lint Plus進行了許多改進。包括:更新了AUTOSAR,MISRA C和MISRA C++,新消息和標志選項,對Visual Studio配置生成器GUI的改進等。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
功能改進
消息9019(#include之前的符號聲明)以前沒有報告出現在#include指令之前的聲明,如果先前的#include’d文件包含聲明。在這種情況下,信息9019將被報告。
新的部分“參數化抑制規則”記錄了重復/類似參數化抑制選項所涉及的一些時間細節。
消息2409以前從PC-lintPlus中刪除,但消息描述仍然出現在產品文檔和幫助設施中。這一點已得到糾正。
消息9076(cast涉及指向void以外的不完整類型的指針)以前只在cast中涉及的兩種類型都是指針時才發出。這導致在指向不完全類型和算術類型的指針之間進行轉換的錯誤否定,現在將被正確診斷。
對fai標志的描述已經更新,以反映過去對其行為的改進,如以前的修訂歷史中所記錄的那樣。
一些新的和缺失的CERTC指南被添加到au-certc.lnt作者文件以及相應的支持表中。新增加的指南有:PRE30-C、EXP11-C、EXP12-C、EXP13-C、EXP14-C、EXP15-C、EXP16-C、EXP19-C、EXP37-C和EXP39-C。
非變量函數現在支持-printf和-scanf選項以及printf和scanf語義。這允許例如,將printf和scanf語義以及相關的格式字符串檢查應用于從變量函數模板實例化的非變量函數,方法是使用具有相應語義選項的函數模板的名稱。
已經更新了編譯器.yaml數據庫,使得針對GCC、Clang和Microchip編譯器生成的編譯器配置現在包括以下抑制:
-emacro(160 523 505 866,assert)
此選項旨在抑制在GCC最近版本中實現的斷言宏擴展期間發出的消息。請注意,這種抑制適用于斷言宏的整個擴展,特別是如果提供給斷言的參數會引發這些消息之一,則它將在宏的擴展范圍內被抑制。可以通過從生成的編譯器配置文件中刪除這個-emacro選項來恢復以前的行為。
值跟蹤先前將積分值轉換為指針的結果解釋為只有當積分值為空指針常量時才產生空指針。雖然它不受C或C++標準的保證,但通常假設(通常但不一定是真的)內存中零指針的積分表示為零。當新標志fnz打開(默認)時,值跟蹤將將將等于零的積分值轉換為指針的結果視為產生空指針,即使積分值不是空指針常數。如果關閉標志,則前面的行為不變。例如,當+fnz打開并使用-vt_depth=2時,本例:
void invoke_callback(void(*cb)(unsigned int), unsigned int data) { cb(data); } void callback_handler(unsigned int data) { char* p = (char*)data; *p = 42; } int main() { invoke_callback(callback_handler, 0); }
現在將報告:
warning 413: likely use of null pointer ’p’ *p = 42; ^~ supplemental 894: during specific walk callback_handler(0) cb(data); ^ ... supplemental 831: cast from integer yields nullptr char* p = (char*)data; ^~~~~~~~~~~ ... supplemental 831: argument passing yields 0 invoke_callback(callback_handler, 0); ^
由pclp_config.py生成的Visual Studio2019的編譯器配置現在包括更多選項,以改進對Visual Studio2019更新16.4中標準庫的更改的支持。
使用pclp_config生成的IAR編譯器配置現在將包括對以前缺少的編譯器特定關鍵字的更好支持。 對以前錯誤包含在IAR ARM編譯器配置中的關鍵字的支持已被刪除。
消息336是在源文件中檢測到無效字符編碼時報告的,除非問題在字符串文字內。一個不同的錯誤報告在一個前綴字符串文字內的無效字符編碼,但在一個未前綴字符串文字內的無效字符編碼沒有發出消息。新消息2536報告了這個案例。
在“安裝和配置”一章中的一個新部分指定支持PC-lint Plus處理的輸入文件的文件編碼。
由pclpvscfg.exe實用程序生成的配置生成批處理文件現在可以識別具有相對路徑的cl.exe/I和-I選項,并將目錄轉換為絕對路徑。若要將此行為應用于其他cl.exe選項,或禁用此行為,請在IMPOSTER_PATH_ARGUMENT_RELATIVE_TO_WORKING_DIR_OPTION_INTRODUCERS中設置環境變量的新行批處理文件可以修改或刪除。
在生成Visual Studio編譯器函數時,為Visual Studio添加有關C++語言標準編譯器選項的注意事項
在創建gcc編譯器配置過程中,前面提到了使用pclp_config.py-編譯器選項。在創建VisualStudio編譯器配置的過程中也提到了它。
將空參數傳遞給+rw或-rw_asgn之前可能會導致所有保留的單詞注冊和任務,這些選項被忽略。這種對這些選項的誤用現在反而導致錯誤。
pclpvscfg.exe實用程序現在在請求選擇pclp_config.py時默認顯示自己的目錄。
更多更新詳情請查看后續更新內容詳解。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn