|
|
|||
File indexing completed on 2026-05-10 08:36:18
0001 //===--- CloexecOpenCheck.h - clang-tidy-----------------------------------===// 0002 // 0003 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 0004 // See https://llvm.org/LICENSE.txt for license information. 0005 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 0006 // 0007 //===----------------------------------------------------------------------===// 0008 0009 #ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_ANDROID_CLOEXEC_OPEN_H 0010 #define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_ANDROID_CLOEXEC_OPEN_H 0011 0012 #include "CloexecCheck.h" 0013 0014 namespace clang::tidy::android { 0015 0016 /// Finds code that opens file without using the O_CLOEXEC flag. 0017 /// 0018 /// open(), openat(), and open64() had better to include O_CLOEXEC in their 0019 /// flags argument. Only consider simple cases that the corresponding argument 0020 /// is constant or binary operation OR among constants like 'O_CLOEXEC' or 0021 /// 'O_CLOEXEC | O_RDONLY'. No constant propagation is performed. 0022 /// 0023 /// Only the symbolic 'O_CLOEXEC' macro definition is checked, not the concrete 0024 /// value. 0025 class CloexecOpenCheck : public CloexecCheck { 0026 public: 0027 CloexecOpenCheck(StringRef Name, ClangTidyContext *Context) 0028 : CloexecCheck(Name, Context) {} 0029 void registerMatchers(ast_matchers::MatchFinder *Finder) override; 0030 void check(const ast_matchers::MatchFinder::MatchResult &Result) override; 0031 }; 0032 0033 } // namespace clang::tidy::android 0034 0035 #endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_ANDROID_CLOEXEC_OPEN_H
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|