PClint错误码大全(3)

2019-01-10 12:26

1.2.134 -149- C++ 构造'String' 在代码中发现

一个非法的结构被在C代码中发现。它看起来象适合于C++。 1.2.135 -150- 记号'String' 不期望 String

遇到一个不期望的记号。发生后,被标识为第二个信息的参数。

1.2.136 -151-记号 'Name' 和抽象类型不一致

在一个上下文中,抽象类型被允许在一个转换内或一个sizeof 后,在开始分析抽象类型后,发现一个标识符。例如:

x = (int y) z;

1.2.137 -152- 丢失Lob 基础文件 'file name'

指示的文件被确定为一个lob 的基础文件,通过选项 -lobbase()产生。在输出中,如果这个lob基础文件丢失,给出这个信息。情形是可纠正的,通过简单的产生丢失的 lob 输出。在makefile中给出合适的从属这可能是一个问题 。在输出中,最可能导致这个信息的是基础文件是过时的。一个lob文件中的无用代码信息被读取,不匹配一个早嵌入在基础文件中的相似的代码。输入 lob 文件一个被认为错误,应该被重新产生。见章节7.lint目标模块

1.2.138 -153- 不能创建临时文件

当基于一个lob基础文件产生一个lob 输出文件时产生这个信息,它被首先写入一个临时文件,这个临时文件通过C库函数 tmpnam()产生。

1.2.139 -154- 不能估计类型'String', 假定为int

信息中的String 是第二个参数,或者是一个printf_code 选项,或者是一个scanf_code 选项。当使用了,它被认为是一个类型,不幸的是,这个类型不能被标识。

1.2.140 -155- 在一个表达式内忽略 {…}系列,假定为0

在一个表达式内的braced

系列是某些编译器(特别是GCC)的非标准的扩展。在内,我

们对待这个braced 系列为等于零的常量。如果你仅仅抑制这个信息,这意味着我们可以lint 这个结构。

1.3 内部错误

编号为200-299的一些矛盾被FlexeLint/PC-lint 发现。这些可能不是用户的错误,可能是Gimpel Software的问题。

1.4 致命错误

这些错误是通常致命的,限制这些错误被检查出来是不可能的。但是,这些标记有‘*’的错误可以被限制显示,例如: -e306

1.4.1

-301-堆栈溢出

当处理声明时,有一个堆栈溢出。发现大约50 个嵌套的声明。例如,如果一个 ' /' 紧跟 50 个连续的'*' 被引入一个盒子似的注释,而且如果 '/' 被省略 ,将产生这个信息。

1.4.2

-302- 超过可用的内存

-303- 字符串太长 (尝试 +macros)

主内存被耗尽。

1.4.3

一个单独的 #define 定义或宏调用超过一个内部的限制 (超过 409字符)。诊断指出的问

题可以被使用一个选项校正。

1.4.4 -304-被破坏的目标文件,代码Integer, 符号=String

一个PC-lint/FlexeLint 目标文件是明显的被破坏的。请删除这个目标模块,并重新创建

它,使用选项 -oo .见章节7.3 产生一个LOB. 特殊的代码标识符号和符号名列表是可选的信息后缀作为帮助技术支持诊断问题。

1.4.5

-305- 不能打开模块 'file name' -306-* 以前遇到的模块 'FileName' -307- 不能打开间接文件 'FileName' -308- 不能写到标准输出

这是最不寻常的。

file name 是文件名称。这个名称的模块不能为读被打开。可能你拼写错误名称。

1.4.6

FileName 是模块的名称。这个名称的模块以前遇到过。这可能是用户的一个失误。

1.4.7

FileName 是间接文件的名称。这个名称的间接文件(结尾是 .lnt) 不能为读被打开。

1.4.8

stdout 被发现等于NULL。

1.4.9

-309-* #error ...

#error 指示被遇到。省略号反映最初的行。通常地处理在这点中断。如果你设置 fce (连

续#error) 标志。处理将继续。 1.4.10 -310-声明太长:'String...'

发现一个单独的声明对于内部的缓冲太长(差不多2000 个字符)。当试图使用选项-o... 写出到声明时发生。声明的最初的30 个字符给出在String。代表性地,这通过一个非常长的结构,子结构是没有标签的导致的。首先标识导致困难的声明。如果一个 struct 或 union, 分配给一个没有名称的子结构或子联合。一个typedef 能被用于减少这个声明的大小。

1.4.11 -312- lob是荒废的或外来的版本号

一个lob被PC-lint/FlexeLint以前的或不同的版本产生。删除这个 .lob 文件,使用你的新版本的PC-lint/FlexeLint重新创建它。

1.4.12 -313- 太多文件

PC-lint/FlexeLint能处理的文件的数量超过内部的限制。FlexeLint 用户可以重新编译它的系统以增加这个限制。在 custom.h内寻找符号 FSETLEN。 目前,文件的数量限制到6400。

1.4.13 -314-* 以前使用的 .lnt 文件:FileName

指定名称的间接文件以前遇到过。如果这不是一次事故,你可以抑制这个信息。

1.4.14 -315- 超过信息限制 (见 -limit)

超过信息的最大量。通常没有限制除非强加限制使用选项 -limit(n) (见章节5.7 其它 选项.)

1.4.15 -316- 写文件\file name\时错误

给定的文件不能输出打开。

1.4.16 -321- 声明堆栈溢出

当处理一个声明时在堆栈使用于特定的数组、指针、函数或引用修饰符时发生堆栈溢出。

1.4.17 -322-* 不能打开包含文件 FileName

FileName 是不能被打开的包含文件的名称。目录寻找通过选项:-i (见章节 5.7其它选项.)+fdi (章节5.5标志选项) 和 INCLUDE 环境变量控制。这是一个可以禁止的致命信息。如果使用选项-e322 ,错误信息 7 将踢掉砸开。一个诊断将被发布,但是处理将继续。

1.4.18 -323-记号String 太长

试图为以后的重用存储一个记号,超过一个固定的大小缓冲。(通过大小M_TOKEN 来控制)。

1.4.19 -324-太多的符号Integer 遇到太多的符号。打断内部的限制。

1.4.20 -325-不能重新打开文件 'file name'

在大量的嵌套的include的情况下,在外部边缘的文件需要在一个新的被打开前被关闭。这些外部文件然后需要被重新打开。当试图重新打开这样的一个文件时,发生一个错误。

1.5 C告警信息

1.5.1 -401-标示符“Symbol”之前并没有被声明为静态存储类型

此符号之前不是以静态存储类型的形式声明,此种形式从技术上违背了ANSI标准,某些编译器会默认此种形式,认为此符号是静态。

1.5.2

-402-静态函数“Symbol” (Location)没有被定义 -403-静态符号“Symbol”被异常类型的修改者修改 -404-在文件 'FileName' 中结构没有定义完成

在当前模块中被引用的此静态函数没有被定义,仅仅进行了声明。

1.5.3

某些类型修改者,如,修改者类型为_export,与静态存储类型不一致。 1.5.4

结构,联合体,枚举类型需要在同一个头文件中被定义完成。不要跨文件定义和声明结构,联合体,枚举类型。

1.5.5

-405-#if之类的宏开关没有在同一个头文件'FileName'被关闭

错误如:

文件a

#if _LOGIC_BOARD == _LOGIC_CHMHDR_CPUF ... 文件b

#elif _LOGIC_BOARD == _LOGIC_CHMHDR_CPUR ... #endif

1.5.6

-406-注释没有在同一个头文件'FileName'被关闭。

注释没有在同一个头文件被关闭。错误如: 文件a

/* ************************************** 文件结束

1.5.7 -407-不一致地使用tag 'Symbol' ,在 Location 冲突

同一个标示符,在不同的位置被定义认为不同的类型,如联合体,结构体,枚举类型。 例如:

struct tag *p;

union tag *q;

1.5.8

-408-switch表达式中,类型不匹配

表达式中的case和switch语句类型没有达成同一 如: typedef enum {

HRPDDEFS_ALPHA = 0, HRPDDEFS_BETA, HRPDDEFS_GAMMA,

HRPDDEFS_NUMBER_OF_SECTORS } HRPDDEFS_SectorType;

HRPDDEFS_SectorType m_tSector; switch (m_tSector) {

case 1: ... break; case 4: ... break; default:

...

return FALSE; } 1.5.9

-409-期望是一个指针或者数组

此种类型i[...]的表达式中,发现i是一个整型变量,这种情况可能是合法的,与脚本操作符有关。例如:i是整型,a是数组,那么i[a]是合法的,但属于异常。如果这种情况是你编码风格,请屏蔽之。

1.5.10

-410-size_t 不是fzl或者fzu类型,使用 'Type'

如果你以前试图设置过sizeof选项为+fzl, -fzl, or -fzu,后来size_t声明和此种设置相冲突,此种告警有可能发生。

fzl siZeof-is-Long flag OFF

fzu siZeof-is-Unsigned flag ON

这通常意味着你试图使用你自己系统的头文件对其它系统lint程序。如果是这样,我们建议你创建一个目录放置其它系统的头文件,在那个目录里置换size_t ,使用那个目录lint程序。

1.5.11

-411-ptrdiff_t不是fdl期望的选项, 使用 'Type'

此种告警可能发生,如果你以前试图设置过指针的差异类型,但后来ptrdiff_t的声明与以前设置相冲突。参考错误信息410。

1.5.12

-412-模糊的格式表达式'%X'

在scanf系列中,%X含义不清晰,在Microsoft C中,它代表%lx,在ANSI C,它代表 %x。此种模糊表达式不应该在等级程度高的代码中出现。

1.5.13

-413-在操作符号“String”引用中,左参数或者右参数里,可能使用NULL指

一个null 指针(一个可能值是0的指针) 被不合适的使用。参考信息613和794,和章节9.2数值跟踪

1.5.14

-414-可能被0除

除函数(/)或取模函数(%)的第二个参数可能是0。见章节9.2数值跟踪

1.5.15

-415-操作符'String'试图超出指针的范围

一个超出范围的指针。String 指定操作符. 参数'Integer' 给出指针能达到的界限。它通过单元的给出的指向对象的指针大小来度量。这个值和最后的好数据相关,因此应该始终大于零。 例如:

int a[10]; a[10] = 0;

溢出信息的结果包含短语'1 beyond end of data'. 见章节9.2数值跟踪

1.5.16 -416- 操作符'String'创建出越界的指针 ('Integer' beyond end of data)

创建出一个越界的指针。参考信息415。例如:

int a[10]; ... f( a + 11 );

这里,创建出一个违法的指针值。注意:指针a+10 不被PC-lint/FlexeLint 认为是一个越界的指针。因为ANSI C 明确地允许指针可以超越数组。访问a+10、或者形式 *(a+10)、或者更熟悉的a[10], w将被认为是错误的,但是如果是那样的话,信息415 would be issued. 见章节9.2数值跟踪.

1.5.17

-417-整型常量'String'比long long int还要大

最长可能的整型缺省是8个字节。 例如:0xFFFF0000FFFF0000F

1.5.18 -418-传递NULL指针给引用的函数

传递NULL指针给引用的函数Symbol.。正被讨论的参数在上下文中被给出。函数或者是一个库函数或者是一个用户函数被设计为不接受一个NULL指针,通过选项 -function. 见章节10.1 函数模仿和章节10.2.1 可能的模仿.


PClint错误码大全(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:山东理工大学高分子化学题库附答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: