我有这个c文件
#include "pointer.h"
int switcher(int * i) {
int a = *i;
switch (a) {
case 1:
return 0;
default:
return 1;
}
}
且关联的标题只包含一行
int switcher(int * i);
这使用clang编译。
如果我现在使用clang-tidy(clang-tidy -fix pointer.c -checks = * -header-filter =。*)我得到以下结果
#include "pointer.h"
int switcher(const int * i) {
int a = *i;
switch (a) {
case 1:
return 0;
default:
return 1;
}
}
和标题
#ifndef _HOME_GWE_PROJEKTE_CLANG_TIDY_POINTER_H
#define _HOME_GWE_PROJEKTE_CLANG_TIDY_POINTER_H
int switcher(int * i);
#endif
函数的签名已从(int i)更改为(const int i),这很好。头文件也被更改(警卫),但签名保持不变。从而。代码不再编译。
我的compile_commands.json看起来像这样
[
{
"directory": "/home/gwe/projekte/clang/tidy",
"command": "clang -c pointer.c -I.",
"file": "pointer.c"
}
]
这是一个铿锵有力的错误还是我做错了? 谢谢你的帮助?
最好的问候,格奥尔格
答案 0 :(得分:1)
此错误已报告给llvm.org。
bugs.llvm.org//show_bug.cgi?id=33219