pclint

所属分类:编辑器/阅读器
开发工具:C++
文件大小:2959KB
下载次数:2693
上传日期:2005-08-09 11:45:07
上 传 者xawi2000
说明:  PClint,一个非常严格的C/C++编译器, 可以嵌入到VC.GCC等.它甚至能够检查出你C/C++代码中的内层泄漏问题,变量未初始化问题,不安全的使用指针等...微软公司把它作为代码检查工具,只有通过它才能正式发行
(PClint, a very strict C/C compiler, can be embedded into VC.GCC so. It can even check out your C/C code in the inner leakage, uninitialized variables, the use of unsafe pointer ... it as a Microsoft code inspection tools, it can be only through the official issue )

文件列表:
pclint\CONFIG.exe (520284, 2001-10-26)
pclint\lint-nt.exe (475136, 2001-11-21)
pclint\Lint.exe (475136, 2001-11-21)
pclint\lnt\au-ds.lnt (418, 1997-09-16)
pclint\lnt\au-misra.lnt (22350, 2001-10-04)
pclint\lnt\au-sm.lnt (6838, 2001-07-19)
pclint\lnt\co-arch.lnt (2808, 1998-12-10)
pclint\lnt\co-aztec.lnt (1762, 1997-09-22)
pclint\lnt\co-bc.lnt (5393, 1998-12-10)
pclint\lnt\co-bc4.lnt (7642, 2000-02-09)
pclint\lnt\co-bc4wi.lnt (3889, 1998-12-10)
pclint\lnt\co-bc5.h (783, 1997-06-04)
pclint\lnt\co-bc5.lnt (9497, 2000-05-18)
pclint\lnt\co-bcos2.lnt (7646, 2000-02-09)
pclint\lnt\co-bcwin.lnt (3667, 1997-09-22)
pclint\lnt\co-byte.lnt (1858, 2001-11-01)
pclint\lnt\co-c86.lnt (1762, 1997-09-22)
pclint\lnt\co-c86p.lnt (1338, 1997-09-22)
pclint\lnt\co-cb.lnt (7189, 2000-09-07)
pclint\lnt\co-cc386.lnt (3331, 1999-12-16)
pclint\lnt\co-cc86.lnt (2619, 1999-12-16)
pclint\lnt\co-cosm.lnt (2998, 2001-10-31)
pclint\lnt\co-desm.lnt (1600, 1997-09-22)
pclint\lnt\co-diab.lnt (2517, 2000-11-16)
pclint\lnt\co-dl.lnt (1443, 1997-09-22)
pclint\lnt\co-ec.lnt (1460, 1997-09-22)
pclint\lnt\co-frank.lnt (5811, 1999-02-18)
pclint\lnt\co-gnu.lnt (5828, 2001-10-31)
pclint\lnt\co-gnu3.lnt (6885, 2001-11-08)
pclint\lnt\co-hc.lnt (4821, 2000-02-09)
pclint\lnt\co-ht.lnt (1908, 2001-05-07)
pclint\lnt\co-iar.lnt (1776, 2001-10-31)
pclint\lnt\co-iar78.lnt (1828, 2001-07-26)
pclint\lnt\co-iar80.lnt (1854, 2001-07-26)
pclint\lnt\co-ibm32.lnt (5758, 1998-12-10)
pclint\lnt\co-ibmc2.lnt (1770, 1998-12-10)
pclint\lnt\co-icb.lnt (1472, 1997-09-22)
pclint\lnt\co-in.lnt (2162, 1998-01-13)
pclint\lnt\co-in386.lnt (2519, 1998-12-10)
pclint\lnt\co-in96.lnt (1946, 1998-12-10)
... ...

-------------------------------------------------- --- Manual Additions/Modifications --- -------------------------------------------------- PC-lint for C/C++ Version 8.00e This readme.txt supplements the on-line PC-lint manual entitled "Reference Manual for PC-lint/Flexelint" found in the installation directory under the name "pc-lint.pdf" ------ What's New ------ To find out what we've added to the product since Version 7.50, check out Chapter 18 "What's New" in the Reference Manual. ------ Front End ------ Your linting experience will be considerably enhanced by adapting your favorite editor or compiler environment to the task of sequencing from error to error. See Section 3.5 of the Reference Manual. ------ Multiple Passes ------ By default, PC-lint/FlexeLint will go through all your modules in one pass. For projects not previously linted there will be enough messages to look at. However, with just one pass, you will not be taking full advantage of our new interfunction value tracking. With just one pass, we will not know about dangerous return values for functions that are defined later than they are called, and we will not know about dangerous arguments for functions that are defined early. To introduce a second pass you need only to add the command line option: -passes(2) or, if this syntax presents a problem with your Shell, you may use: -passes[2] or, in some cases, -passes=2 is needed. See Section 9.2.2, "Interfunction Value Tracking". ------ Improved Exception Handling in 8.00e ------ Earlier patch levels (8.00d and earlier) would report that a function could throw an exception yet failed to provide an exception specification (i.e., was not declared with a throw-list). For example: void f() { throw X(); } would be greeted with a Warning suggesting that this might be changed to: void f() throw(X) { throw X(); } But the absence of an exception specification indicates that a function can potentially throw any exception. Thus, the first version is perfectly safe. Moreover, if the constructor for X() does not have an exception specification, which is the current programming norm, the first version is actually safer than the second because a thrown exception other than what is declared for can cause the dreaded UnexpectedException to be thrown in its place. See, for example, reference [23], Scott Myers "More Effective C++", Item 14. Hence we now reserve these warnings for when the programmer has supplied an exception specification Thus: void f() throw(Y) { throw X(); } will receive a warning that X is not on the list; moreover, if X::X() can throw exceptions not confined to Y, then this too will be reported. The text of messages 1549, 1550 and 1560 have been altered to reflect this improved handling of exceptions. ------ New or Improved Error Messages ------ 686 Option 'String' is suspicious because of 'Name' -- An option is considered suspicious for one of a variety of reasons that is specified by Name. At this writing, the only reason code is 'unbalanced quotes'. 1076 Anonymous union assumed to be 'static' -- Anonymous unions need to be declared static. This is because the names contained within are considered local to the module in which they are declared. 1549 Exception thrown for function 'Symbol' not declared to throw -- An exception was thrown (i.e., a throw was detected) within a function and not within a try block; moreover the function was declared to throw but the exception thrown was not on the list. If you provide an exception specification, include all the exception types you potentially will throw. [23, Item 14] 1550 exception 'Name' thrown by function 'Symbol' is not on throw-list of function 'Symbol' -- A function was called (first Symbol) which was declared as potentially throwing an exception. The call was not made from within a try block and the function making the call had an exception specification. Either add the exception to the list, or place the call inside a try block and catch the throw. [23, Item 14] 1560 Uncaught exception 'Name' not on throw-list of function 'Symbol' -- A direct or indirect throw of the named exception occurred within a try block and was either not caught by any handler or was rethrown by the handler. Moreover, the function has an exception specification and the uncaught exception is not on the list. Note that a function that fails to declare a list of thrown exceptions is assumed to potentially throw any exception. Gimpel Software November 2001

近期下载者

相关文件


收藏者