如何在 Clang AST 中仅识别用户定义的变量?

问题描述

最近我写了一个 Clang-tidy 命名检查,检查用户定义变量的名称是否以 '_' 字符开头。

但是我发现Compiler在处理一些表达式时会定义一些变量。

例如:

int main() {
  int arr[3] = {0,1,2};
  for(auto &i : arr) {
    i++;
  }
}

在处理'for(auto &i : arr)'表达式时,编译器将分别定义三个名称为'__begin1,__end1,__range1'的变量,与我的命名检查匹配,但我想忽略这些编译器定义的变量。>

warning: variable_v name '__begin1' should not start with '_' [readability-ks-variable-naming]
  for(auto &i : arr) {
              ^
warning: variable_v name '__end1' should not start with '_' [readability-ks-variable-naming]

warning: variable_v name '__range1' should not start with '_' [readability-ks-variable-naming]
  for(auto &i : arr) {
                ^

如何在 Clang AST 中仅识别用户定义的变量?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)