--------------------------------------------------
--- 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
没有合适的资源?快使用搜索试试~ 我知道了~
pclint c c++ keil IAR 静态分析工具
共128个文件
lnt:103个
c:7个
exe:7个
4星 · 超过85%的资源 需积分: 49 46 下载量 185 浏览量
2009-02-27
23:06:13
上传
评论 1
收藏 2.89MB RAR 举报
温馨提示
代码静态分析工具 PC-Lint是一个历史悠久,功能异常强劲的静态代码检测工具。它的使用历史可以追溯到计算机编程的远古时代(30多年以前)
资源详情
资源评论
资源推荐
收起资源包目录
pclint c c++ keil IAR 静态分析工具 (128个子文件)
lint2msg.c 10KB
sl-desm.c 5KB
sl-lc2.c 4KB
sl-c86.c 4KB
sl.c 4KB
sl-qc88.c 4KB
sl-mwc.c 4KB
CONFIG.exe 508KB
Lint.exe 464KB
lint-nt.exe 464KB
UNWISE.EXE 159KB
patch.exe 59KB
pr.exe 47KB
lint2msg.exe 10KB
co-bc5.h 783B
lib-bcl.h 557B
co-mc.h 492B
co-vage.h 292B
lib-rw.h 209B
lib-in.h 42B
UNWISE.INI 29B
au-misra.lnt 22KB
co-msc60.lnt 9KB
co-bc5.lnt 9KB
co-msc50.lnt 9KB
co-msc40.lnt 9KB
co-msc20.lnt 8KB
co-bcos2.lnt 7KB
co-bc4.lnt 7KB
co-kc166.lnt 7KB
co-cb.lnt 7KB
co-gnu3.lnt 7KB
au-sm.lnt 7KB
co-msc.lnt 7KB
co-kc51.lnt 6KB
env-vc6.lnt 6KB
co-gnu.lnt 6KB
co-frank.lnt 6KB
co-ibm32.lnt 6KB
co-bc.lnt 5KB
co-tc.lnt 5KB
env-vc5.lnt 5KB
co-hc.lnt 5KB
lib-mfc.lnt 5KB
co-wcos2.lnt 4KB
co-wc32.lnt 4KB
co-unix.lnt 4KB
co-bc4wi.lnt 4KB
env-bc5.lnt 4KB
co-wc16.lnt 4KB
env-tide.lnt 4KB
co-bcwin.lnt 4KB
env-cw6.lnt 4KB
co-tcwin.lnt 4KB
env-bwin.lnt 4KB
lib-owl5.lnt 3KB
co-ztc.lnt 3KB
lib-win.lnt 3KB
co-cc386.lnt 3KB
co-mswin.lnt 3KB
co-sc.lnt 3KB
env-cw.lnt 3KB
co-vage.lnt 3KB
env-vc4.lnt 3KB
co-cosm.lnt 3KB
co-sc7.lnt 3KB
co-arch.lnt 3KB
lib-wnt.lnt 3KB
co-cc86.lnt 3KB
co-in386.lnt 2KB
co-diab.lnt 2KB
env-vc2.lnt 2KB
lib-w32.lnt 2KB
lib-owl.lnt 2KB
lib-bcl5.lnt 2KB
co-tsc.lnt 2KB
co-lc6.lnt 2KB
co-in.lnt 2KB
lib-bcl.lnt 2KB
co-qc88.lnt 2KB
env-mew.lnt 2KB
co-ti320.lnt 2KB
co-in96.lnt 2KB
co-wh.lnt 2KB
co-ht.lnt 2KB
co-byte.lnt 2KB
co-iar80.lnt 2KB
co-iar78.lnt 2KB
co-lc2.lnt 2KB
co-iar.lnt 2KB
co-ibmc2.lnt 2KB
co-c86.lnt 2KB
co-aztec.lnt 2KB
env-pwb.lnt 2KB
env-sled.lnt 2KB
co-mwc.lnt 2KB
co-mc386.lnt 2KB
env-sl3.lnt 2KB
co-desm.lnt 2KB
co-powrc.lnt 2KB
共 128 条
- 1
- 2
qqq333555wangliu
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 毕业设计-仿生六足机器人的制作全教程源码+电子元器件+程序代码+线路组件图+安装教程+搭建视频教程
- 基于ROS和webots的xrobot机械臂仿真初探C++源码
- 基于ROS的点焊机器人仿真与控制python源码+文档说明+使用说明+详细注释
- 基于vue实现的细粒度交通时空大数据分析系统+源代码+文档说明
- 安卓大作业-基于Electron的交通时空大数据分析挖掘系统客户端(Android)+源代码+文档说明+界面截图
- 基于Java的朱氏集团客户关系管理系统设计源码
- 基于C++的作业提交与批改系统设计源码
- 基于Vue2的移动端电影资讯网站设计源码
- 高分课程设计作业-基于QT的模仿宝石迷阵游戏C++源码+文档说明+界面截图
- 基于Apache Spark的Spark DistCP重实现设计源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论7