C 缺陷报告在 Clang 中的支持
C 缺陷报告实现状态
此页面跟踪 Clang 中实现了哪些 C 缺陷报告。
针对 C 标准的缺陷报告的实现状态目前正在调查中。任何在 Clang 中状态当前未知的缺陷报告将在 紫色 中标记。
在 LLVM 漏洞追踪器 中使用 "c"、"c99"、"c11"、"c17" 和 "c23" 标签来跟踪 Clang 语言一致性中已知的错误。
编号 | 状态 | 问题标题 | 在 Clang 中可用? |
---|---|---|---|
1 | C89 | 函数是否通过复制返回值? | 是 |
2 | NAD | 子条款 6.8.3.2:# 的语义 | 未知 |
3 | NAD | 子条款 6.1.8:预处理数字 | 未知 |
4 | NAD | 是否允许对具有外部链接的未使用的标识符进行多个定义? | 是 |
5 | NAD | 是否允许符合的实现定义和识别一个会改变语言语义的 pragma? | 是 |
6 | C89 | 不清楚 strtoul 函数在遇到以减号开头的主题序列时的行为 | N/A |
7 | NAD | 在标识符标签已声明后,是否允许使用形式为 struct-or-union identifier;的声明? | 是 |
8 | NAD | 符合的 C 编译器是否可以执行死存储消除? | 是 |
9 | C89 | 在参数声明中使用 typedef 名 | 否 |
10 | NAD | 对不完整类型的 typedef 是否合法? | 是 |
11 | C89 | 链接标识符的声明合并 | 是 |
12 | NAD | 对取消引用后的 void 指针取地址是否有效? | 是 |
13 | C89 | 兼容和复合函数类型 | 是 |
14 | C89 | setjmp 和 fscanf 描述存在的问题 | N/A |
15 | NAD | 普通 int 位域的提升类型是什么? | 是 |
16 | C89 | 当类型的零值不是所有位都为零时,静态存储持续时间的作用是什么? | 未知 |
17 | C89 | 关于 C89 的 39 个不相关的问题 | 未知 |
18 | NAD | fscanf 在存在多字节字符的情况下如何行为? | N/A |
19 | NAD | "打印字符" 的定义以及 isgraph() | N/A |
20 | NAD | 允许使用 Relaxed Ref/Def 链接模型的编译器是否可以被认为是符合标准的编译器? | 是 |
21 | C89 | 以下语句的结果是什么:printf("%#.4o", 345);? | N/A |
22 | C89 | 以下语句的结果是什么:strtod("100ergs", &ptr);? | N/A |
23 | NAD | 以下语句的结果是什么:strtod("0.0e99999", &ptr);? | N/A |
24 | NAD | 在子条款 7.10.1.4 strtod 函数中:"C" 本地化意味着什么? | N/A |
25 | NAD | "可表示的浮点值" 的含义是什么? | 是 |
26 | NAD | 严格符合的程序是否可以包含带有 '$' 或 '@' 的字符串文字? | 是 |
27 | C89 | 字符集中是否可以存在不在必需的源字符集中的字符? | 是 |
28 | NAD | 对象访问规则是否适用于动态分配的对象? | 未知 |
29 | NAD | 两种类型是否必须具有相同的标签才能兼容? | 否 |
30 | NAD | 'sin(DBL_MAX)' 是否会导致 'errno' 设置为 'EDOM'? | N/A |
31 | NAD | 常量表达式是否可以溢出? | 是 |
32 | NAD | 实现是否必须诊断对常量求值规则的扩展? | 否 |
33 | NAD | 关于在约束部分之外的 "应" 违规的符合性问题 | 是 |
34 | C89 | 不同作用域中的外部声明 | 是 |
35 | NAD | 关于没有原型声明的函数定义的问题 |
部分直接在标识符列表中声明的标签被错误地限定在原型范围内,而不是在函数体范围内。 |
36 | NAD | 浮点常量是否可以表示比其类型隐含的精度更高的精度? | 是 |
37 | NAD | 关于多字节字符和 Unicode 的问题 | 是 |
38 | NAD | 关于宏扩展期间的参数替换的问题 | 是 |
39 | NAD | 关于 "C" 本地化的问题 | 是 |
40 | NAD | 关于 C89 的 9 个不相关的问题 |
部分问题 6 具有完全支持,其余问题目前未知。 |
41 | NAD | 5.2.1 中定义的字符是否影响 7.3.1? | N/A |
42 | NAD | 关于库函数和重叠对象的行为 | N/A |
43 | C89 | 关于 NULL 宏的定义 | 是 |
44 | NAD | 关于 offsetof 宏的结果 | 是 |
45 | NAD | 当文件无效时,freopen 的行为是否已定义? | N/A |
46 | NAD | 在参数声明中使用 typedef 名 | 是 |
47 | NAD | 关于声明符合性的问题 | 是 |
48 | NAD | 关于 abort() 函数的澄清 | N/A |
49 | C89 | strxfrm() 是否可以输出比输入更多的字符? | N/A |
50 | NAD | 宽字符串文字是否隐式地包含 <stddef.h>? | 是 |
51 | NAD | 关于指针算术的问题 | 是 |
52 | C89 | 编辑更正 | 是 |
53 | C89 | 通过没有原型的指向函数的指针访问具有原型的指向函数的指针 | 是 |
54 | C89 | 字符串处理函数的长度是否可以为 0? | N/A |
55 | C89 | 信号处理宏应该具有不同的值 | N/A |
56 | NAD | 浮点表示精度要求 | 是 |
57 | NAD | 是否每个指针都对应一个整型类型? | 是 |
58 | NAD | scanf 和 strtdo 处理的数字位数是否有限制? | N/A |
59 | NAD | 类型是否必须是完整的? | 是 |
60 | C89 | 从字符串文字初始化数组 | 是 |
61 | NAD | scanf 格式字符串中的空格 | N/A |
62 | NAD | rename 函数是否可以定义为失败? | N/A |
63 | 重复 | 浮点表示精度要求 | 重复 56 |
64 | NAD | 空指针常量 | 是 |
65 | C89 | 关于本地化的问题 | N/A |
66 | NAD | 关于本地化的另一个问题 | N/A |
67 | NAD | 整数和整型类型混淆 | 是 |
68 | NAD | 'char' 以及有符号和无符号整型类型 | 是 |
69 | NAD | 关于整型类型表示的问题 | 是 |
70 | NAD | 函数参数的可互换性 | 是 |
71 | C89 | 枚举类型 | 是 |
72 | NAD | 对象和指针算术的定义 | 未知 |
73 | NAD | 对象和数组访问的定义 | 未知 |
74 | NAD | 对齐和结构填充 | 未知 |
75 | NAD | 分配的内存的对齐 | N/A |
76 | 开放 | 指向数组末尾的指针 | 未解决 |
77 | NAD | 地址的稳定性 | 是 |
78 | NAD | 地址的唯一性 | 未知 |
79 | NAD | 系统库函数地址的常量性 | N/A |
80 | C89 | 字符串常量的合并 | 是 |
81 | NAD | 左移运算符 | 是 |
82 | C89 | 多个 varargs | 未知 |
83 | C89 | 库函数的使用 | N/A |
84 | NAD | 函数声明中的不完整类型 | 是 |
85 | C89 | 从 main 返回 | 是 |
86 | NAD | 系统头文件中的对象式宏 | 是 |
87 | NAD | 求值的顺序 | 是 |
88 | NAD | 不完整类型的兼容性 | 是 |
89 | C89 | 宏的多个定义 | 是 |
90 | NAD | 格式中的多字节字符 | N/A |
91 | NAD | 多字节编码 | 是 |
92 | 重复 | 字符串的部分初始化 | 重复 60 |
93 | C89 | 标识符的保留 | 是 |
94 | NAD | 函数返回的约束是否与赋值相同? | 是 |
95 | NAD | 初始化是否像赋值一样受约束? | 是 |
96 | NAD | 不完整类型的数组 | 是 |
97 | 重复 | 使用 offsetof 与不完整类型 | 重复 40 |
98 | NAD | 函数或不完整类型的预/后增量/减量 | 是 |
99 | NAD | ANSI/ISO C 缺陷报告 #rfg6 | 未知 |
100 | 重复 | return 语句的缺陷 | 重复 1 |
101 | C89 | 类型限定符和 "如同通过赋值" | 是 |
102 | NAD | 标签重新声明约束 | 是 |
103 | NAD | 不完整类型的形式参数 | 是 |
104 | 重复 | 参数列表中的不完整标签类型 | 重复 84 |
105 | 重复 | 兼容类型要求的优先级 | 重复 17 |
106 | NAD | 何时可以取消引用 void 指针? | 是 |
107 | NAD | assert 宏参数的类型要求 | N/A |
108 | NAD | 宏标识符是否可以隐藏关键字? | 是 |
109 | NAD | 未定义值和未定义行为是否相同? | 是 |
110 | 重复 | 形式参数具有非对象类型的数组 | 重复 47 |
111 | NAD | 将指向限定类型的指针的值转换为类型 (void*) 的值 | 是 |
112 | NAD | 空指针常量和关系比较 | 是 |
113 | NAD | 声明为返回限定 void 的函数中的返回值表达式 | 是 |
114 | NAD | 多维 char 数组对象的初始化 | 是 |
115 | NAD | 成员声明符作为声明符 | 是 |
116 | NAD | 对寄存器数组隐式应用一元 & | 是 |
117 | NAD | 抽象语义、序列点和表达式求值 | 是 |
118 | C89 | 枚举类型的完成点 | 是 |
119 | NAD | 多维数组对象的初始化 | 是 |
120 | NAD | 对位域的赋值(和初始化)的语义 | 是 |
121 | NAD | 指针值的转换为整型 | 是 |
122 | 重复 | 位域的转换/扩展 | 重复 15 |
123 | NAD | "类型类别" 和限定类型 | 是 |
124 | C89 | 转换为 "void 类型" 与转换为 "void 类型" | 是 |
125 | NAD | 使用声明为 "extern (qualified) void" 的内容 | 是 |
126 | NAD | 关于 typedef 名的 "同义词" 的含义是什么? | 是 |
127 | 重复 | 枚举类型和整型类型的复合类型 | 重复 13 |
128 | NAD | 与类型说明符中的标签声明相关的编辑问题 | 是 |
129 | NAD | 标签和命名空间 | 是 |
130 | NAD | 将文本写入流时的保证 | N/A |
131 | C89 | const 成员限定和赋值 | 是 |
132 | 重复 | 未定义行为是否可以在翻译时发生,还是只能在运行时发生? | 重复 109 |
133 | NAD | 以前未在子条款 G2 中列出的未定义行为 | 是 |
134 | NAD | strerror 的 "错误号" 是什么? | N/A |
135 | NAD | 'fwrite' 的 size 参数是否可以为零? | N/A |
136 | NAD | 'mktime' 和时间间隔 | N/A |
137 | NAD | 'printf' 和负浮点值 | N/A |
138 | C89 | 是否存在已分配存储持续时间? | 是 |
139 | C89 | 完整类型和不完整类型的兼容性 | 是 |
140 | NAD | 'setvbuf' 的行为 | N/A |
141 | NAD | EOF 的含义是什么? | N/A |
142 | C89 | 宏名称的保留 | 是 |
143 | C89 | 'fopen' 模式 | N/A |
144 | C89 | 预处理指令的预处理 | 是 |
145 | C89 | 常量表达式 | 未知 |
146 | C89 | 无用约束 | 是 |
147 | C89 | 库函数中的序列点 | 是 |
148 | NAD | 定义库函数 | 是 |
149 | C89 | "变量" 一词 | 是 |
150 | C89 | 从字符串文字初始化 char 数组 | 是 |
151 | C89 | 'printf' 和标志的行为 | N/A |
152 | NAD | 是否可以从信号处理程序中 'longjmp'? | N/A |
153 | 重复 | 'f()' 是否可以被认为是使用一个空参数调用类函数宏? | 重复 3 |
154 | NAD | 实现定义值的 consistency | 是 |
155 | C89 | 零大小的分配 | N/A |
156 | C89 | 关闭的流 | N/A |
157 | C89 | 类型同义词的合法性 | 是 |
158 | C89 | 空指针转换 | 是 |
159 | C89 | C 标准缺陷中关于标准引用自身的方式存在不一致性 | 是 |
160 | 开放 | 标识符的保留 | 未解决 |
161 | NAD | 保留符号的详细信息 | 是 |
162 | C89 | 'gmtime' 和 'localtime' | N/A |
163 | C89 | 未声明的标识符 | 是 |
164 | NAD | 错误的声明 | 是 |
165 | C89 | 标签和不完整类型 | 未解决 |
166 | 开放 | lvalue 的含义 | 未解决 |
167 | 开放 | C 标准的一致性(缺陷报告 UK 015) | 未解决 |
168 | 开放 | C 标准的一致性(缺陷报告 UK 016) | 未解决 |
169 | NAD | 三字符序列 | 是 |
170 | C89 | 运算符和标点符号 | 未解决 |
171 | 开放 | 整型类型的范围 | 未解决 |
172 | 开放 | 关系运算符和相等运算符 | 未解决 |
173 | 开放 | 行号 | 未解决 |
174 | 开放 | 隐式转换 | 未解决 |
175 | 开放 | 对技术勘误表 1 的更正 | 未解决 |
176 | 开放 | #error 的诊断 | 未解决 |
177 | 开放 | 预处理指令 | 未解决 |
178 | 开放 | 与数组成员和分配的符合性 | 未解决 |
201 | NAD | 比 long 更长的整型 | 是 |
202 | C99 | 更改某些 <fenv.h> 函数的返回类型 | N/A |
203 | C99 | C 本地化与 ISO/IEC 9945-2 的冲突 | N/A |
204 | C99 | size_t 和 ptrdiff_t 作为 long long 类型 | 是 |
205 | NAD | 新关键字 __at_least | 是 |
206 | NAD | float _Complex 的默认参数转换 | 是 |
207 | C99 | 虚数类型的处理 |
部分Clang 检测到 _Imaginary 关键字的使用,但尚未支持该类型。 |
208 | C99 | 初始化中的歧义 | 是 |
209 | C99 | 实现 INTN_C 宏的问题 |
部分Clang 在独立编译中提供这些定义,但UINT8_C 和 UINT16_C 生成的值的类型不是根据 C99 7.18.4p3 进行整数提升后的类型。 |
210 | C99 | 'fprintf' %a 和 %A 转换的推荐做法 | N/A |
211 | C99 | 十进制字符串与 "二进制"(非十进制)浮点转换之间的精度 | 是 |
212 | NAD | 多字节转换状态对象的绑定 | N/A |
213 | C99 | 'mbrtowc' 中的空白 | N/A |
214 | NAD | 'atexit' 函数注册 | N/A |
215 | C99 | 相等运算符 | 是 |
216 | C99 | 源字符编码 | 是 |
217 | NAD | 'asctime' 限制 | N/A |
218 | C99 | 非数字浮点值的符号 | 是 |
219 | NAD | 有效类型 | 是 |
220 | C99 | "十进制整数" 的定义 | N/A |
221 | NAD | 指针算术中的空白 | 是 |
222 | C99 | 部分初始化的结构 | 是 |
223 | C99 | 'FP_FAST_FMAF' 和 'FP_FAST_FMAL' 应为整型常量 | N/A |
224 | C99 | fpclassify 返回未定义 | N/A |
225 | C99 | strtod、strtof 和 strtold 预期的主题序列形式 | N/A |
226 | NAD | strftime 引用 | N/A |
227 | NAD | strftime %U、%V 和 %W 转换说明符 | N/A |
228 | C99 | 附录 B 中的 wmemcmp 声明 | N/A |
229 | C99 | localeconv() *_sep_by_space 表项问题 | N/A |
230 | C99 | 枚举类型等级 | 是 |
231 | NAD | 文本行和非指令的语义 | 否 |
232 | C99 | 附录 I 中的印刷错误 | N/A |
233 | C99 | %g、%G 精度规范 | N/A |
234 | C99 | 杂项印刷错误 | 是 |
235 | C99 | "C" 本地排序行为未定义 | N/A |
236 | NAD | 基于类型的别名规则应用于联合对象或已分配对象时的解释 | 未知 |
237 | NAD | 使用 [static] 的声明 | 否 |
238 | C99 | 缺少对 fma() 溢出和下溢错误的描述 | N/A |
239 | C99 | 附录 F 中 nexttoward 的描述与 7.12.11.4 和 F.9.8.3 不一致 | N/A |
240 | C99 | lrint、llrint、lround、llround 和 ilogb 描述对于不可表示的结果不一致 | N/A |
241 | C99 | 使基本标准和附录 F 对于 pow(0, <0) 保持一致 | N/A |
242 | C99 | 使基本标准和附录 F 对于 logb(0) 保持一致 | N/A |
243 | C99 | 使基本标准和附录 F 对于 fmod()、remainder() 和 remquo() 在除数为零时的行为保持一致 | N/A |
244 | C99 | tgamma(零或负整数) 应被视为极点错误 | N/A |
245 | C99 | 缺少段落编号 | 是 |
246 | NAD | 声明符的完成 | 是 |
247 | C99 | 值是否属于行为的一种形式? | 是 |
248 | C99 | 可选类型需要限制 | 是 |
249 | 重复 | 将 C89:TC1 应用于 C99 的遗漏 | 重复 9 |
250 | C99 | 宏参数内的非指令 | 是 |
251 | C99 | struct fred 和 union fred 是否是相同类型? | 是 |
252 | NAD | 调用无原型函数时的不完整参数类型 | 是 |
253 | NAD | 指定初始化器中的 "overriding" | 是 |
254 | NAD | mbtowc 和部分字符 | N/A |
255 | NAD | 无原型函数调用和参数不匹配 | 是 |
256 | NAD | 多次包含头文件 | N/A |
257 | NAD | 常见初始序列和与联合相关的相关问题 | 未知 |
258 | NAD | "defined" 和宏替换的顺序 | 是 |
259 | NAD | 没有参数的宏调用 | 是 |
260 | NAD | 不确定的值和相同的表示形式 | 未知 |
261 | NAD | 常量表达式 | 是 |
262 | C99 | 位域的最大大小 | 是 |
263 | C99 | 全零位表示 | 是 |
264 | NAD | 图形字符 | N/A |
265 | C99 | 预处理器算术 | 是 |
266 | NAD | sizeof 溢出 | 是 |
267 | C99 | 5.1.2.3、7.24.4.4.5、7.24.6.1、7.24.6.1 中的印刷错误 | 是 |
268 | C99 | 跳入迭代语句 | 是 |
269 | C99 | 精确宽度整数类型中的遗漏 | N/A |
270 | C99 | wint_t 不是 wchar_t 的提升版本 | N/A |
271 | NAD | iswctype 和 towctrans 中的遗漏 | N/A |
272 | C99 | 类型类别 | 是 |
273 | C99 | __STDC_ISO_10646__ 的含义 |
是此 DR 的编译器部分已在 Clang 中实现,但 Clang 未定义__STDC_ISO_10646__ 宏;标准库行为会影响是否可以定义此宏。 |
274 | C99 | <string.h> 函数中 "character" 的含义 | N/A |
275 | C99 | 对无内容进行按位或运算 | N/A |
276 | C99 | perror 的方向 | N/A |
277 | NAD | 迭代语句内的声明 | 否 |
278 | C99 | 字符编码中的遗漏 | 是 |
279 | C99 | 基本字符集成员的宽字符代码值 | 是 |
280 | NAD | <time.h> 中的 struct tm、成员 tm_isdst 和 mktime() | N/A |
281 | C99 | CLOCKS_PER_SEC 不应是常量表达式 | N/A |
282 | C99 | 灵活数组成员 & 结构体填充 | 是 |
283 | C99 | 访问非当前联合成员 ("类型穿透") | 未知 |
284 | NAD | <math.h> 是否定义了 INT_MIN 和 INT_MAX? | N/A |
285 | C99 | 将虚数类型转换为 _Bool |
部分Clang 检测到 _Imaginary 关键字的使用,但尚未支持该类型。 |
286 | C99 | 正确舍入和舍入方向/模式 | N/A |
287 | 重复 | 浮点状态标志和序列点 | 重复 87 |
288 | NAD | 多字节转换中的缺陷 | N/A |
289 | C99 | 带有 [restrict] 的函数原型 | 是 |
290 | C99 | FLT_EVAL_METHOD 和额外精度和/或范围 | 否 |
291 | C99 | 对不精确浮点异常要求的更正 | 未知 |
292 | C99 | 使用 "variable" 一词 | 是 |
293 | C99 | 标准中的印刷错误 - 示例中使用 double complex 而不是 complex | 是 |
294 | NAD | 关于 C99 restrict 关键字的技术问题 | 未知 |
295 | C99 | 函数参数的不完整类型 | 是 |
296 | C99 | exp(INFINITY) 是溢出吗?范围错误?除以零异常?没有任何错误的 INFINITY? | N/A |
297 | C99 | FE_* 浮点异常标志是否可以具有公共位? | N/A |
298 | C99 | unsigned long long 范围内的常量有效性 |
部分Clang 通过自动使用long long 或 unsigned long long 作为常量的底层类型来定义这种情况下的行为;但是,在 C89 模式下,Clang 无法诊断此类常量的扩展。 |
299 | C99 | cabs() 是否是类型泛型宏? | N/A |
300 | NAD | 翻译时表达式求值 | 是 |
301 | NAD | <fenv.h> 中 FE_* 宏的含义 | 是 |
302 | C99 | 6.10.2p5:在可移植包含文件名字符集中添加下划线 | 是 |
303 | C99 | 6.10p2:将描述预处理指令的超长句子分解 | 是 |
304 | C99 | 澄清 #if 指令中的非法标记 | 是 |
305 | C99 | 6.10.1p3:澄清 #if 指令中关键字的处理方式 | 是 |
306 | C99 | 6.10.3p9:澄清重新扫描适用于类对象宏 | 是 |
307 | C99 | 6.10.3p10:澄清参数与形参 | 是 |
308 | C99 | 澄清源文件等不必是 "文件" | 是 |
309 | C99 | 澄清三字符替换 | 是 |
310 | C99 | 添加三字符的非边缘情况示例 | 是 |
311 | C99 | 可变修饰类型的定义 | 是 |
312 | C99 | "已知常量大小" 的含义 | 是 |
313 | NAD | VLA 的不完整数组 | 是 |
314 | NAD | 跨翻译单元的带标签类型兼容性 | 未知 |
315 | C99 | 实现定义的位域类型 | 是 |
316 | NAD | 无原型函数类型 | 是 |
317 | NAD | 具有空括号的函数定义 | 是 |
318 | C99 | (double)0.1f 且 FLT_EVAL_METHOD 为 2 | 未知 |
319 | NAD | printf("%a", 1.0) 和尾随零 | N/A |
320 | C99 | 可变修饰类型的范围 | 是 |
321 | C99 | 基本字符集成员的宽字符代码值 | 是 |
322 | C99 | TC2 更改 #67 (将 perror 添加到定义字节输入/输出函数的列表中) 中的问题 | N/A |
323 | C99 | TC2 #34、#35 和 #36 中的潜在问题 | N/A |
324 | C99 | 标记化模糊 | 是 |
325 | NAD | strerror() | N/A |
326 | C99 | asctime() | N/A |
327 | C99 | 将可变长度数组类型的定义斜体化,添加前向引用 | 是 |
328 | C99 | 复合文字初始化中的字符串文字 |
部分Clang 正确地实现了在复合文字初始化器中使用字符串文字,但未能诊断在文件范围使用可变修饰类型。DR339(关于可变修饰类型)被标记为 DR328 的重复。 |
329 | C99 | 数学函数和定向舍入 | N/A |
330 | C99 | 外部可见的异常情况 | N/A |
331 | NAD | 当 errno 为 EDOM 时允许 FE_DIVBYZERO | N/A |
332 | C99 | gets 通常不安全 | N/A |
333 | C99 | 缺少预定义宏名称 | 是 |
334 | 开放 | 缺少比较宏的语义 | 未解决 |
335 | NAD | _Bool 位域 | 是 |
336 | C99 | TMP_MAX 实际上指示什么? | N/A |
337 | C99 | stdio.h 宏定义问题 | N/A |
338 | C99 | C99 似乎将不确定的值排除在未初始化寄存器之外 | 是 |
339 | 重复 | 可变修饰的复合文字 | 重复 328 |
340 | C99 | 可变长度数组的复合类型 | 是 |
341 | C99 | 抽象声明符中的 [*] | 是 |
342 | 重复 | VLA 和条件表达式 | 重复 340 |
343 | C99 | 初始化限定的 wchar_t 数组 | 是 |
344 | C99 | 预处理器条件表达式中的强制转换 | 是 |
345 | C99 | 参数范围从哪里开始? | 是 |
400 | C11 | realloc 大小为零的问题 | 未知 |
401 | C11 | "happens before" 不能是循环的 | 是 |
402 | C11 | 内存模型一致性与 C++11 不一致 | 是 |
403 | C11 | 内存模型中的 malloc() 和 free() | N/A |
404 | C11 | 脚注中保留的玩笑片段 | 是 |
405 | C11 | 互斥体规范 | N/A |
406 | C11 | 可见的副作用序列是冗余的 | 是 |
407 | C11 | 原子的内存排序 | 未知 |
408 | NAD | 锁是否应提供线程内同步 | N/A |
409 | C11 | f(inf) 是 inf 是范围错误 | N/A |
410 | C11 | ilogb 与 lrint、lround 不一致 | N/A |
411 | C11 | 预定义宏值 | 是 |
412 | C11 | #elif | 是 |
413 | NAD | 初始化 | 是 |
414 | C11 | 6.27 线程 <threads.h> 中的印刷错误 | N/A |
415 | C11 | 附录 J 中缺少除以零条目 | 是 |
416 | C11 | tss_t 销毁未指定 | N/A |
417 | C11 | 附录 J 未更新必要的 aligned_alloc 条目 | 是 |
418 | NAD | 可能的缺陷报告:fmod(0.,NaN) 和 fmod(NaN,infinity) | N/A |
419 | C11 | 泛型函数 | 是 |
420 | NAD | for 语句规范中的语法错误 | 是 |
421 | NAD | atomic_flag 的初始化 | N/A |
422 | NAD | 原子类型的初始化 | N/A |
423 | C11 | 相对于 n1570 的缺陷报告:限定右值的未完全指定 |
部分Clang 正确地处理了从强制转换操作中删除限定符,但尚未处理从函数返回类型中删除限定符。 |
424 | 重复 | tss_t 的未完全指定 | 重复 416 |
425 | NAD | 没有针对具有临时生存期的变量访问的规范 | 是 |
426 | C11 | G.5.1:-yv 和 -x/v 模糊不清 | N/A |
427 | NAD | 函数参数和返回值赋值 | 未知 |
428 | C11 | 附录 K 中 sprintf 系列例程的运行时约束问题 | N/A |
429 | C11 | (s == NULL) 时,gets_s 应丢弃下一行输入吗? | N/A |
430 | C11 | getenv_s 中的 maxsize 应允许为零 | N/A |
431 | C11 | atomic_compare_exchange:两个结构体比较相等意味着什么? | 未知 |
432 | C11 | 可能的缺陷报告:0.0 是否要求是可表示的值? | 是 |
433 | C11 | 涉及 RSIZE_MAX 的宽字符函数参数约束问题 | N/A |
434 | C11 | 可能的缺陷报告:缺少关于原子的约束 | 是 |
435 | NAD | 可能的缺陷报告:缺少关于虚数的约束 | 是 |
436 | C11 | 关于 C11 6.8.5#6 的解释请求 | 是 |
437 | C11 | 时钟溢出问题 | N/A |
438 | C11 | ungetc / ungetwc 和丢弃回退问题后的文件位置 | N/A |
439 | C11 | "完整表达式" 定义中的问题 | 未知 |
440 | NAD | 来自 PDTS 18661-1 UK 审查的 C11 中的浮点问题,问题 1 | 未知 |
441 | C11 | 来自 PDTS 18661-1 UK 审查的 C11 中的浮点问题,问题 2 | N/A |
442 | NAD | 来自 PDTS 18661-1 UK 审查的 C11 中的浮点问题,问题 3 | 未知 |
443 | NAD | 来自 PDTS 18661-1 UK 审查的 C11 中的浮点问题,问题 4 | 未知 |
444 | C11 | C11 中对齐问题,第 1 部分 |
部分Clang 拒绝在复合文字表达式中使用对齐说明符。 |
445 | C11 | C11 中的对齐问题,第 2 部分 | 未知 |
446 | NAD | 对 memcmp、memcpy 使用字节而不是字符 | N/A |
447 | C11 | 从复数中获取布尔值 | 是 |
448 | C11 | # 非指令的语义是什么? | 是 |
449 | NAD | 对于没有最大值的实现,TSS_DTOR_ITERATIONS 的值是多少? | N/A |
450 | C11 | maxsize > RSIZE_MAX 时,tmpnam_s 会清除 s[0] | N/A |
451 | NAD | 未初始化的自动变量的不稳定性 | 未知 |
452 | C11 | 循环不变式中的有效类型 | 未知 |
453 | C11 | 原子标志类型和操作 | N/A |
454 | NAD | ATOMIC_VAR_INIT (问题 3 和 4) | 是 |
455 | NAD | ATOMIC_VAR_INIT 问题 5 | 是 |
456 | 重复 | UINTN_C(value) 的编译时定义 | 重复 209 |
457 | C11 | 附录 K 中定义的 ctime_s 函数不正确 | N/A |
458 | C11 | ATOMIC_XXX_LOCK_FREE 宏不是常量表达式 | N/A |
459 | C11 | atomic_load 缺少 const 限定符 | 是 |
460 | C11 | aligned_alloc 未完全指定 | N/A |
461 | NAD | 对信号处理程序中对象的引用的问题 | N/A |
462 | C11 | 澄清信号处理程序中访问的对象 | N/A |
463 | NAD | 左移到符号位 | 是 |
464 | C11 | 澄清 #line 指令的行为 | 是 |
465 | C11 | 修复 atomic_is_lock_free 中的不一致 | 未知 |
466 | NAD | for 循环控制声明的范围 | 是 |
467 | C11 | 最大可表示有限描述与数学 | 未知 |
468 | C11 | strncpy_s 会在空字符之后破坏缓冲区 | N/A |
469 | NAD | 锁所有权与线程终止 | N/A |
470 | C11 | mtx_trylock 应允许虚假失败 | N/A |
471 | C11 | 复数数学函数 cacosh 和 ctanh | N/A |
472 | C11 | 7.3.1p3 中关于复数算术的介绍因 CMPLX 而错误 | N/A |
473 | C11 | "如果 x 太大,则会发生范围错误。" 具有误导性 | N/A |
474 | NAD | 注释 1 对 atomic_compare_exchange 的澄清 | N/A |
475 | C11 | 原子库中对原子类型的误导性引用 | 是 |
476 | C11 | 左值的 volatile 语义 | 未知 |
477 | C11 | nan 应接受字符串参数 | N/A |
478 | NAD | main 函数的有效使用 | 是 |
479 | 重复 | 关于非递归静默的 mtx_trylock 的不清晰规范 | 重复 269 |
480 | C11 | cnd_wait 和 cnd_timewait 应允许虚假唤醒 | N/A |
481 | C11 | 控制 _Generic 主表达式的表达式 | Clang 3.8 |
482 | NAD | 跨多个文件拆分的宏调用 | 未知 |
483 | NAD | 宏替换列表中的 __LINE__ 和 __FILE__ | 是 |
484 | NAD | strcoll() 中的无效字符 | N/A |
485 | C11 | ATOMIC_VAR_INIT 规范中的问题 | 是 |
486 | NAD | 原子对象算术的不一致规范 | 未知 |
487 | C11 | timespec 与 tm | N/A |
488 | C11 | c16rtomb() 用于编码为多个 char16_t 的宽字符 | N/A |
489 | NAD | 整数常量表达式 |
部分Clang 不一致地将常量表达式折叠成 ICE 诊断为扩展。 |
490 | NAD | 关于 if-then 的未记录假设 | 是 |
491 | C11 | 对与保留标识符匹配的关键字的关注 |
部分当标识符以下划线后跟大写字母或双下划线开头时,即使标识符用于宏定义,Clang 也会发出保留标识符诊断。 |
492 | NAD | 没有成员的命名子结构体-联合体 | Clang 3.6 |
493 | 重复 | 互斥体初始化未完全指定 | 重复 469 |
494 | C11 | 第 1 部分:对齐说明符表达式求值 | 是 |
495 | C11 | 第 2 部分:原子说明符表达式求值 | 未解决 |
496 | NAD | offsetof 问题 | 是 |
497 | C11 | "空白字符" 在两个地方定义 | N/A |
498 | C11 | mblen、mbtowc 和 wctomb 线程安全性 | N/A |
499 | C17 | 联合体中的匿名结构体行为 | 是 |
500 | C17 | 对 FLT_EVAL_METHOD 的含糊规范 | 未知 |
501 | C17 | DECIMAL_DIG 可以大于必要值吗? | N/A |
502 | NAD | 匿名结构体中的灵活数组成员 | 是 |
503 | NAD | 十六进制浮点数和 strtod | N/A |