У меня есть следующий код:
int *&F(int *x) {
int **p = &x;
return *p;
}
int main() {
int A[] = {0, 1, 2, 3, 4}, *y = A + 2, *&q = F(y);
cout << *q << ' ' << *y << endl;
}
Теперь я вижу, что мы возвращаем ссылку x
, но ни clang, ни Clion (используя clang-tidy) не выдают предупреждение для этого код. Является ли это проблемой для анализа stati c, который слишком сложен для отслеживания указателя и, следовательно, для того, чтобы знать, что он указывает, или это не возвращает висячую ссылку?