翻譯|行業(yè)資訊|編輯:莫成敏|2019-11-01 11:51:12.850|閱讀 631 次
概述:PC-lint Plus是C和C ++的首選靜態(tài)分析工具。在PC-lint Plus v1.3版本中,修復(fù)了與返回的類對(duì)象的成員初始化有關(guān)的誤報(bào)等內(nèi)容,內(nèi)容較多,本文是上半部分內(nèi)容~
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
PC-lint Plus是一種靜態(tài)分析工具,通過分析C和C ++源代碼來發(fā)現(xiàn)軟件中的缺陷。與編譯器一樣,PC-lint Plus會(huì)解析源代碼文件,執(zhí)行語(yǔ)義分析,并構(gòu)建一個(gè)抽象語(yǔ)法樹來表示程序。PC-lint Plus采用各種機(jī)制,包括數(shù)據(jù)流分析,數(shù)值跟蹤,讀寫分析,強(qiáng)類型檢查,功能語(yǔ)義驗(yàn)證和許多其他技術(shù),來提供對(duì)單個(gè)文件和整個(gè)項(xiàng)目強(qiáng)大而全面的分析。在新版本中,修復(fù)了修復(fù)了與返回的類對(duì)象的成員初始化有關(guān)的誤報(bào)等內(nèi)容。
修復(fù)BUG:
PCLP-1806 修復(fù)與返回的類對(duì)象的成員初始化有關(guān)的誤報(bào)
修復(fù)了與函數(shù)返回的類對(duì)象的成員的初始化狀態(tài)有關(guān)的消息530的誤報(bào)實(shí)例。
PCLP-1835 內(nèi)部錯(cuò)誤A9BE308E(100829)與使用定義選項(xiàng)和預(yù)編譯的頭文件有關(guān)
修復(fù)了使用定義選項(xiàng)定義預(yù)編譯頭文件中使用的宏時(shí)可能遇到的內(nèi)部錯(cuò)誤。
PCLP-1972 誤報(bào)1762
PCLP-2612 消息1762(成員函數(shù)可以是常量)被錯(cuò)誤地發(fā)出并且為通過一個(gè)成員變量的地址作為在通過函數(shù)指針進(jìn)行的呼叫參數(shù)的成員函數(shù)。此問題已得到解決。
PCLP-2036 識(shí)別嵌套的switch語(yǔ)句無條件地轉(zhuǎn)移控制權(quán)導(dǎo)致了在封閉switch語(yǔ)句后語(yǔ)句的不可達(dá)性的情況
修復(fù)了在內(nèi)部switch語(yǔ)句之后的情況下,最外層switch語(yǔ)句中消息616和825的誤報(bào)情況,該情況由于內(nèi)部嵌套的switch語(yǔ)句無條件地轉(zhuǎn)移了控制,從而無條件地轉(zhuǎn)移了控制權(quán)。相反,如果在此類switch語(yǔ)句后出現(xiàn)無法訪問的代碼,則現(xiàn)在將發(fā)出消息527。
PCLP-2227 名稱處理錯(cuò)誤,C ++模板參數(shù)中的C復(fù)合文字沒有類別
由于在C ++模板參數(shù)中使用C復(fù)合文字而無法將名稱修改應(yīng)用于聲明的情況下,將不再發(fā)出消息號(hào)為0且沒有類別的錯(cuò)誤。 現(xiàn)在將發(fā)出錯(cuò)誤消息180。
PCLP-2459 False positive981,用于在C語(yǔ)言中強(qiáng)制轉(zhuǎn)換為_Bool
在C語(yǔ)言中,將類型為int的布爾運(yùn)算符轉(zhuǎn)換為_Bool時(shí),將不再報(bào)告消息981。
PCLP-2521 在C ++ 17模式下遵守冗余列表初始化
以A a {A {42,1984}}等方式初始化的結(jié)構(gòu);使用-std = c ++ 17時(shí),將不再錯(cuò)誤地報(bào)告為未初始化某些成員。
PCLP-2560 zero_err和+ zero_err選項(xiàng)支持的警告級(jí)別
-zero_err和+ zero_err被記錄為除了消息編號(hào)之外還支持帶有w前綴的警告級(jí)別參數(shù),但是這些選項(xiàng)實(shí)際上并未接受該語(yǔ)法。 這些選項(xiàng)現(xiàn)在支持指定已記錄的警告級(jí)別。
PCLP-2598False positive1762,用于在成員表達(dá)式中調(diào)用非常量函數(shù)
當(dāng)函數(shù)包含作為較大成員表達(dá)式一部分的對(duì)非const函數(shù)的調(diào)用時(shí),有時(shí)會(huì)錯(cuò)誤地發(fā)出誤報(bào)
1 struct S { int x; }; 2 3 struct A { 4 S f(void); 5 }; 6 7 class B : public A { 8 void g(void) { 9 f().x; 10 } 11 };
盡管它調(diào)用了非常量成員函數(shù)A :: f,但這將導(dǎo)致為B :: g發(fā)出1762。此問題已經(jīng)修復(fù)了。
PCLP-2621不會(huì)報(bào)告靜態(tài)本地符號(hào)的問題522/714/729/759/765
消息522(未訪問外部變量)、714(未引用外部符號(hào))、729(未顯式初始化外部變量)、759(可將符號(hào)的標(biāo)頭聲明從標(biāo)題移至模塊)和765(可將外部符號(hào)設(shè)為靜態(tài)) 旨在發(fā)布具有外部鏈接的符號(hào)。具有外部可見性但沒有外部鏈接的靜態(tài)局部符號(hào)(例如,內(nèi)聯(lián)C ++函數(shù)中的靜態(tài)局部變量)有時(shí)會(huì)錯(cuò)誤地引發(fā)這些消息。此問題已經(jīng)修復(fù)了。
PCLP-2624 消息967并非總是在預(yù)期時(shí)發(fā)出
修復(fù)了消息967(頭文件沒有標(biāo)準(zhǔn)的包含保護(hù))在預(yù)期時(shí)并非總是發(fā)出的錯(cuò)誤。
PCLP-2626 消息1790應(yīng)該考慮間接基類
現(xiàn)在,消息1790會(huì)考慮間接基類中的虛函數(shù),而不僅僅是直接基類。正如消息標(biāo)題中所反映的,要發(fā)出此消息,即時(shí)基必須仍然是公共的,但是私有虛擬函數(shù)(和私有間接基)將被考慮,因?yàn)樗鼈內(nèi)匀豢梢员桓采w。
PCLP-2649 誤報(bào)527,switch語(yǔ)句主體內(nèi)的控制結(jié)構(gòu)中的跳轉(zhuǎn)語(yǔ)句
消息527將不再報(bào)告在某些情況下switch語(yǔ)句結(jié)束后的語(yǔ)句是不可訪問的,這是因?yàn)橥ㄟ^該交換機(jī)的唯一未將控制權(quán)轉(zhuǎn)移到下一條語(yǔ)句的路徑包含在if語(yǔ)句內(nèi)的continue語(yǔ)句或goto語(yǔ)句,拋出或在for或while語(yǔ)句中返回。
交換機(jī)內(nèi)goto的行為已更新,可以避免誤判,類似于在中斷或繼續(xù)時(shí)發(fā)生的誤報(bào)。
本文內(nèi)容就是這樣了,希望文章內(nèi)容對(duì)您有所幫助!后續(xù)小編將會(huì)更新“修復(fù)的bug”下半部分內(nèi)容,敬請(qǐng)期待哦~感興趣的朋友可以下載PC-lint Plus最新版搶先體驗(yàn)~
相關(guān)內(nèi)容推薦:
C和C ++的靜態(tài)分析工具PC-lint Plus v1.3更新內(nèi)容:新消息摘要
想要購(gòu)買PC-lint Plus正版授權(quán),或了解更多產(chǎn)品信息請(qǐng)點(diǎn)擊
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn