|
reference, declaration → definition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
|
Derived Classes
tools/clang/lib/Analysis/ThreadSafety.cpp 107 class FactEntry : public CapabilityExpr {
References
include/llvm/ADT/SmallVector.h 75 AlignedCharArrayUnion<T> FirstEl;
114 using value_type = T;
115 using iterator = T *;
116 using const_iterator = const T *;
121 using reference = T &;
122 using const_reference = const T &;
123 using pointer = T *;
124 using const_pointer = const T *;
259 class SmallVectorTemplateBase<T, true> : public SmallVectorTemplateCommon<T> {
264 static void destroy_range(T *, T *) {}
264 static void destroy_range(T *, T *) {}
299 void grow(size_t MinSize = 0) { this->grow_pod(MinSize, sizeof(T)); }
302 void push_back(const T &Elt) {
305 memcpy(reinterpret_cast<void *>(this->end()), &Elt, sizeof(T));
315 class SmallVectorImpl : public SmallVectorTemplateBase<T> {
316 using SuperClass = SmallVectorTemplateBase<T>;
357 void resize(size_type N, const T &NV) {
374 LLVM_NODISCARD T pop_back_val() {
397 void append(size_type NumInputs, const T &Elt) {
405 void append(std::initializer_list<T> IL) {
412 void assign(size_type NumElts, const T &Elt) {
429 void assign(std::initializer_list<T> IL) {
467 iterator insert(iterator I, T &&Elt) {
497 iterator insert(iterator I, const T &Elt) {
526 iterator insert(iterator I, size_type NumToInsert, const T &Elt) {
637 void insert(iterator I, std::initializer_list<T> IL) {
820 AlignedCharArrayUnion<T> InlineElts[N];
837 class SmallVector : public SmallVectorImpl<T>, SmallVectorStorage<T, N> {
837 class SmallVector : public SmallVectorImpl<T>, SmallVectorStorage<T, N> {
846 explicit SmallVector(size_t Size, const T &Value = T())
865 SmallVector(std::initializer_list<T> IL) : SmallVectorImpl<T>(N) {
884 SmallVector(SmallVectorImpl<T> &&RHS) : SmallVectorImpl<T>(N) {
include/llvm/Support/AlignOf.h 30 T t;
39 template <typename T> union SizerImpl<T> { char arr[sizeof(T)]; };
50 llvm::detail::SizerImpl<T, Ts...>)];
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 284 CapabilityExpr operator!() const {
288 bool equals(const CapabilityExpr &other) const {
292 bool matches(const CapabilityExpr &other) const {
296 bool matchesUniv(const CapabilityExpr &CapE) const {
300 bool partiallyMatches(const CapabilityExpr &other) const {
371 CapabilityExpr translateAttrExpr(const Expr *AttrExp, const NamedDecl *D,
374 CapabilityExpr translateAttrExpr(const Expr *AttrExp, CallingContext *Ctx);
tools/clang/lib/Analysis/ThreadSafety.cpp 85 class CapExprSet : public SmallVector<CapabilityExpr, 4> {
88 void push_back_nodup(const CapabilityExpr &CapE) {
107 class FactEntry : public CapabilityExpr {
122 FactEntry(const CapabilityExpr &CE, LockKind LK, SourceLocation Loc,
143 const CapabilityExpr &Cp, SourceLocation UnlockLoc,
212 bool removeLock(FactManager& FM, const CapabilityExpr &CapE) {
231 iterator findLockIter(FactManager &FM, const CapabilityExpr &CapE) {
237 const FactEntry *findLock(FactManager &FM, const CapabilityExpr &CapE) const {
245 const CapabilityExpr &CapE) const {
253 const CapabilityExpr &CapE) const {
859 LockableFactEntry(const CapabilityExpr &CE, LockKind LK, SourceLocation Loc,
880 const CapabilityExpr &Cp, SourceLocation UnlockLoc,
905 ScopedLockableFactEntry(const CapabilityExpr &CE, SourceLocation Loc)
908 void addExclusiveLock(const CapabilityExpr &M) {
912 void addSharedLock(const CapabilityExpr &M) {
916 void addExclusiveUnlock(const CapabilityExpr &M) {
920 void addSharedUnlock(const CapabilityExpr &M) {
946 CapabilityExpr UnderCp(UnderlyingMutex.getPointer(), false);
957 const CapabilityExpr &Cp, SourceLocation UnlockLoc,
962 CapabilityExpr UnderCp(UnderlyingMutex.getPointer(), false);
981 void lock(FactSet &FSet, FactManager &FactMan, const CapabilityExpr &Cp,
994 void unlock(FactSet &FSet, FactManager &FactMan, const CapabilityExpr &Cp,
1028 bool inCurrentScope(const CapabilityExpr &CapE);
1032 void removeLock(FactSet &FSet, const CapabilityExpr &CapE,
1090 CapabilityExpr Cp =
1106 CapabilityExpr Cp =
1271 bool ThreadSafetyAnalyzer::inCurrentScope(const CapabilityExpr &CapE) {
1292 CapabilityExpr NegC = !*Entry;
1322 void ThreadSafetyAnalyzer::removeLock(FactSet &FSet, const CapabilityExpr &Cp,
1354 CapabilityExpr Cp = SxBuilder.translateAttrExpr(nullptr, D, Exp, SelfDecl);
1366 CapabilityExpr Cp = SxBuilder.translateAttrExpr(Arg, D, Exp, SelfDecl);
1553 for (const auto &ExclusiveLockToAdd : ExclusiveLocksToAdd)
1557 for (const auto &SharedLockToAdd : SharedLocksToAdd)
1619 CapabilityExpr Cp = Analyzer->SxBuilder.translateAttrExpr(MutexExp, D, Exp);
1678 CapabilityExpr Cp = Analyzer->SxBuilder.translateAttrExpr(MutexExp, D, Exp);
1841 for (const auto &AssertLock : AssertLocks)
1853 for (const auto &AssertLock : AssertLocks)
1865 for (const auto &AssertLock : AssertLocks)
1922 for (const auto &M : ExclusiveLocksToRemove)
1924 for (const auto &M : SharedLocksToRemove)
1926 for (const auto &M : GenericLocksToRemove)
1930 for (const auto &M : ExclusiveLocksToAdd)
1934 for (const auto &M : SharedLocksToAdd)
1945 CapabilityExpr Scp = Analyzer->SxBuilder.translateAttrExpr(&DRE, nullptr);
1948 for (const auto &M : ExclusiveLocksToAdd)
1950 for (const auto &M : ScopedExclusiveReqs)
1952 for (const auto &M : SharedLocksToAdd)
1954 for (const auto &M : ScopedSharedReqs)
1956 for (const auto &M : ExclusiveLocksToRemove)
1958 for (const auto &M : SharedLocksToRemove)
2351 for (const auto &Mu : ExclusiveLocksToAdd) {
2356 for (const auto &Mu : SharedLocksToAdd) {
2525 for (const auto &Lock : ExclusiveLocksAcquired)
2528 for (const auto &Lock : SharedLocksAcquired)
2531 for (const auto &Lock : LocksReleased)
tools/clang/lib/Analysis/ThreadSafetyCommon.cpp 95 CapabilityExpr SExprBuilder::translateAttrExpr(const Expr *AttrExp,
151 CapabilityExpr SExprBuilder::translateAttrExpr(const Expr *AttrExp,
usr/include/c++/7.4.0/bits/move.h 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
usr/include/c++/7.4.0/bits/stl_iterator_base_types.h 181 typedef _Tp value_type;
183 typedef _Tp* pointer;
184 typedef _Tp& reference;
usr/include/c++/7.4.0/bits/unique_ptr.h 824 make_unique(_Args&&... __args)
825 { return unique_ptr<_Tp>(new _Tp(std::forward<_Args>(__args)...)); }
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; };