fix(判题): C 的 int 函数里写 return; 升 gcc-14 之后直接编译错误,原来能跑
gcc-14 把 -Wreturn-mismatch 也提成了 error,和另外三个一样 -w 压不住。 cLooseErrors 补上这一个,判定和 gcc-13 一致。冒烟测试加一条对应的用例。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
e118d80057
commit
fa0e1ab66c
5 files changed
+27
-9
No files matched your search
+18
-1
@@ -54,7 +54,7 @@ int main(void) {
|
||||
},
|
||||
{
|
||||
// 这条是升 gcc 的主要风险点:gcc-14 起 implicit-function-declaration 是
|
||||
// error,languages.ts 里的三个 -Wno-error 就是为它加的。这条挂了说明那些
|
||||
// error,languages.ts 里的几个 -Wno-error 就是为它加的。这条挂了说明那些
|
||||
// 开关没生效 —— 后果是一批历史题解和 20 篇 C 教程的示例突然全 CE。
|
||||
language: "C",
|
||||
name: "C 忘了 #include 仍能过(gcc 宽松度)",
|
||||
@@ -64,6 +64,23 @@ int main(void) {
|
||||
scanf("%d %d", &a, &b);
|
||||
printf("%d\\n", a + b);
|
||||
return 0;
|
||||
}`,
|
||||
},
|
||||
{
|
||||
// gcc-14 把 int 函数里不带值的 return; 也提成了 error(-Wreturn-mismatch)
|
||||
language: "C",
|
||||
name: "C 不带值的 return; 仍能过(gcc 宽松度)",
|
||||
expect: JudgeStatus.ACCEPTED,
|
||||
code: `#include <stdio.h>
|
||||
int check(int a) {
|
||||
if (a < 0) return;
|
||||
return a;
|
||||
}
|
||||
int main(void) {
|
||||
int a, b;
|
||||
scanf("%d %d", &a, &b);
|
||||
printf("%d\\n", check(a) + b);
|
||||
return 0;
|
||||
}`,
|
||||
},
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user