003 File Manager
Current Path:
/usr/src/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/WebKit
usr
/
src
/
contrib
/
llvm-project
/
clang
/
lib
/
StaticAnalyzer
/
Checkers
/
WebKit
/
📁
..
📄
ASTUtils.cpp
(2.64 KB)
📄
ASTUtils.h
(3.06 KB)
📄
DiagOutputUtils.h
(1.12 KB)
📄
NoUncountedMembersChecker.cpp
(4.82 KB)
📄
PtrTypesSemantics.cpp
(4.59 KB)
📄
PtrTypesSemantics.h
(2.06 KB)
📄
RefCntblBaseVirtualDtorChecker.cpp
(5.34 KB)
📄
UncountedCallArgsChecker.cpp
(6.41 KB)
Editing: PtrTypesSemantics.h
//=======- PtrTypesSemantics.cpp ---------------------------------*- C++ -*-==// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #ifndef LLVM_CLANG_ANALYZER_WEBKIT_PTRTYPESEMANTICS_H #define LLVM_CLANG_ANALYZER_WEBKIT_PTRTYPESEMANTICS_H namespace clang { class CXXBaseSpecifier; class CXXMethodDecl; class CXXRecordDecl; class Expr; class FunctionDecl; class Type; // Ref-countability of a type is implicitly defined by Ref<T> and RefPtr<T> // implementation. It can be modeled as: type T having public methods ref() and // deref() // In WebKit there are two ref-counted templated smart pointers: RefPtr<T> and // Ref<T>. /// \returns CXXRecordDecl of the base if the type is ref-countable, nullptr if /// not. const clang::CXXRecordDecl *isRefCountable(const clang::CXXBaseSpecifier *Base); /// \returns true if \p Class is ref-countable, false if not. /// Asserts that \p Class IS a definition. bool isRefCountable(const clang::CXXRecordDecl *Class); /// \returns true if \p Class is ref-counted, false if not. bool isRefCounted(const clang::CXXRecordDecl *Class); /// \returns true if \p Class is ref-countable AND not ref-counted, false if /// not. Asserts that \p Class IS a definition. bool isUncounted(const clang::CXXRecordDecl *Class); /// \returns true if \p T is either a raw pointer or reference to an uncounted /// class, false if not. bool isUncountedPtr(const clang::Type *T); /// \returns true if \p F creates ref-countable object from uncounted parameter, /// false if not. bool isCtorOfRefCounted(const clang::FunctionDecl *F); /// \returns true if \p M is getter of a ref-counted class, false if not. bool isGetterOfRefCounted(const clang::CXXMethodDecl *Method); /// \returns true if \p F is a conversion between ref-countable or ref-counted /// pointer types. bool isPtrConversion(const FunctionDecl *F); } // namespace clang #endif
Upload File
Create Folder