blob: e43995a6714ad9d58e5e0685cec61a66c23513c9 [file] [log] [blame]
Olivier Deprezf4ef2d02021-04-20 13:36:24 +02001//===------------- Aliasing.h - clang-tidy --------------------------------===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_UTILS_ALIASING_H
10#define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_UTILS_ALIASING_H
11
12#include "clang/AST/Decl.h"
13
14namespace clang {
15namespace tidy {
16namespace utils {
17
18/// Returns whether \p Var has a pointer or reference in \p Func.
19///
20/// Example:
21/// void f() {
22/// int n;
23/// ...
24/// int *p = &n;
25/// }
26///
27/// For `f()` and `n` the function returns ``true`` because `p` is a
28/// pointer to `n` created in `f()`.
29
30bool hasPtrOrReferenceInFunc(const FunctionDecl *Func, const VarDecl *Var);
31
32} // namespace utils
33} // namespace tidy
34} // namespace clang
35
36#endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_UTILS_ALIASING_H