Amazon Best VPN GoSearch

OnWorks 网站图标

稀疏 - 在云中在线

通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器在 OnWorks 免费托管服务提供商中运行稀疏

这是可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行的命令 sparse,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


sparse - C 的语义解析器

概要


[警告 配置] ... 文件.c

商品描述


Sparse 解析 C 源代码并查找错误,对标准错误产生警告。

Sparse 接受控制要生成的警告集的选项。 打开警告
Sparse默认不发出,使用对应的warning选项 -东西.
Sparse 默认会发出一些警告; 关闭这些警告,通过否定
相关的警告选项, -Wno-某事.

警告 配置


-Wsparse-all
打开所有稀疏警告,但通过以下方式明确禁用的警告除外
-Wno-某事.

-W地址空间
警告混合指向不同地址空间的指针的代码。

稀疏允许扩展属性 __attribute__((地址空间(NUM))) on
指针,它指定地址空间中的指针目标 NUM (一个常数
整数)。 和 -W地址空间, Sparse 处理具有相同目标类型的指针
但不同的地址空间作为不同的类型。 要覆盖此警告,例如
对于在地址空间之间转换指针的函数,使用一个类型
包括 __属性__((力)).

默认情况下,稀疏会发出这些警告。 要关闭它们,请使用 -Wno-地址空间.

-按位
警告不支持的操作或与受限整数类型的类型不匹配。

Sparse 支持扩展属性, __attribute__((按位)),这会创建一个
来自基本整数类型的新受限整数类型,与基本整数类型不同
整数类型和任何其他未在同一个中声明的受限制整数类型
声明或 类型定义. 例如,这允许程序创建 类型定义S为
具有特定字节序的整数类型。 和 -按位, Sparse 将警告任何
在按位运算以外的算术运算中使用受限类型,
以及从一种受限类型到另一种的任何转换,除非通过强制转换
包括 __属性__((力)).

__bitwise 最终成为“更强的整数分离”。 那个不允许你
与非按位整数混合,所以现在更难丢失类型
错误。

__bitwise 用于不能与其他类型混合的*独特类型*,并且
你永远不想只用作一个随机整数(整数 0 是特殊的,但是,
并被默默接受 iirc - 它有点像指针的“NULL”)。 所以
“gfp_t”或“安全字节序”类型将是 __bitwise:您只能操作
他们通过执行知道*那个*特定类型的特定操作。

通常,如果您正在寻找类型安全,则需要按位。 稀疏不
默认情况下发出这些警告。

-Wcast-to-as
警告将地址空间添加到指针类型的强制转换。

演员阵容包括 __属性__((力)) 将抑制此警告。

默认情况下,Sparse 不会发出这些警告。

-Wcast-截断
警告有关截断常量值的强制转换。

默认情况下,稀疏会发出这些警告。 要关闭它们,请使用 -Wno-cast-截断.

-W上下文
警告同步或其他分隔上下文中的潜在错误。

Sparse 支持多种指定函数或语句的方法
上下文,例如同步。 具有扩展属性的函数
__attribute__((上下文(表达,在上下文中,输出上下文)) 需要上下文
表达 (例如,锁)具有值 在上下文中 (一个常数
非负整数)调用时,并返回值 输出上下文 (一个常数
非负整数)。 对于通过宏定义的 API,使用语句形式
__语境__(表达,输入值,输出值) 在宏的主体中。

通过 -W上下文 Sparse 会在看到函数更改上下文时发出警告
用一个表示这一点 上下文 属性,或者通过将上下文减少到零以下
(例如通过释放锁而不获取它),或返回更改
上下文(例如通过获取锁而不释放它)。 稀疏也会警告
关于可能在不同上下文中执行的代码块。

默认情况下,稀疏会发出这些警告。 要关闭它们,请使用 -无上下文.

-Wdecl 警告任何非静止 以前没有的变量或函数定义
宣言。

给定源文件内部的私有符号(函数和变量)应该
使用 静止, 允许额外的编译器优化,允许检测未使用的
符号,并防止其他代码依赖这些内部符号。 民众
其他源文件使用的符号需要其他源文件可见的声明
源文件,例如在头文件中。 所有声明都应属于以下之一
这两个类别。 因此,与 -Wdecl, Sparse 警告任何符号定义
都没有 静止 也不是声明。 要修复此警告,请声明私有
符号 静止, 并确保定义公共符号的文件具有符号
首先可用的声明(例如通过包含适当的头文件)。

默认情况下,稀疏会发出这些警告。 要关闭它们,请使用 -Wno-声明.

-W声明后声明
警告不在块开头的声明。

这些声明在 C99 中是允许的,但在 C89 中不允许。

仅当 C 方言为 C89(即 -ansi
或 -std=c89)。 要关闭它们,请使用 -声明后无声明.

-W默认位域符号
警告任何没有明确签名的位域。

位域没有标准指定的默认签名。 (C99 6.7.2) 位域
没有明确的 or 无符号 造成软件的可移植性问题
这取决于可用的值范围。 要解决此问题,请指定位域
输入为 or 无符号 明确地。

默认情况下,Sparse 不会发出这些警告。

-W指定-init
警告标记为需要指定的结构的位置初始化
初始化程序。

稀疏允许一个属性 __attribute__((指定_init)) 将结构标记为
需要指定的初始化程序。 稀疏将警告位置
具有此类型的结构变量或结构文字的初始化
属性。

需要特定结构类型的指定初始值设定项将隔离代码
使用该结构类型从更改到类型的布局,避免需要
更改该类型的初始值设定项,除非它们初始化一个已删除或不兼容的
改变了领域。

这种结构的常见例子包括函数指针的集合,用于
类相关操作的实现,默认为NULL
对于指定初始值设定项中未提及的字段将正确指示
没有那个操作。

默认情况下,稀疏会发出这些警告。 要关闭它们,请使用
-Wno-指定-init.

-wdo-while
警告 do-while 循环没有用大括号分隔循环体。

默认情况下,Sparse 不会发出这些警告。

-Wenum-不匹配
警告使用不正确的表达式 枚举 初始化时输入
另一个 枚举 类型,分配给另一个 枚举 类型,或将参数传递给
期待另一个的功能 枚举 类型。

默认情况下,稀疏会发出这些警告。 要关闭它们,请使用 -Wno-枚举不匹配.

-Winit-cstring
警告初始化带有过长常量 C 字符串的字符数组。

如果char数组的大小和字符串的长度相同,则没有
数组中字符串的最后一个空字符的空间:

字符 s[3] = "abc";

如果数组用作字节数组,而不是 C 字符串,则此警告只是噪音。
但是,如果将数组传递给处理 C 字符串的函数,如 printf(%s)
和strcmp,它可能会引起麻烦。

默认情况下,Sparse 不会发出这些警告。

-W非空指针
警告使用 0 作为 NULL 指针。

0 具有整数类型。 NULL 具有指针类型。

默认情况下,稀疏会发出这些警告。 要关闭它们,请使用
-Wno-非指针-空.

-Wold-初始化器
警告将 C99 之前的 GCC 语法用于指定的初始值设定项。

C99 为指定字段提供了标准语法 结构 or 工会
初始化程序:

struct structname var = { .field = value };

GCC 也有一个旧的、非标准的语法,用于指定的初始值设定项,它早于
C99:

struct structname var = { 字段:值};

Sparse 将警告使用 GCC 的非标准语法来指定
初始化程序。 要修复此警告,请将指定的初始值设定项转换为使用
标准 C99 语法。

默认情况下,稀疏会发出这些警告。 要关闭它们,请使用
-Wno-old-初始化器.

-wone-bit-signed-bitfield
警告任何一位 位域。

一个位 位域只能具有值 0 和 -1,或者某些编译器
只有 0; 这导致预期能力的程序出现意外行为
存储 0 和 1。

默认情况下,稀疏会发出这些警告。 要关闭它们,请使用
-Wno-一位有符号位域.

-Wparen-字符串
警告使用带括号的字符串初始化数组。

标准 C 语法不允许带括号的字符串作为数组初始值设定项。
GCC 允许将此语法作为扩展。 和 -Wparen-字符串, Sparse 会警告
关于这个语法。

默认情况下,Sparse 不会发出这些警告。

-Wptr-减法打击
在将两个指针相减时发出警告,该指针指向具有非 XNUMX 次幂大小的类型。

将两个指向给定类型的指针相减会产生数量上的差异
该类型的项目。 要生成此值,编译器通常需要
将差异除以类型的大小,这是一个潜在的昂贵操作
对于 XNUMX 的幂以外的大小。

使用指针减法编写的代码通常可以使用另一种方法代替,例如
作为具有显式数组索引变量的数组索引,这可能允许编译器
生成更高效的代码。

默认情况下,Sparse 不会发出这些警告。

-Wreturn-void
如果返回类型为 void 的函数返回 void 表达式,则发出警告。

C99 允许这样做,并且在某些情况下这允许在宏中使用更通用的代码
使用 typeof 或将类型作为宏参数。 但是,有些程序
考虑这种糟糕的风格,那些程序可以使用 -Wreturn-void 得到警告
关于它。

默认情况下,Sparse 不会发出这些警告。

-W阴影
在声明一个符号时发出警告,该符号在
外部范围。

这样的声明会导致代码容易出错。

默认情况下,Sparse 不会发出这些警告。

-W透明联合
警告任何使用 GCC 扩展的声明
__属性__((透明_联合)).

默认情况下,稀疏会发出这些警告。 要关闭它们,请使用
-Wno-透明联合.

-Wtypesign
将指向整数类型的指针转​​换为指向整数类型的指针时发出警告
具有不同的签名。

默认情况下,Sparse 不会发出这些警告。

-文德夫
警告使用 undefined 值的预处理器条件
预处理器符号。

标准 C (C99 6.10.1) 允许使用未定义的预处理器符号的值
在预处理器条件中,并指定它的值为 0。但是,
这种行为会导致细微的错误。

默认情况下,Sparse 不会发出这些警告。

MISC 配置


-gcc 基目录 DIR
在中查找编译器提供的系统头文件 DIR/包括/和 DIR/包括固定/。

-多架构目录 DIR
在 multiarch 子目录中查找系统头文件 DIR。 该 DIR 名字会
通常采用目标标准化 GNU 三元组的形式。 (例如 i386-linux-
牛)。

其他 配置


-ftabstop=宽度
设置制表位之间的距离。 这有助于稀疏报告正确的列
警告或错误中的数字。 如果该值小于 1 或大于 100,
该选项被忽略。 默认值为 8。

使用 onworks.net 服务在线使用稀疏


免费服务器和工作站

下载 Windows 和 Linux 应用程序

Linux 命令

Ad




×
广告
❤️在这里购物、预订或购买——免费,有助于保持服务免费。