|
reference, declaration → definition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
|
Derived Classes
tools/clang/include/clang/Analysis/CFG.h 132 class CFGStmt : public CFGElement {
225 class CFGInitializer : public CFGElement {
245 class CFGNewAllocator : public CFGElement {
271 class CFGLoopExit : public CFGElement {
290 class CFGLifetimeEnds : public CFGElement {
315 class CFGScopeBegin : public CFGElement {
341 class CFGScopeEnd : public CFGElement {
364 class CFGImplicitDtor : public CFGElement {
Declarations
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SubEngine.h 22 class CFGElement;
References
include/llvm/ADT/Optional.h 144 T value;
160 explicit OptionalStorage(in_place_t, Args &&... args)
161 : value(std::forward<Args>(args)...), hasVal(true) {}
172 T &getValue() LLVM_LVALUE_FUNCTION noexcept {
176 T const &getValue() const LLVM_LVALUE_FUNCTION noexcept {
181 T &&getValue() && noexcept {
216 optional_detail::OptionalStorage<T> Storage;
219 using value_type = T;
224 Optional(const T &y) : Storage(optional_detail::in_place_t{}, y) {}
227 Optional(T &&y) : Storage(optional_detail::in_place_t{}, std::move(y)) {}
230 Optional &operator=(T &&y) {
241 static inline Optional create(const T *y) {
245 Optional &operator=(const T &y) {
253 const T *getPointer() const { return &Storage.getValue(); }
254 T *getPointer() { return &Storage.getValue(); }
255 const T &getValue() const LLVM_LVALUE_FUNCTION { return Storage.getValue(); }
256 T &getValue() LLVM_LVALUE_FUNCTION { return Storage.getValue(); }
260 const T *operator->() const { return getPointer(); }
261 T *operator->() { return getPointer(); }
262 const T &operator*() const LLVM_LVALUE_FUNCTION { return getValue(); }
263 T &operator*() LLVM_LVALUE_FUNCTION { return getValue(); }
266 constexpr T getValueOr(U &&value) const LLVM_LVALUE_FUNCTION {
271 T &&getValue() && { return std::move(Storage.getValue()); }
272 T &&operator*() && { return std::move(Storage.getValue()); }
275 T getValueOr(U &&value) && {
include/llvm/Support/Allocator.h 81 template <typename T> T *Allocate(size_t Num = 1) {
82 return static_cast<T *>(Allocate(Num * sizeof(T), alignof(T)));
82 return static_cast<T *>(Allocate(Num * sizeof(T), alignof(T)));
include/llvm/Support/type_traits.h 91 T t;
122 static auto get(F*) -> decltype(std::declval<F &>() = std::declval<const F &>(), std::true_type{});
122 static auto get(F*) -> decltype(std::declval<F &>() = std::declval<const F &>(), std::true_type{});
122 static auto get(F*) -> decltype(std::declval<F &>() = std::declval<const F &>(), std::true_type{});
130 static auto get(F*) -> decltype(std::declval<F &>() = std::declval<F &&>(), std::true_type{});
130 static auto get(F*) -> decltype(std::declval<F &>() = std::declval<F &&>(), std::true_type{});
130 static auto get(F*) -> decltype(std::declval<F &>() = std::declval<F &&>(), std::true_type{});
145 std::is_copy_constructible<detail::trivial_helper<T>>::value;
147 !std::is_copy_constructible<T>::value;
151 std::is_move_constructible<detail::trivial_helper<T>>::value;
153 !std::is_move_constructible<T>::value;
157 is_copy_assignable<detail::trivial_helper<T>>::value;
159 !is_copy_assignable<T>::value;
163 is_move_assignable<detail::trivial_helper<T>>::value;
165 !is_move_assignable<T>::value;
169 std::is_destructible<detail::trivial_helper<T>>::value;
tools/clang/include/clang/Analysis/Analyses/ThreadSafetyCommon.h 204 for (const auto &BI : *CurrBlock) {
206 case CFGElement::Statement:
210 case CFGElement::AutomaticObjectDtor: {
tools/clang/include/clang/Analysis/CFG.h 101 CFGElement& e = t;
113 CFGElement& e = t;
132 class CFGStmt : public CFGElement {
145 static bool isKind(const CFGElement &E) {
173 static bool isKind(const CFGElement &E) {
218 static bool isKind(const CFGElement &E) {
225 class CFGInitializer : public CFGElement {
239 static bool isKind(const CFGElement &E) {
245 class CFGNewAllocator : public CFGElement {
260 static bool isKind(const CFGElement &elem) {
271 class CFGLoopExit : public CFGElement {
284 static bool isKind(const CFGElement &elem) {
290 class CFGLifetimeEnds : public CFGElement {
308 static bool isKind(const CFGElement &elem) {
315 class CFGScopeBegin : public CFGElement {
333 static bool isKind(const CFGElement &E) {
341 class CFGScopeEnd : public CFGElement {
356 static bool isKind(const CFGElement &E) {
364 class CFGImplicitDtor : public CFGElement {
380 static bool isKind(const CFGElement &E) {
408 static bool isKind(const CFGElement &elem) {
433 static bool isKind(const CFGElement &elem) {
454 static bool isKind(const CFGElement &E) {
475 static bool isKind(const CFGElement &E) {
496 static bool isKind(const CFGElement &E) {
578 using ImplTy = BumpVector<CFGElement>;
591 void push_back(CFGElement e, BumpVectorContext &C) { Impl.push_back(e, C); }
593 reverse_iterator insert(reverse_iterator I, size_t Cnt, CFGElement E,
610 CFGElement operator[](size_t i) const {
629 using CFGElementPtr = typename std::conditional<IsConst, const CFGElement *,
630 CFGElement *>::type;
659 CFGElement operator*() const { return (*Parent)[Index]; }
873 CFGElement front() const { return Elements.front(); }
874 CFGElement back() const { return Elements.back(); }
921 CFGElement operator[](size_t i) const { return Elements[i]; }
tools/clang/include/clang/Analysis/ProgramPoint.h 237 Optional<CFGElement> getFirstElement() const {
tools/clang/include/clang/Analysis/Support/BumpVector.h 60 T *Begin = nullptr;
61 T *End = nullptr;
62 T *Capacity = nullptr;
71 if (std::is_class<T>::value) {
79 using value_type = T;
80 using iterator = T *;
81 using const_iterator = const T *;
86 using reference = T &;
87 using const_reference = const T &;
88 using pointer = T *;
89 using const_pointer = const T *;
136 T pop_back_val() {
162 new (End) T(Elt);
202 void construct_range(T *S, T *E, const T &Elt) {
202 void construct_range(T *S, T *E, const T &Elt) {
202 void construct_range(T *S, T *E, const T &Elt) {
204 new (S) T(Elt);
207 void destroy_range(T *S, T *E) {
207 void destroy_range(T *S, T *E) {
214 void move_range_right(T *S, T *E, size_t D) {
214 void move_range_right(T *S, T *E, size_t D) {
215 for (T *I = E + D - 1, *IL = S + D - 1; I != IL; --I) {
217 new (I) T(*E);
233 T *NewElts = C.getAllocator().template Allocate<T>(NewCapacity);
233 T *NewElts = C.getAllocator().template Allocate<T>(NewCapacity);
237 if (std::is_class<T>::value) {
243 memcpy(NewElts, Begin, CurSize * sizeof(T));
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h 272 void processCFGElement(const CFGElement E, ExplodedNode *Pred,
659 CFGElement getCurrentCFGElement() {
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SubEngine.h 62 virtual void processCFGElement(const CFGElement E, ExplodedNode* Pred,
tools/clang/lib/Analysis/CFG.cpp 4951 case CFGElement::Initializer:
4952 case CFGElement::NewAllocator:
4953 case CFGElement::LoopExit:
4954 case CFGElement::LifetimeEnds:
4955 case CFGElement::Statement:
4956 case CFGElement::Constructor:
4957 case CFGElement::CXXRecordTypedCall:
4958 case CFGElement::ScopeBegin:
4959 case CFGElement::ScopeEnd:
4962 case CFGElement::AutomaticObjectDtor: {
4988 case CFGElement::DeleteDtor: {
4996 case CFGElement::TemporaryDtor: {
5002 case CFGElement::BaseDtor:
5003 case CFGElement::MemberDtor:
5399 const CFGElement &E);
5407 const CFGElement &E) {
5409 case CFGElement::Kind::Statement:
5410 case CFGElement::Kind::CXXRecordTypedCall:
5411 case CFGElement::Kind::Constructor: {
5469 case CFGElement::Kind::Initializer:
5474 case CFGElement::Kind::AutomaticObjectDtor: {
5489 case CFGElement::Kind::LifetimeEnds:
5494 case CFGElement::Kind::LoopExit:
5498 case CFGElement::Kind::ScopeBegin:
5505 case CFGElement::Kind::ScopeEnd:
5512 case CFGElement::Kind::NewAllocator:
5519 case CFGElement::Kind::DeleteDtor: {
5532 case CFGElement::Kind::BaseDtor: {
5539 case CFGElement::Kind::MemberDtor: {
5548 case CFGElement::Kind::TemporaryDtor: {
tools/clang/lib/Analysis/CFGStmtMap.cpp 51 const CFGElement &CE = *I;
tools/clang/lib/Analysis/Consumed.cpp 64 for (const auto &B : *Block)
1342 for (const auto &B : *CurrBlock) {
1344 case CFGElement::Statement:
1348 case CFGElement::TemporaryDtor: {
1359 case CFGElement::AutomaticObjectDtor: {
tools/clang/lib/Analysis/LiveVariables.cpp 510 const CFGElement &elem = *it;
tools/clang/lib/Analysis/PathDiagnostic.cpp 511 CFGElement Source = Block[SFC->getIndex()];
514 case CFGElement::Statement:
515 case CFGElement::Constructor:
516 case CFGElement::CXXRecordTypedCall:
519 case CFGElement::Initializer: {
524 case CFGElement::AutomaticObjectDtor: {
529 case CFGElement::DeleteDtor: {
533 case CFGElement::BaseDtor:
534 case CFGElement::MemberDtor: {
540 case CFGElement::NewAllocator: {
544 case CFGElement::TemporaryDtor: {
552 case CFGElement::ScopeBegin:
553 case CFGElement::ScopeEnd:
555 case CFGElement::LifetimeEnds:
556 case CFGElement::LoopExit:
698 if (Optional<CFGElement> BlockFront = BE->getFirstElement()) {
tools/clang/lib/Analysis/ThreadSafety.cpp 776 for (const auto &BI : *CurrBlock) {
778 case CFGElement::Statement: {
834 for (const auto &BI : *CurrBlock) {
2240 CFGElement Last = B->back();
2463 for (const auto &BI : *CurrBlock) {
2465 case CFGElement::Statement: {
2471 case CFGElement::AutomaticObjectDtor: {
tools/clang/lib/Analysis/UninitializedValues.cpp 857 for (const auto &I : *block) {
tools/clang/lib/Sema/AnalysisBasedWarnings.cpp 188 for (const auto &B : Block) {
189 if (B.getKind() != CFGElement::Statement)
326 for (CFGElement &E : *B) {
tools/clang/lib/StaticAnalyzer/Checkers/AnalysisOrderChecker.cpp 133 CFGElement LastElement = Map->getBlock(S)->back();
tools/clang/lib/StaticAnalyzer/Checkers/AnalyzerStatsChecker.cpp 126 const CFGElement &CE = Exit->front();
tools/clang/lib/StaticAnalyzer/Core/CallEvent.cpp 1408 CFGElement E = (*B)[CalleeCtx->getIndex()];
tools/clang/lib/StaticAnalyzer/Core/CoreEngine.cpp 246 CFGElement LastElement = L.getSrc()->back();
288 if (Optional<CFGElement> E = L.getFirstElement()) {
539 if ((*Block)[Idx].getKind() == CFGElement::NewAllocator) {
tools/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp 627 void ExprEngine::processCFGElement(const CFGElement E, ExplodedNode *Pred,
634 case CFGElement::Statement:
635 case CFGElement::Constructor:
636 case CFGElement::CXXRecordTypedCall:
639 case CFGElement::Initializer:
642 case CFGElement::NewAllocator:
646 case CFGElement::AutomaticObjectDtor:
647 case CFGElement::DeleteDtor:
648 case CFGElement::BaseDtor:
649 case CFGElement::MemberDtor:
650 case CFGElement::TemporaryDtor:
653 case CFGElement::LoopExit:
656 case CFGElement::LifetimeEnds:
657 case CFGElement::ScopeBegin:
658 case CFGElement::ScopeEnd:
908 case CFGElement::AutomaticObjectDtor:
911 case CFGElement::BaseDtor:
914 case CFGElement::MemberDtor:
917 case CFGElement::TemporaryDtor:
920 case CFGElement::DeleteDtor:
2076 CFGElement Elem = *I;
tools/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp 817 for (CFGElement CE : llvm::reverse(*SrcBlock)) {
tools/clang/tools/extra/clang-tidy/bugprone/UseAfterMoveCheck.cpp 232 for (const auto &Elem : *Block) {
331 for (const auto &Elem : *Block) {
tools/clang/tools/extra/clang-tidy/utils/ExprSequence.cpp 189 for (const auto &Elem : *B) {
usr/include/c++/7.4.0/bits/move.h 46 inline _GLIBCXX_CONSTEXPR _Tp*
47 __addressof(_Tp& __r) _GLIBCXX_NOEXCEPT
72 constexpr _Tp&&
73 forward(typename std::remove_reference<_Tp>::type& __t) noexcept
83 constexpr _Tp&&
84 forward(typename std::remove_reference<_Tp>::type&& __t) noexcept
98 move(_Tp&& __t) noexcept
usr/include/c++/7.4.0/bits/stl_construct.h 74 _Construct(_T1* __p, _Args&&... __args)
74 _Construct(_T1* __p, _Args&&... __args)
75 { ::new(static_cast<void*>(__p)) _T1(std::forward<_Args>(__args)...); }
usr/include/c++/7.4.0/bits/stl_iterator_base_types.h 123 typedef _Tp value_type;
181 typedef _Tp value_type;
183 typedef _Tp* pointer;
184 typedef _Tp& reference;
192 typedef _Tp value_type;
194 typedef const _Tp* pointer;
195 typedef const _Tp& reference;
usr/include/c++/7.4.0/type_traits 215 : public __is_void_helper<typename remove_cv<_Tp>::type>::type
326 : public __is_integral_helper<typename remove_cv<_Tp>::type>::type
354 : public __is_floating_point_helper<typename remove_cv<_Tp>::type>::type
381 : public __is_pointer_helper<typename remove_cv<_Tp>::type>::type
567 : public __is_null_pointer_helper<typename remove_cv<_Tp>::type>::type
581 : public __or_<is_lvalue_reference<_Tp>,
582 is_rvalue_reference<_Tp>>::type
588 : public __or_<is_integral<_Tp>, is_floating_point<_Tp>>::type
588 : public __or_<is_integral<_Tp>, is_floating_point<_Tp>>::type
601 : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
601 : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
602 is_void<_Tp>>>::type
611 : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>,
611 : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>,
611 : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>,
612 is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type
612 is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type
631 : public __is_member_pointer_helper<typename remove_cv<_Tp>::type>::type
638 : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
638 : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
777 : public __and_<is_array<_Tp>, __not_<extent<_Tp>>>
777 : public __and_<is_array<_Tp>, __not_<extent<_Tp>>>
798 typedef decltype(__test<_Tp>(0)) type;
811 remove_all_extents<_Tp>::type>::type
825 : public __is_destructible_safe<_Tp>::type
984 typedef decltype(__test<_Tp, _Arg>(0)) type;
989 : public __and_<is_destructible<_Tp>,
990 __is_direct_constructible_impl<_Tp, _Arg>>
1072 __is_direct_constructible_ref_cast<_Tp, _Arg>,
1073 __is_direct_constructible_new_safe<_Tp, _Arg>
1079 : public __is_direct_constructible_new<_Tp, _Arg>::type
1119 : public __is_direct_constructible<_Tp, _Arg>
1130 : public __is_constructible_impl<_Tp, _Args...>::type
1142 : public is_constructible<_Tp, const _Tp&>
1142 : public is_constructible<_Tp, const _Tp&>
1148 : public __is_copy_constructible_impl<_Tp>
1160 : public is_constructible<_Tp, _Tp&&>
1160 : public is_constructible<_Tp, _Tp&&>
1166 : public __is_move_constructible_impl<_Tp>
1554 { typedef _Tp type; };
1563 { typedef _Tp type; };
1574 remove_const<typename remove_volatile<_Tp>::type>::type type;
1629 { typedef _Tp type; };
1633 { typedef _Tp type; };
1659 { typedef _Tp&& type; };
1955 { typedef _Tp type; };