reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

Declarations

gen/tools/clang/include/clang/AST/DeclNodes.inc
  159 OBJCPROTOCOL(ObjCProtocol, ObjCContainerDecl)
tools/clang/include/clang/AST/ASTContext.h
  114 class ObjCProtocolDecl;
tools/clang/include/clang/AST/DeclBase.h
   62 class ObjCProtocolDecl;
tools/clang/include/clang/AST/DeclObjC.h
   56 class ObjCProtocolDecl;
tools/clang/include/clang/AST/Type.h
  112 class ObjCProtocolDecl;
tools/clang/include/clang/AST/TypeLoc.h
   40 class ObjCProtocolDecl;
tools/clang/include/clang/Edit/Rewriters.h
   16   class ObjCProtocolDecl;
tools/clang/include/clang/Sema/Sema.h
  154   class ObjCProtocolDecl;
tools/clang/lib/CodeGen/CGObjCRuntime.h
   49   class ObjCProtocolDecl;
tools/clang/lib/CodeGen/CodeGenModule.h
   59 class ObjCProtocolDecl;
tools/clang/tools/libclang/CXCursor.h
   36 class ObjCProtocolDecl;
tools/lldb/include/lldb/Core/ClangForward.h
   87 class ObjCProtocolDecl;

References

gen/tools/clang/include/clang/Sema/AttrParsedAttrImpl.inc
 2091   if (!D || (!isa<ObjCProtocolDecl>(D))) {
 2231   if (!D || (!isa<ObjCInterfaceDecl>(D) && !isa<ObjCProtocolDecl>(D))) {
 3550     return isa<ObjCProtocolDecl>(D);
include/llvm/ADT/ArrayRef.h
  108         const ArrayRef<U *> &A,
  110            std::is_convertible<U *const *, T const *>::value>::type * = nullptr)
  118       const SmallVectorTemplateCommon<U *, DummyT> &Vec,
  120           std::is_convertible<U *const *, T const *>::value>::type * = nullptr)
  127     ArrayRef(const std::vector<U *, A> &Vec,
  129                  std::is_convertible<U *const *, T const *>::value>::type* = 0)
include/llvm/ADT/STLExtras.h
   75       typename std::add_pointer<typename std::add_const<T>::type>::type;
include/llvm/Support/Casting.h
   57   static inline bool doit(const From &Val) {
   58     return To::classof(&Val);
   66   static inline bool doit(const From &) { return true; }
  104   static inline bool doit(const From *Val) {
  106     return isa_impl<To, From>::doit(*Val);
  106     return isa_impl<To, From>::doit(*Val);
  122     return isa_impl_wrap<To, SimpleFrom,
  132     return isa_impl_cl<To,FromTy>::doit(Val);
  142   return isa_impl_wrap<X, const Y,
  172   using ret_type = To *;       // Pointer arg case, return Ty*
  176   using ret_type = const To *; // Constant pointer arg case, return const Ty*
  198   using ret_type = typename cast_retty<To, SimpleFrom>::ret_type;
  204   using ret_type = typename cast_retty_impl<To,FromTy>::ret_type;
  210       To, From, typename simplify_type<From>::SimpleType>::ret_type;
  227   static typename cast_retty<To, FromTy>::ret_type doit(const FromTy &Val) {
  228     typename cast_retty<To, FromTy>::ret_type Res2
  256 inline typename cast_retty<X, Y>::ret_type cast(Y &Val) {
  263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
  263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
  263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
  265   return cast_convert_val<X, Y*,
  265   return cast_convert_val<X, Y*,
  266                           typename simplify_type<Y*>::SimpleType>::doit(Val);
  305 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
  309   return cast<X>(Val);
  337 LLVM_NODISCARD inline typename cast_retty<X, Y>::ret_type dyn_cast(Y &Val) {
  342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
  342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
  342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
  343   return isa<X>(Val) ? cast<X>(Val) : nullptr;
  343   return isa<X>(Val) ? cast<X>(Val) : nullptr;
  360                             typename cast_retty<X, Y>::ret_type>::type
  366 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
  368   return (Val && isa<X>(Val)) ? cast<X>(Val) : nullptr;
  368   return (Val && isa<X>(Val)) ? cast<X>(Val) : nullptr;
include/llvm/Support/PointerLikeTypeTraits.h
   56   static inline void *getAsVoidPointer(T *P) { return P; }
   57   static inline T *getFromVoidPointer(void *P) { return static_cast<T *>(P); }
   59   enum { NumLowBitsAvailable = detail::ConstantLog2<alignof(T)>::value };
   91   typedef PointerLikeTypeTraits<T *> NonConst;
   93   static inline const void *getAsVoidPointer(const T *P) {
   96   static inline const T *getFromVoidPointer(const void *P) {
tools/clang/include/clang/AST/ASTContext.h
 1155       ArrayRef<ObjCProtocolDecl *> protocols, bool &hasError,
 1497                              ObjCProtocolDecl * const *Protocols,
 1502                              ArrayRef<ObjCProtocolDecl *> protocols,
 1506                                 ArrayRef<ObjCProtocolDecl *> protocols) const;
 1839   bool ProtocolCompatibleWithProtocol(ObjCProtocolDecl *lProto,
 1840                                       ObjCProtocolDecl *rProto) const;
 2271                           llvm::SmallPtrSet<ObjCProtocolDecl*, 8> &Protocols);
tools/clang/include/clang/AST/ASTTypeTraits.h
   65     return ASTNodeKind(KindToKindId<T>::Id);
   65     return ASTNodeKind(KindToKindId<T>::Id);
   65     return ASTNodeKind(KindToKindId<T>::Id);
tools/clang/include/clang/AST/Decl.h
 4406     decl_type *MostRecent = First->getNextRedeclaration();
 4407     RedeclLink = PreviousDeclLink(cast<decl_type>(MostRecent));
tools/clang/include/clang/AST/DeclBase.h
 2474   static const ToTy *doit(const DeclContext *Val) {
 2478   static ToTy *doit(DeclContext *Val) {
 2491     return To::classofKind(Val.getDeclKind());
 2514   static const ToTy *doit(const ::clang::DeclContext *Val) {
 2515     return ::clang::cast_convert_decl_context<ToTy>::doit(Val);
 2521   static ToTy *doit(::clang::DeclContext *Val) {
 2522     return ::clang::cast_convert_decl_context<ToTy>::doit(Val);
 2536   static ::clang::DeclContext *doit(const FromTy *Val) {
 2537     return FromTy::castToDeclContext(Val);
tools/clang/include/clang/AST/DeclObjC.h
   84   void set(T* const* InList, unsigned Elts, ASTContext &Ctx) {
   88   using iterator = T* const *;
   93   T* operator[](unsigned Idx) const {
  101 class ObjCProtocolList : public ObjCList<ObjCProtocolDecl> {
  114   void set(ObjCProtocolDecl* const* InList, unsigned Elts,
 1105   using ProtocolPropertySet = llvm::SmallDenseSet<const ObjCProtocolDecl *, 8>;
 1191     ObjCList<ObjCProtocolDecl> AllReferencedProtocols;
 1420   using all_protocol_iterator = ObjCList<ObjCProtocolDecl>::iterator;
 1491   void setProtocolList(ObjCProtocolDecl *const* List, unsigned Num,
 1498   void mergeClassExtensionProtocolList(ObjCProtocolDecl *const* List,
 1836   ObjCProtocolDecl *lookupNestedProtocol(IdentifierInfo *Name);
 1899   bool ClassImplementsProtocol(ObjCProtocolDecl *lProto,
 2064                          public Redeclarable<ObjCProtocolDecl> {
 2067     ObjCProtocolDecl *Definition;
 2082                    ObjCProtocolDecl *PrevDecl);
 2093   using redeclarable_base = Redeclarable<ObjCProtocolDecl>;
 2095   ObjCProtocolDecl *getNextRedeclarationImpl() override {
 2099   ObjCProtocolDecl *getPreviousDeclImpl() override {
 2103   ObjCProtocolDecl *getMostRecentDeclImpl() override {
 2112   static ObjCProtocolDecl *Create(ASTContext &C, DeclContext *DC,
 2116                                   ObjCProtocolDecl *PrevDecl);
 2118   static ObjCProtocolDecl *CreateDeserialized(ASTContext &C, unsigned ID);
 2176   void setProtocolList(ObjCProtocolDecl *const*List, unsigned Num,
 2182   ObjCProtocolDecl *lookupProtocolNamed(IdentifierInfo *PName);
 2209   ObjCProtocolDecl *getDefinition() {
 2214   const ObjCProtocolDecl *getDefinition() const {
 2249   ObjCProtocolDecl *getCanonicalDecl() override { return getFirstDecl(); }
 2250   const ObjCProtocolDecl *getCanonicalDecl() const { return getFirstDecl(); }
 2343   void setProtocolList(ObjCProtocolDecl *const*List, unsigned Num,
tools/clang/include/clang/AST/ExprObjC.h
  504   ObjCProtocolDecl *TheProtocol;
  511   ObjCProtocolExpr(QualType T, ObjCProtocolDecl *protocol,
  519   ObjCProtocolDecl *getProtocol() const { return TheProtocol; }
  520   void setProtocol(ObjCProtocolDecl *P) { TheProtocol = P; }
tools/clang/include/clang/AST/JSONNodeDumper.h
  172   template <typename T> void writePreviousDeclImpl(const Redeclarable<T> *D) {
  173     const T *Prev = D->getPreviousDecl();
  250   void VisitObjCProtocolDecl(const ObjCProtocolDecl *D);
tools/clang/include/clang/AST/Redeclarable.h
  113     DeclLink(PreviousTag, decl_type *D) : Link(NotKnownLatest(Previous(D))) {}
  122     decl_type *getPrevious(const decl_type *D) const {
  122     decl_type *getPrevious(const decl_type *D) const {
  137     void setPrevious(decl_type *D) {
  142     void setLatest(decl_type *D) {
  166   static DeclLink PreviousDeclLink(decl_type *D) {
  187   decl_type *First;
  189   decl_type *getNextRedeclaration() const {
  203   decl_type *getPreviousDecl() {
  208   const decl_type *getPreviousDecl() const {
  215   decl_type *getFirstDecl() { return First; }
  219   const decl_type *getFirstDecl() const { return First; }
  225   decl_type *getMostRecentDecl() {
  230   const decl_type *getMostRecentDecl() const {
  236   void setPreviousDecl(decl_type *PrevDecl);
  241     decl_type *Current = nullptr;
  242     decl_type *Starter;
  246     using value_type = decl_type *;
  247     using reference = decl_type *;
  248     using pointer = decl_type *;
  253     explicit redecl_iterator(decl_type *C) : Current(C), Starter(C) {}
  271       decl_type *Next = Current->getNextRedeclaration();
tools/clang/include/clang/AST/TextNodeDumper.h
  341   void VisitObjCProtocolDecl(const ObjCProtocolDecl *D);
tools/clang/include/clang/AST/Type.h
 5489   ObjCProtocolDecl * const *getProtocolStorage() const {
 5493   ObjCProtocolDecl **getProtocolStorage() {
 5501   void initialize(ArrayRef<ObjCProtocolDecl *> protocols) {
 5507              protocols.size() * sizeof(ObjCProtocolDecl*));
 5511   using qual_iterator = ObjCProtocolDecl * const *;
 5527   ObjCProtocolDecl *getProtocol(unsigned I) const {
 5533   ArrayRef<ObjCProtocolDecl *> getProtocols() const {
 5534     return ArrayRef<ObjCProtocolDecl *>(qual_begin(), getNumProtocols());
 5554   ObjCProtocolDecl **getProtocolStorageImpl();
 5568                     ArrayRef<ObjCProtocolDecl *> protocols);
 5581                       ArrayRef<ObjCProtocolDecl *> protocols);
 5642   ObjCProtocolDecl **getProtocolStorageImpl();
 5657                  ArrayRef<ObjCProtocolDecl *> protocols,
 5775                      ArrayRef<ObjCProtocolDecl *> protocols,
 5784                       ArrayRef<ObjCProtocolDecl *> protocols,
 5792 inline ObjCProtocolDecl **ObjCObjectType::getProtocolStorageImpl() {
 5797 inline ObjCProtocolDecl **ObjCTypeParamType::getProtocolStorageImpl() {
 6011   ObjCProtocolDecl *getProtocol(unsigned I) const {
tools/clang/include/clang/AST/TypeLoc.h
  802   ObjCProtocolDecl *getProtocol(unsigned i) const {
  995   ObjCProtocolDecl *getProtocol(unsigned i) const {
tools/clang/include/clang/ASTMatchers/ASTMatchers.h
 1353 extern const internal::VariadicDynCastAllOfMatcher<Decl, ObjCProtocolDecl>
tools/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
  436     return canConvertTo(ast_type_traits::ASTNodeKind::getFromNodeKind<T>());
  445   template <typename T> Matcher<T> convertTo() const {
  447     return unconditionalConvertTo<T>();
  499   explicit Matcher(MatcherInterface<T> *Implementation)
  507           typename std::enable_if<std::is_base_of<From, T>::value &&
  508                                !std::is_same<From, T>::value>::type * = nullptr)
  520             std::is_same<T, QualType>::value &&
  529     static_assert(std::is_base_of<To, T>::value, "Invalid dynCast call.");
  534   bool matches(const T &Node,
  581     return Other.dynCastTo(ast_type_traits::ASTNodeKind::getFromNodeKind<T>());
 1243   operator Matcher<T>() const {
 1245                ast_type_traits::ASTNodeKind::getFromNodeKind<T>())
 1246         .template unconditionalConvertTo<T>();
 1255 class BindableMatcher : public Matcher<T> {
 1257   explicit BindableMatcher(const Matcher<T> &M) : Matcher<T>(M) {}
 1258   explicit BindableMatcher(MatcherInterface<T> *Implementation)
 1265   Matcher<T> bind(StringRef ID) const {
 1370 inline Matcher<T> DynTypedMatcher::unconditionalConvertTo() const {
 1376 BindableMatcher<T> makeAllOfComposite(
 1377     ArrayRef<const Matcher<T> *> InnerMatchers) {
 1388   using PI = llvm::pointee_iterator<const Matcher<T> *const *>;
 1395           ast_type_traits::ASTNodeKind::getFromNodeKind<T>(),
 1397           .template unconditionalConvertTo<T>());
 1408     ArrayRef<const Matcher<InnerT> *> InnerMatchers) {
 1557     : public VariadicFunction<BindableMatcher<SourceT>, Matcher<TargetT>,
 1558                               makeDynCastAllOfComposite<SourceT, TargetT>> {
tools/clang/include/clang/ASTMatchers/Dynamic/VariantValue.h
  199   ast_matchers::internal::Matcher<T> getTypedMatcher() const {
  202         ->template convertTo<T>();
  227       : MatcherOps(ast_type_traits::ASTNodeKind::getFromNodeKind<T>()) {}
  228   typedef ast_matchers::internal::Matcher<T> MatcherT;
  232     return DynTypedMatcher(Matcher.convertTo<T>());
tools/clang/include/clang/Sema/Sema.h
 3551   ObjCProtocolDecl *LookupProtocol(IdentifierInfo *II, SourceLocation IdLoc,
 8561     const ObjCList<ObjCProtocolDecl> &PList);
 8657                                   ArrayRef<ObjCProtocolDecl *> Protocols,
 8669                                ArrayRef<ObjCProtocolDecl *> Protocols,
tools/clang/include/clang/Sema/TypoCorrection.h
  156   DeclClass *getCorrectionDeclAs() const {
  157     return dyn_cast_or_null<DeclClass>(getCorrectionDecl());
  369     return candidate.getCorrectionDeclAs<C>();
tools/clang/include/clang/Serialization/ASTReader.h
 1887   T *ReadDeclAs(ModuleFile &F, const RecordData &R, unsigned &I) {
 1888     return cast_or_null<T>(GetDecl(ReadDeclID(F, R, I)));
 2541   T *readDeclAs() {
 2542     return Reader->ReadDeclAs<T>(*F, Record, Idx);
tools/clang/lib/ARCMigrate/ObjCMT.cpp
  105   llvm::SmallPtrSet<ObjCProtocolDecl *, 32> ObjCProtocolDecls;
  613                                       ObjCProtocolDecl *Protocol) {
  618   if (const ObjCProtocolDecl *PDecl = Protocol->getDefinition())
  647   if (const ObjCProtocolDecl *PDecl = Protocol->getDefinition()) {
  674                     llvm::SmallVectorImpl<ObjCProtocolDecl*> &ConformingProtocols,
  676   const ObjCList<ObjCProtocolDecl> &Protocols = IDecl->getReferencedProtocols();
  849   llvm::SmallPtrSet<ObjCProtocolDecl *, 8> ExplicitProtocols;
  851   llvm::SmallVector<ObjCProtocolDecl *, 8> PotentialImplicitProtocols;
  853   for (ObjCProtocolDecl *ProtDecl : ObjCProtocolDecls)
  863   llvm::SmallVector<ObjCProtocolDecl*, 8> ConformingProtocols;
  874   llvm::SmallVector<ObjCProtocolDecl*, 8> MinimalConformingProtocols;
  877     ObjCProtocolDecl *TargetPDecl = ConformingProtocols[i];
  879       ObjCProtocolDecl *PDecl = ConformingProtocols[i1];
 1871       else if (ObjCProtocolDecl *PDecl = dyn_cast<ObjCProtocolDecl>(*D)) {
 1871       else if (ObjCProtocolDecl *PDecl = dyn_cast<ObjCProtocolDecl>(*D)) {
tools/clang/lib/AST/ASTContext.cpp
 2370                           llvm::SmallPtrSet<ObjCProtocolDecl*, 8> &Protocols) {
 2374     for (auto *Proto : OI->all_referenced_protocols()) {
 2388     for (auto *Proto : OC->protocols()) {
 2391   } else if (const auto *OP = dyn_cast<ObjCProtocolDecl>(CDecl)) {
 2391   } else if (const auto *OP = dyn_cast<ObjCProtocolDecl>(CDecl)) {
 2397     for (auto *Proto : OP->protocols())
 4521 static int CmpProtocolNames(ObjCProtocolDecl *const *LHS,
 4522                             ObjCProtocolDecl *const *RHS) {
 4526 static bool areSortedAndUniqued(ArrayRef<ObjCProtocolDecl *> Protocols) {
 4540 SortAndUniqueProtocols(SmallVectorImpl<ObjCProtocolDecl *> &Protocols) {
 4545   for (ObjCProtocolDecl *&P : Protocols)
 4554                                        ObjCProtocolDecl * const *Protocols,
 4564            ArrayRef<ObjCProtocolDecl *> protocols,
 4611     ArrayRef<ObjCProtocolDecl *> canonProtocols;
 4612     SmallVector<ObjCProtocolDecl*, 8> canonProtocolsVec;
 4630   size += protocols.size() * sizeof(ObjCProtocolDecl *);
 4646                   ArrayRef<ObjCProtocolDecl *> protocols, bool &hasError,
 4660       SmallVector<ObjCProtocolDecl*, 8> protocolsVec;
 4664       ArrayRef<ObjCProtocolDecl *> protocols = protocolsVec;
 4717                                  ArrayRef<ObjCProtocolDecl *> protocols) const {
 4737   size += protocols.size() * sizeof(ObjCProtocolDecl *);
 4756     for (auto *Proto : OPT->quals()) {
 4777   llvm::SmallPtrSet<ObjCProtocolDecl *, 8> InheritedProtocols;
 4784   for (auto *Proto : OPT->quals()) {
 4786     for (auto *PI : InheritedProtocols) {
 4798   for (auto *PI : InheritedProtocols) {
 4801     for (auto *Proto : OPT->quals()) {
 7081         for (const auto *I : OPT->quals()) {
 7096       for (const auto *I : OPT->quals()) {
 7995 ASTContext::ProtocolCompatibleWithProtocol(ObjCProtocolDecl *lProto,
 7996                                            ObjCProtocolDecl *rProto) const {
 7999   for (auto *PI : rProto->protocols())
 8009   for (auto *lhsProto : lhs->quals()) {
 8011     for (auto *rhsProto : rhs->quals()) {
 8042         for (auto *I : lhs->quals()) {
 8054     for (auto *lhsProto : lhs->quals()) {
 8060       for (auto *rhsProto : rhs->quals()) {
 8070         for (auto *I : lhs->quals()) {
 8091     for (auto *lhsProto : lhs->quals()) {
 8099       for (auto *rhsProto : rhs->quals()) {
 8113       llvm::SmallPtrSet<ObjCProtocolDecl *, 8> LHSInheritedProtocols;
 8120       for (auto *lhsProto : LHSInheritedProtocols) {
 8122         for (auto *rhsProto : rhs->quals()) {
 8247 static int compareObjCProtocolsByName(ObjCProtocolDecl * const *lhs,
 8248                                       ObjCProtocolDecl * const *rhs) {
 8262       SmallVectorImpl<ObjCProtocolDecl *> &IntersectionSet) {
 8270   llvm::SmallPtrSet<ObjCProtocolDecl *, 8> LHSProtocolSet;
 8281   llvm::SmallPtrSet<ObjCProtocolDecl *, 8> RHSProtocolSet;
 8299   llvm::SmallPtrSet<ObjCProtocolDecl *, 8> ImpliedProtocols;
 8423       SmallVector<ObjCProtocolDecl *, 8> Protocols;
 8474       SmallVector<ObjCProtocolDecl *, 8> Protocols;
 8523     llvm::SmallPtrSet<ObjCProtocolDecl *, 8> SuperClassInheritedProtocols;
 8527     for (auto *RHSPI : RHS->quals())
 8533     for (const auto *LHSProto : LHS->quals()) {
 8535       for (auto *SuperClassProto : SuperClassInheritedProtocols)
tools/clang/lib/AST/ASTImporter.cpp
  162     Expected<T *> import(T *From) {
  162     Expected<T *> import(T *From) {
  166       return cast_or_null<T>(*ToOrErr);
  170     Expected<T *> import(const T *From) {
  170     Expected<T *> import(const T *From) {
  217           -> decltype(ToDeclT::Create(std::forward<Args>(args)...)) {
  218         return ToDeclT::Create(std::forward<Args>(args)...);
  229     LLVM_NODISCARD bool GetImportedOrCreateDecl(ToDeclT *&ToD, FromDeclT *FromD,
  229     LLVM_NODISCARD bool GetImportedOrCreateDecl(ToDeclT *&ToD, FromDeclT *FromD,
  234       CallOverloadedCreateFun<ToDeclT> OC;
  256     GetImportedOrCreateSpecialDecl(ToDeclT *&ToD, CreateFunT CreateFun,
  257                                    FromDeclT *FromD, Args &&... args) {
  262       ToD = cast_or_null<ToDeclT>(Importer.GetAlreadyImportedOrNull(FromD));
  400         ObjCProtocolDecl *From, ObjCProtocolDecl *To,
  400         ObjCProtocolDecl *From, ObjCProtocolDecl *To,
  479     ExpectedDecl VisitObjCProtocolDecl(ObjCProtocolDecl *D);
 1515   SmallVector<ObjCProtocolDecl *, 4> Protocols;
 1516   for (auto *P : T->quals()) {
 1517     if (Expected<ObjCProtocolDecl *> ProtocolOrErr = import(P))
 4084     SmallVector<ObjCProtocolDecl *, 4> Protocols;
 4092       if (Expected<ObjCProtocolDecl *> ToProtoOrErr = import(*FromProto))
 4128     ObjCProtocolDecl *From, ObjCProtocolDecl *To, ImportDefinitionKind Kind) {
 4128     ObjCProtocolDecl *From, ObjCProtocolDecl *To, ImportDefinitionKind Kind) {
 4140   SmallVector<ObjCProtocolDecl *, 4> Protocols;
 4142   ObjCProtocolDecl::protocol_loc_iterator FromProtoLoc =
 4144   for (ObjCProtocolDecl::protocol_iterator FromProto = From->protocol_begin(),
 4148     if (Expected<ObjCProtocolDecl *> ToProtoOrErr = import(*FromProto))
 4172 ExpectedDecl ASTNodeImporter::VisitObjCProtocolDecl(ObjCProtocolDecl *D) {
 4176   ObjCProtocolDecl *Definition = D->getDefinition();
 4194   ObjCProtocolDecl *MergeWithProtocol = nullptr;
 4200     if ((MergeWithProtocol = dyn_cast<ObjCProtocolDecl>(FoundDecl)))
 4204   ObjCProtocolDecl *ToProto = MergeWithProtocol;
 4519   SmallVector<ObjCProtocolDecl *, 4> Protocols;
 4528     if (Expected<ObjCProtocolDecl *> ToProtoOrErr = import(*FromProto))
 8102   } else if (auto *ToProto = dyn_cast<ObjCProtocolDecl>(ToDC)) {
 8102   } else if (auto *ToProto = dyn_cast<ObjCProtocolDecl>(ToDC)) {
 8103     auto *FromProto = cast<ObjCProtocolDecl>(FromDC);
 8103     auto *FromProto = cast<ObjCProtocolDecl>(FromDC);
 8106     } else if (ObjCProtocolDecl *FromDef = FromProto->getDefinition()) {
 8614   if (auto *ToProto = dyn_cast<ObjCProtocolDecl>(To)) {
 8614   if (auto *ToProto = dyn_cast<ObjCProtocolDecl>(To)) {
 8617           cast<ObjCProtocolDecl>(FromDC), ToProto,
 8746   else if (auto *PD = dyn_cast<ObjCProtocolDecl>(D)) {
 8746   else if (auto *PD = dyn_cast<ObjCProtocolDecl>(D)) {
tools/clang/lib/AST/CommentSema.cpp
  966          isa<ObjCProtocolDecl>(ThisDeclInfo->CurrentDecl);
tools/clang/lib/AST/Decl.cpp
 1676 template<typename T> static bool isRedeclarableImpl(Redeclarable<T> *) {
tools/clang/lib/AST/DeclBase.cpp
  439   } else if (auto *PD = dyn_cast<ObjCProtocolDecl>(this)) {
 1196     if (auto *OPD = dyn_cast<ObjCProtocolDecl>(this))
 1196     if (auto *OPD = dyn_cast<ObjCProtocolDecl>(this))
 1197       if (auto *Def = OPD->getDefinition())
tools/clang/lib/AST/DeclObjC.cpp
   53 void ObjCProtocolList::set(ObjCProtocolDecl* const* InList, unsigned Elts,
   95   if (const auto *Proto = dyn_cast<ObjCProtocolDecl>(this)) {
   95   if (const auto *Proto = dyn_cast<ObjCProtocolDecl>(this)) {
   96     if (const ObjCProtocolDecl *Def = Proto->getDefinition())
  156     for (const auto *Proto : ID->all_referenced_protocols())
  168   if (const auto *PD = dyn_cast<ObjCProtocolDecl>(this))
  168   if (const auto *PD = dyn_cast<ObjCProtocolDecl>(this))
  169     for (const auto *PI : PD->protocols())
  181   if (const auto *Proto = dyn_cast<ObjCProtocolDecl>(DC)) {
  181   if (const auto *Proto = dyn_cast<ObjCProtocolDecl>(DC)) {
  182     if (const ObjCProtocolDecl *Def = Proto->getDefinition())
  239   if (const auto *Proto = dyn_cast<ObjCProtocolDecl>(this)) {
  239   if (const auto *Proto = dyn_cast<ObjCProtocolDecl>(this)) {
  240     if (const ObjCProtocolDecl *Def = Proto->getDefinition())
  263       const auto *PID = cast<ObjCProtocolDecl>(this);
  263       const auto *PID = cast<ObjCProtocolDecl>(this);
  264       for (const auto *I : PID->protocols())
  281       for (const auto *I : OID->all_referenced_protocols())
  295         for (const auto *I : OCD->protocols())
  384   for (const auto *I : all_referenced_protocols())
  405   for (const auto *PI : all_referenced_protocols())
  433                               ObjCProtocolDecl *const* ExtList, unsigned ExtNum,
  447   SmallVector<ObjCProtocolDecl *, 8> ProtocolRefs;
  450     ObjCProtocolDecl *ProtoInExtension = ExtList[i];
  451     for (auto *Proto : all_referenced_protocols()) {
  669 ObjCProtocolDecl *
  671   for (auto *P : all_referenced_protocols())
  710     for (const auto *I : ClassDecl->protocols())
  718         const ObjCList<ObjCProtocolDecl> &Protocols =
  720         for (auto *Protocol : Protocols)
  832   if (const auto *PD = dyn_cast<const ObjCProtocolDecl>(getDeclContext()))
  832   if (const auto *PD = dyn_cast<const ObjCProtocolDecl>(getDeclContext()))
  844   if (isa<ObjCProtocolDecl>(DC))
 1150   if (isa<ObjCProtocolDecl>(getDeclContext()))
 1201     for (const auto *P : Category->protocols())
 1218   if (const auto *Protocol = dyn_cast<ObjCProtocolDecl>(Container)){
 1218   if (const auto *Protocol = dyn_cast<ObjCProtocolDecl>(Container)){
 1219     for (const auto *P : Protocol->protocols())
 1224     for (const auto *P : Interface->protocols())
 1247   if (const auto *ProtD =
 1248           dyn_cast<ObjCProtocolDecl>(Method->getDeclContext())) {
 1702 bool ObjCInterfaceDecl::ClassImplementsProtocol(ObjCProtocolDecl *lProto,
 1710   for (auto *PI : IDecl->protocols()){
 1727       for (auto *PI : Cat->protocols())
 1847                                    ObjCProtocolDecl *PrevDecl)
 1855 ObjCProtocolDecl *ObjCProtocolDecl::Create(ASTContext &C, DeclContext *DC,
 1859                                            ObjCProtocolDecl *PrevDecl) {
 1860   auto *Result =
 1861       new (C, DC) ObjCProtocolDecl(C, DC, Id, nameLoc, atStartLoc, PrevDecl);
 1866 ObjCProtocolDecl *ObjCProtocolDecl::CreateDeserialized(ASTContext &C,
 1868   ObjCProtocolDecl *Result =
 1869       new (C, ID) ObjCProtocolDecl(C, nullptr, nullptr, SourceLocation(),
 1875 ObjCProtocolDecl *ObjCProtocolDecl::lookupProtocolNamed(IdentifierInfo *Name) {
 1876   ObjCProtocolDecl *PDecl = this;
 1881   for (auto *I : protocols())
 1896   const ObjCProtocolDecl *Def = getDefinition();
 1903   for (const auto *I : protocols())
 1919   for (auto *RD : redecls())
 1925   if (const ObjCProtocolDecl *PDecl = getDefinition()) {
 1934     for (const auto *PI : PDecl->protocols())
 1942   if (const ObjCProtocolDecl *PDecl = getDefinition()) {
 1954     for (const auto *PI : PDecl->protocols())
tools/clang/lib/AST/DeclPrinter.cpp
   92     void VisitObjCProtocolDecl(ObjCProtocolDecl *D);
  460              isa<ObjCProtocolDecl>(*D) ||
 1360   const ObjCList<ObjCProtocolDecl> &Protocols = OID->getReferencedProtocols();
 1362     for (ObjCList<ObjCProtocolDecl>::iterator I = Protocols.begin(),
 1392 void DeclPrinter::VisitObjCProtocolDecl(ObjCProtocolDecl *PID) {
 1398   const ObjCList<ObjCProtocolDecl> &Protocols = PID->getReferencedProtocols();
 1401     for (ObjCList<ObjCProtocolDecl>::iterator I = Protocols.begin(),
tools/clang/lib/AST/ItaniumMangle.cpp
 3268     for (const auto *I : T->quals()) {
tools/clang/lib/AST/JSONNodeDumper.cpp
  939   for (const auto* P : D->protocols())
  951 void JSONNodeDumper::VisitObjCProtocolDecl(const ObjCProtocolDecl *D) {
  955   for (const auto *P : D->protocols())
  967   for (const auto* P : D->protocols())
tools/clang/lib/AST/MicrosoftMangle.cpp
  387   void mangleObjCProtocol(const ObjCProtocolDecl *PD);
 1551 void MicrosoftCXXNameMangler::mangleObjCProtocol(const ObjCProtocolDecl *PD) {
tools/clang/lib/AST/TextNodeDumper.cpp
   31 static void dumpPreviousDeclImpl(raw_ostream &OS, const Redeclarable<T> *D) {
   32   const T *Prev = D->getPreviousDecl();
 1852   for (const auto *P : D->protocols())
 1862 void TextNodeDumper::VisitObjCProtocolDecl(const ObjCProtocolDecl *D) {
 1865   for (const auto *Child : D->protocols())
 1874   for (const auto *Child : D->protocols())
tools/clang/lib/AST/Type.cpp
  657                                      ArrayRef<ObjCProtocolDecl *> protocols)
  668                                ArrayRef<ObjCProtocolDecl *> protocols,
 1205       SmallVector<ObjCProtocolDecl *, 8> protocolsVec;
 1207       ArrayRef<ObjCProtocolDecl *> protocolsToApply = protocolsVec;
 1328           ArrayRef<ObjCProtocolDecl *> protocols(
 1344         ArrayRef<ObjCProtocolDecl *> protocols(
 3511                                  ArrayRef<ObjCProtocolDecl *> protocols,
 3531                                 ArrayRef<ObjCProtocolDecl *> protocols) {
 3999   for (ObjCProtocolDecl *proto : objcPtr->quals()) {
tools/clang/lib/AST/TypePrinter.cpp
 1577     for (const auto *I : T->quals()) {
 1621     for (const auto *I : T->quals()) {
tools/clang/lib/ASTMatchers/ASTMatchersInternal.cpp
  631 const internal::VariadicDynCastAllOfMatcher<Decl, ObjCProtocolDecl>
tools/clang/lib/ASTMatchers/Dynamic/Marshallers.h
   75     return Value.isMatcher() && Value.getMatcher().hasTypedMatcher<T>();
   78   static ast_matchers::internal::Matcher<T> get(const VariantValue &Value) {
   79     return Value.getMatcher().getTypedMatcher<T>();
   83     return ArgKind(ast_type_traits::ASTNodeKind::getFromNodeKind<T>());
  466       ast_matchers::internal::VariadicDynCastAllOfMatcher<BaseT, DerivedT> Func,
  469         DerivedKind(ast_type_traits::ASTNodeKind::getFromNodeKind<DerivedT>()) {
  778     ast_matchers::internal::VariadicDynCastAllOfMatcher<BaseT, DerivedT>
tools/clang/lib/CodeGen/Address.h
  108 template <class U> inline U cast(CodeGen::Address addr) {
tools/clang/lib/CodeGen/CGDebugInfo.cpp
  296   } else if (isa<ObjCProtocolDecl>(DC)) {
tools/clang/lib/CodeGen/CGObjCGNU.cpp
  613                                    const ObjCProtocolDecl *PD) override;
  614   void GenerateProtocol(const ObjCProtocolDecl *PD) override;
 1189     for (const auto *PI : OCD->getReferencedProtocols())
 1306                                    const ObjCProtocolDecl *PD) override {
 1342   void GenerateProtocol(const ObjCProtocolDecl *PD) override {
 1345   llvm::Constant *GenerateProtocolRef(const ObjCProtocolDecl *PD) {
 1357     if (const ObjCProtocolDecl *Def = PD->getDefinition())
 1371     for (const auto *PI : PD->protocols())
 1910     for (const auto *I : classDecl->protocols())
 3032                                             const ObjCProtocolDecl *PD) {
 3068 void CGObjCGNU::GenerateProtocol(const ObjCProtocolDecl *PD) {
 3072   if (const ObjCProtocolDecl *Def = PD->getDefinition())
 3076   for (const auto *PI : PD->protocols())
 3222   for (const auto *PD : OCD->getReferencedProtocols())
 3284   bool isProtocol = isa<ObjCProtocolDecl>(OCD);
 3287   std::function<void(const ObjCProtocolDecl *Proto)> collectProtocolProperties
 3289       for (const auto *P : Proto->protocols())
 3329     for (const auto *P : OID->all_referenced_protocols())
 3332     for (const auto *P : CD->protocols())
 3510   for (const auto *I : ClassDecl->protocols())
tools/clang/lib/CodeGen/CGObjCMac.cpp
 1025   llvm::Constant *GetProtocolRef(const ObjCProtocolDecl *PD);
 1095   void GenerateProtocol(const ObjCProtocolDecl *PD) override;
 1100   virtual llvm::Constant *GetOrEmitProtocol(const ObjCProtocolDecl *PD)=0;
 1106   virtual llvm::Constant *GetOrEmitProtocolRef(const ObjCProtocolDecl *PD)=0;
 1167   static ProtocolMethodLists get(const ObjCProtocolDecl *PD) {
 1200   llvm::Constant *emitMethodList(Self *self, const ObjCProtocolDecl *PD,
 1281   llvm::Constant *GetOrEmitProtocol(const ObjCProtocolDecl *PD) override;
 1287   llvm::Constant *GetOrEmitProtocolRef(const ObjCProtocolDecl *PD) override;
 1294   EmitProtocolExtension(const ObjCProtocolDecl *PD,
 1300                                    ObjCProtocolDecl::protocol_iterator begin,
 1301                                    ObjCProtocolDecl::protocol_iterator end);
 1351                                    const ObjCProtocolDecl *PD) override;
 1464   llvm::Constant *GetOrEmitProtocol(const ObjCProtocolDecl *PD) override;
 1470   llvm::Constant *GetOrEmitProtocolRef(const ObjCProtocolDecl *PD) override;
 1475                                    ObjCProtocolDecl::protocol_iterator begin,
 1476                                    ObjCProtocolDecl::protocol_iterator end);
 1637                                    const ObjCProtocolDecl *PD) override;
 2986                                             const ObjCProtocolDecl *PD) {
 2995 void CGObjCCommonMac::GenerateProtocol(const ObjCProtocolDecl *PD) {
 3007 llvm::Constant *CGObjCCommonMac::GetProtocolRef(const ObjCProtocolDecl *PD) {
 3045 llvm::Constant *CGObjCMac::GetOrEmitProtocol(const ObjCProtocolDecl *PD) {
 3053   if (const ObjCProtocolDecl *Def = PD->getDefinition())
 3092 llvm::Constant *CGObjCMac::GetOrEmitProtocolRef(const ObjCProtocolDecl *PD) {
 3121 CGObjCMac::EmitProtocolExtension(const ObjCProtocolDecl *PD,
 3177                             ObjCProtocolDecl::protocol_iterator begin,
 3178                             ObjCProtocolDecl::protocol_iterator end) {
 3216                        const ObjCProtocolDecl *Proto,
 3218   for (const auto *P : Proto->protocols())
 3279     for (const auto *P : OID->all_referenced_protocols())
 3283     for (const auto *P : CD->protocols())
 6506                                                          const ObjCProtocolDecl *PD) {
 6863   const ObjCProtocolDecl *PD) {
 6905   const ObjCProtocolDecl *PD) {
 7007                                       ObjCProtocolDecl::protocol_iterator begin,
 7008                                       ObjCProtocolDecl::protocol_iterator end) {
tools/clang/lib/CodeGen/CGObjCRuntime.h
  193                                            const ObjCProtocolDecl *OPD) = 0;
  197   virtual void GenerateProtocol(const ObjCProtocolDecl *OPD) = 0;
tools/clang/lib/CodeGen/CodeGenModule.cpp
 5320     auto *Proto = cast<ObjCProtocolDecl>(D);
 5320     auto *Proto = cast<ObjCProtocolDecl>(D);
tools/clang/lib/Frontend/ASTUnit.cpp
  349   } else if (isa<ObjCProtocolDecl>(ND)) {
tools/clang/lib/Frontend/Rewrite/RewriteModernObjC.cpp
  114     llvm::SmallPtrSet<ObjCProtocolDecl*, 8> ObjCSynthesizedProtocols;
  127     llvm::SmallPtrSet<ObjCProtocolDecl *, 32> ProtocolExprDecls;
  203         if (ObjCProtocolDecl *Proto = dyn_cast<ObjCProtocolDecl>(*I)) {
  203         if (ObjCProtocolDecl *Proto = dyn_cast<ObjCProtocolDecl>(*I)) {
  331     void RewriteProtocolDecl(ObjCProtocolDecl *Dcl);
  447     void RewriteObjCProtocolMetaData(ObjCProtocolDecl *Protocol,
  739   } else if (ObjCProtocolDecl *PD = dyn_cast<ObjCProtocolDecl>(D)) {
  739   } else if (ObjCProtocolDecl *PD = dyn_cast<ObjCProtocolDecl>(D)) {
  772       if (ObjCProtocolDecl *Proto = dyn_cast<ObjCProtocolDecl>((*DI))) {
  772       if (ObjCProtocolDecl *Proto = dyn_cast<ObjCProtocolDecl>((*DI))) {
  777             if (isa<ObjCProtocolDecl>(*DI) &&
  778                 !cast<ObjCProtocolDecl>(*DI)->isThisDeclarationADefinition() &&
 1152 void RewriteModernObjC::RewriteProtocolDecl(ObjCProtocolDecl *PDecl) {
 5807                                                  ObjCProtocolDecl *PDecl,
 5836   for (ObjCProtocolDecl *ProtDecl : ProtocolExprDecls) {
 6290                                             ArrayRef<ObjCProtocolDecl *> SuperProtocols,
 6301       ObjCProtocolDecl *SuperPD = SuperProtocols[i];
 6406                                           ArrayRef<ObjCProtocolDecl *>baseProtocols,
 6614                              ArrayRef<ObjCProtocolDecl *> RefedProtocols,
 6835 void RewriteModernObjC::RewriteObjCProtocolMetaData(ObjCProtocolDecl *PDecl,
 6843   if (ObjCProtocolDecl *Def = PDecl->getDefinition())
 6847   for (auto *I : PDecl->protocols())
 6883   SmallVector<ObjCProtocolDecl *, 8> SuperProtocols(PDecl->protocols());
 7056   std::vector<ObjCProtocolDecl *> RefedProtocols;
 7057   const ObjCList<ObjCProtocolDecl> &Protocols = CDecl->getReferencedProtocols();
 7058   for (ObjCList<ObjCProtocolDecl>::iterator I = Protocols.begin(),
 7304   SmallVector<ObjCProtocolDecl *, 8> RefedProtocols(CDecl->protocols());
 7305   for (auto *I : CDecl->protocols())
tools/clang/lib/Frontend/Rewrite/RewriteObjC.cpp
  112     llvm::SmallPtrSet<ObjCProtocolDecl*, 8> ObjCSynthesizedProtocols;
  118     llvm::SmallPtrSet<ObjCProtocolDecl *, 32> ProtocolExprDecls;
  179         if (ObjCProtocolDecl *Proto = dyn_cast<ObjCProtocolDecl>(*I)) {
  179         if (ObjCProtocolDecl *Proto = dyn_cast<ObjCProtocolDecl>(*I)) {
  279     void RewriteProtocolDecl(ObjCProtocolDecl *Dcl);
  329     virtual void RewriteObjCProtocolListMetaData(const ObjCList<ObjCProtocolDecl> &Prots,
  335     virtual void RewriteObjCProtocolMetaData(ObjCProtocolDecl *Protocol,
  525     void RewriteObjCProtocolMetaData(ObjCProtocolDecl *Protocol,
  529           const ObjCList<ObjCProtocolDecl> &Prots,
  671   } else if (ObjCProtocolDecl *PD = dyn_cast<ObjCProtocolDecl>(D)) {
  671   } else if (ObjCProtocolDecl *PD = dyn_cast<ObjCProtocolDecl>(D)) {
  698       if (ObjCProtocolDecl *Proto = dyn_cast<ObjCProtocolDecl>((*DI))) {
  698       if (ObjCProtocolDecl *Proto = dyn_cast<ObjCProtocolDecl>((*DI))) {
  703             if (isa<ObjCProtocolDecl>(*DI) &&
  704                 !cast<ObjCProtocolDecl>(*DI)->isThisDeclarationADefinition() &&
  984 void RewriteObjC::RewriteProtocolDecl(ObjCProtocolDecl *PDecl) {
 4907   for (ObjCProtocolDecl *ProtDecl : ProtocolExprDecls)
 5071                             ObjCProtocolDecl *PDecl, StringRef prefix,
 5093   if (ObjCProtocolDecl *Def = PDecl->getDefinition())
 5114     for (ObjCProtocolDecl::instmeth_iterator
 5151     for (ObjCProtocolDecl::classmeth_iterator
 5218                                 const ObjCList<ObjCProtocolDecl> &Protocols,
 5593       for (ObjCProtocolDecl *ProtDecl : ProtocolExprDecls) {
tools/clang/lib/Index/IndexBody.cpp
  270           for (const auto *protD : Ty->quals()) {
tools/clang/lib/Index/IndexDecl.cpp
  374       ObjCProtocolDecl *PD = *I;
  415   bool VisitObjCProtocolDecl(const ObjCProtocolDecl *D) {
tools/clang/lib/Index/IndexSymbol.cpp
   95   if (isa<ObjCProtocolDecl>(D->getDeclContext())) {
tools/clang/lib/Index/USRGeneration.cpp
  386   if (const ObjCProtocolDecl *pd = dyn_cast<ObjCProtocolDecl>(container)) {
  386   if (const ObjCProtocolDecl *pd = dyn_cast<ObjCProtocolDecl>(container)) {
  466       const ObjCProtocolDecl *PD = cast<ObjCProtocolDecl>(D);
  466       const ObjCProtocolDecl *PD = cast<ObjCProtocolDecl>(D);
  836       for (auto *Prot : OIT->getProtocols())
  837         VisitObjCProtocolDecl(Prot);
tools/clang/lib/Sema/CodeCompleteConsumer.cpp
  707       else if (isa<ObjCProtocolDecl>(Declaration))
tools/clang/lib/Sema/SemaCodeComplete.cpp
 4429   if (ObjCProtocolDecl *Protocol = dyn_cast<ObjCProtocolDecl>(Container)) {
 4429   if (ObjCProtocolDecl *Protocol = dyn_cast<ObjCProtocolDecl>(Container)) {
 4616   if (ObjCProtocolDecl *Protocol = dyn_cast<ObjCProtocolDecl>(Container)) {
 4616   if (ObjCProtocolDecl *Protocol = dyn_cast<ObjCProtocolDecl>(Container)) {
 4617     for (auto *P : Protocol->protocols())
 4634     for (auto *I : IFace->all_referenced_protocols())
 4649     for (auto *P : Category->protocols())
 4786       for (auto *I : BaseType->getAs<ObjCObjectPointerType>()->quals())
 6222   if (const auto *Protocol = dyn_cast<ObjCProtocolDecl>(Container)) {
 6222   if (const auto *Protocol = dyn_cast<ObjCProtocolDecl>(Container)) {
 6224       const ObjCList<ObjCProtocolDecl> &Protocols =
 6226       for (ObjCList<ObjCProtocolDecl>::iterator I = Protocols.begin(),
 6238   for (ObjCProtocolDecl *I : IFace->protocols())
 6249     const ObjCList<ObjCProtocolDecl> &Protocols =
 6251     for (ObjCList<ObjCProtocolDecl>::iterator I = Protocols.begin(),
 6921     for (auto *I : QualID->quals())
 6933     for (auto *I : IFacePtr->quals())
 7078     if (const auto *Proto = dyn_cast<ObjCProtocolDecl>(D))
 7078     if (const auto *Proto = dyn_cast<ObjCProtocolDecl>(D))
 7099       if (ObjCProtocolDecl *Protocol = LookupProtocol(Pair.first, Pair.second))
 7441     const ObjCList<ObjCProtocolDecl> &Protocols =
 7443     for (ObjCList<ObjCProtocolDecl>::iterator I = Protocols.begin(),
 7464     const ObjCList<ObjCProtocolDecl> &Protocols =
 7466     for (ObjCList<ObjCProtocolDecl>::iterator I = Protocols.begin(),
 7479   if (ObjCProtocolDecl *Protocol = dyn_cast<ObjCProtocolDecl>(Container)) {
 7479   if (ObjCProtocolDecl *Protocol = dyn_cast<ObjCProtocolDecl>(Container)) {
 7487     const ObjCList<ObjCProtocolDecl> &Protocols =
 7489     for (ObjCList<ObjCProtocolDecl>::iterator I = Protocols.begin(),
tools/clang/lib/Sema/SemaDecl.cpp
 3798     isa<ObjCProtocolDecl>(oldMethod->getDeclContext())
tools/clang/lib/Sema/SemaDeclAttr.cpp
 2129   if (!cast<ObjCProtocolDecl>(D)->isThisDeclarationADefinition()) {
 5126   if (const auto *PDecl = dyn_cast_or_null<ObjCProtocolDecl>(DC)) {
 5126   if (const auto *PDecl = dyn_cast_or_null<ObjCProtocolDecl>(DC)) {
tools/clang/lib/Sema/SemaDeclObjC.cpp
   74       if (isa<ObjCProtocolDecl>(method->getDeclContext())) {
  128                              const ObjCProtocolDecl *PD, Sema &S) {
  526                                    ObjCProtocolDecl *const *ProtoRefs,
 1183   const ObjCList<ObjCProtocolDecl> &PList) {
 1186   for (ObjCList<ObjCProtocolDecl>::iterator I = PList.begin(),
 1188     if (ObjCProtocolDecl *PDecl = LookupProtocol((*I)->getIdentifier(),
 1215   ObjCProtocolDecl *PrevDecl = LookupProtocol(ProtocolName, ProtocolLoc,
 1217   ObjCProtocolDecl *PDecl = nullptr;
 1218   if (ObjCProtocolDecl *Def = PrevDecl? PrevDecl->getDefinition() : nullptr) {
 1227     PDecl = ObjCProtocolDecl::Create(Context, CurContext, ProtocolName,
 1240       ObjCList<ObjCProtocolDecl> PList;
 1247     PDecl = ObjCProtocolDecl::Create(Context, CurContext, ProtocolName,
 1274 static bool NestedProtocolHasNoDefinition(ObjCProtocolDecl *PDecl,
 1275                                           ObjCProtocolDecl *&UndefinedProtocol) {
 1281   for (auto *PI : PDecl->protocols())
 1297     ObjCProtocolDecl *PDecl = LookupProtocol(Pair.first, Pair.second);
 1299       DeclFilterCCC<ObjCProtocolDecl> CCC{};
 1303       if ((PDecl = Corrected.getCorrectionDeclAs<ObjCProtocolDecl>()))
 1325     ObjCProtocolDecl *UndefinedProtocol;
 1352       if (candidate.getCorrectionDeclAs<ObjCProtocolDecl>())
 1447       ObjCProtocolDecl *&proto
 1462       ObjCProtocolDecl *forwardDecl = nullptr;
 1495       llvm::SmallPtrSet<ObjCProtocolDecl*, 8> knownProtocols;
 1520     ObjCProtocolDecl *proto = LookupProtocol(identifiers[i], identifierLocs[i]);
 1687       if (auto proto = corrected.getCorrectionDeclAs<ObjCProtocolDecl>()) {
 1775     ObjCProtocolDecl *PrevDecl = LookupProtocol(Ident, IdentPair.second,
 1777     ObjCProtocolDecl *PDecl
 1778       = ObjCProtocolDecl::Create(Context, CurContext, Ident,
 2648 static void findProtocolsWithExplicitImpls(const ObjCProtocolDecl *PDecl,
 2652   for (const auto *PI : PDecl->protocols())
 2664   for (const auto *I : Super->all_referenced_protocols())
 2674                                     ObjCProtocolDecl *PDecl,
 2796   for (auto *PI : PDecl->protocols())
 2833                                       isa<ObjCProtocolDecl>(CDecl));
 2835           WarnExactTypedMethods(ImpMethodDecl, I, isa<ObjCProtocolDecl>(CDecl));
 2859                                       isa<ObjCProtocolDecl>(CDecl));
 2861           WarnExactTypedMethods(ImpMethodDecl, I, isa<ObjCProtocolDecl>(CDecl));
 2866   if (ObjCProtocolDecl *PD = dyn_cast<ObjCProtocolDecl> (CDecl)) {
 2866   if (ObjCProtocolDecl *PD = dyn_cast<ObjCProtocolDecl> (CDecl)) {
 2869     for (auto *PI : PD->protocols())
 2894     for (auto *PI : I->all_referenced_protocols())
 3011     for (auto *PI : I->all_referenced_protocols())
 3018       for (auto *P : C->protocols())
 3263   auto *MethodProtocol = dyn_cast<ObjCProtocolDecl>(Method->getDeclContext());
 3263   auto *MethodProtocol = dyn_cast<ObjCProtocolDecl>(Method->getDeclContext());
 3264   auto *MethodInListProtocol =
 3265       dyn_cast<ObjCProtocolDecl>(MethodInList->getDeclContext());
 3451   auto *MethodProtocol = dyn_cast<ObjCProtocolDecl>(Method->getDeclContext());
 3451   auto *MethodProtocol = dyn_cast<ObjCProtocolDecl>(Method->getDeclContext());
 3903          || isa<ObjCProtocolDecl>(ClassDecl);
 4234   void searchFrom(const ObjCProtocolDecl *protocol) {
 4290     for (const auto *Proto : protocols)
 4332       if (isa<ObjCProtocolDecl>(overridden->getDeclContext()) ||
 4358                 if (isa<ObjCProtocolDecl>(SuperOverridden->getDeclContext()) ||
 4385               isa<ObjCProtocolDecl>(overridden->getDeclContext()));
tools/clang/lib/Sema/SemaExpr.cpp
14648   const ObjCProtocolDecl *PDecl = nullptr;
14740       for (auto *srcProto : srcOPT->quals()) {
14751       for (auto *dstProto : dstOPT->quals()) {
tools/clang/lib/Sema/SemaExprMember.cpp
  430 static Decl *FindGetterSetterNameDeclFromProtocolList(const ObjCProtocolDecl*PDecl,
  441   for (const auto *I : PDecl->protocols()) {
  455   for (const auto *I : QIdTy->quals()) {
  469     for (const auto *I : QIdTy->quals()) {
tools/clang/lib/Sema/SemaExprObjC.cpp
  985           if (ObjCProtocolDecl *NSCopyingPDecl =
  987             ObjCProtocolDecl *PQ[] = {NSCopyingPDecl};
 1244   ObjCProtocolDecl* PDecl = LookupProtocol(ProtocolId, ProtoIdLoc);
 1792   for (const auto *I : objType->quals())
 1806   for (const auto *PROTO : OPT->quals()) {
 1856   for (const auto *I : OPT->quals())
 2627   const auto *Protocol = dyn_cast<ObjCProtocolDecl>(M->getDeclContext());
 2627   const auto *Protocol = dyn_cast<ObjCProtocolDecl>(M->getDeclContext());
 2634     for (const ObjCProtocolDecl *P : RootClass->all_referenced_protocols()) {
tools/clang/lib/Sema/SemaLookup.cpp
 3031 ObjCProtocolDecl *Sema::LookupProtocol(IdentifierInfo *II,
 3036   return cast_or_null<ObjCProtocolDecl>(D);
 3896       for (auto *I : IFace->all_referenced_protocols()) {
 3916     } else if (ObjCProtocolDecl *Protocol = dyn_cast<ObjCProtocolDecl>(Ctx)) {
 3916     } else if (ObjCProtocolDecl *Protocol = dyn_cast<ObjCProtocolDecl>(Ctx)) {
 3917       for (auto *I : Protocol->protocols()) {
 3923       for (auto *I : Category->protocols()) {
 4878       for (auto *I : OPT->quals())
 5290   if (ObjCProtocolDecl *PD = dyn_cast<ObjCProtocolDecl>(D))
 5290   if (ObjCProtocolDecl *PD = dyn_cast<ObjCProtocolDecl>(D))
tools/clang/lib/Sema/SemaObjCProperty.cpp
  110                              ObjCProtocolDecl *Proto,
  111                              llvm::SmallPtrSetImpl<ObjCProtocolDecl *> &Known) {
  126   for (auto *P : Proto->protocols())
  226                                isa<ObjCProtocolDecl>(ClassDecl)));
  232   llvm::SmallPtrSet<ObjCProtocolDecl *, 16> KnownProtos;
  254       for (auto *P : CurrentInterfaceDecl->protocols()) {
  259       for (auto *P : IFace->all_referenced_protocols()) {
  268       for (auto *P : Cat->protocols())
  271     ObjCProtocolDecl *Proto = cast<ObjCProtocolDecl>(ClassDecl);
  271     ObjCProtocolDecl *Proto = cast<ObjCProtocolDecl>(ClassDecl);
  272     for (auto *P : Proto->protocols())
  603         if (ObjCProtocolDecl* PNSCopying =
  840   for (const auto *PI : ClassDecl->all_referenced_protocols()) {
  841     if (const ObjCProtocolDecl *PDecl = PI->getDefinition())
  847       for (const auto *PI : SDecl->all_referenced_protocols()) {
  848         if (const ObjCProtocolDecl *PDecl = PI->getDefinition())
 1031   for (const auto *Proto : OrigClass->all_referenced_protocols()) {
 1139     if (Synthesize && isa<ObjCProtocolDecl>(property->getDeclContext()))
 1623         isa<ObjCProtocolDecl>(SuperProperty->getDeclContext()))) {
 1720       for (auto *PI : IDecl->all_referenced_protocols())
 1734       for (auto *PI : CATDecl->protocols())
 1739   else if (ObjCProtocolDecl *PDecl = dyn_cast<ObjCProtocolDecl>(CDecl)) {
 1739   else if (ObjCProtocolDecl *PDecl = dyn_cast<ObjCProtocolDecl>(CDecl)) {
 1758     for (auto *PI : PDecl->protocols())
 1872     if (ObjCProtocolDecl *Proto =
 1873           dyn_cast<ObjCProtocolDecl>(Prop->getDeclContext())) {
 2009     for (auto *PDecl : IDecl->all_referenced_protocols()) {
tools/clang/lib/Sema/SemaType.cpp
 1040                                       ArrayRef<ObjCProtocolDecl *> Protocols,
 1067                                    ArrayRef<ObjCProtocolDecl *> Protocols,
tools/clang/lib/Sema/TreeTransform.h
  751                                     ArrayRef<ObjCProtocolDecl *> Protocols,
  765                                  ArrayRef<ObjCProtocolDecl *> Protocols,
12864            ArrayRef<ObjCProtocolDecl *> Protocols,
12881            ArrayRef<ObjCProtocolDecl *> Protocols,
tools/clang/lib/Serialization/ASTCommon.cpp
  304     if (const ObjCProtocolDecl *Def
  305           = cast<ObjCProtocolDecl>(DC)->getDefinition())
tools/clang/lib/Serialization/ASTReader.cpp
 6699     SmallVector<ObjCProtocolDecl*, 4> Protos;
 6701       Protos.push_back(ReadDeclAs<ObjCProtocolDecl>(*Loc.F, Record, Idx));
 6713     SmallVector<ObjCProtocolDecl*, 4> Protos;
 6715       Protos.push_back(ReadDeclAs<ObjCProtocolDecl>(*Loc.F, Record, Idx));
 9990     if (auto PD = dyn_cast<ObjCProtocolDecl>(D)) {
 9992         cast<ObjCProtocolDecl>(R)->Data = PD->Data;
tools/clang/lib/Serialization/ASTReaderDecl.cpp
  144     T *ReadDeclAs() {
  145       return Record.readDeclAs<T>();
  175     void ReadObjCDefinitionData(struct ObjCProtocolDecl::DefinitionData &Data);
  176     void MergeDefinitionData(ObjCProtocolDecl *D,
  177                              struct ObjCProtocolDecl::DefinitionData &&NewDD);
  249       operator T*() const { return dyn_cast_or_null<T>(Existing); }
  249       operator T*() const { return dyn_cast_or_null<T>(Existing); }
  412     RedeclarableResult VisitRedeclarable(Redeclarable<T> *D);
  415     void mergeRedeclarable(Redeclarable<T> *D, RedeclarableResult &Redecl,
  419     void mergeRedeclarable(Redeclarable<T> *D, T *Existing,
  419     void mergeRedeclarable(Redeclarable<T> *D, T *Existing,
  438     void VisitObjCProtocolDecl(ObjCProtocolDecl *D);
 1101   SmallVector<ObjCProtocolDecl *, 16> Protocols;
 1104     Protocols.push_back(ReadDeclAs<ObjCProtocolDecl>());
 1117     Protocols.push_back(ReadDeclAs<ObjCProtocolDecl>());
 1174          struct ObjCProtocolDecl::DefinitionData &Data) {
 1176     SmallVector<ObjCProtocolDecl *, 16> ProtoRefs;
 1179       ProtoRefs.push_back(ReadDeclAs<ObjCProtocolDecl>());
 1188 void ASTDeclReader::MergeDefinitionData(ObjCProtocolDecl *D,
 1189          struct ObjCProtocolDecl::DefinitionData &&NewDD) {
 1193 void ASTDeclReader::VisitObjCProtocolDecl(ObjCProtocolDecl *PD) {
 1204     ObjCProtocolDecl *Canon = PD->getCanonicalDecl();
 1240   SmallVector<ObjCProtocolDecl *, 16> ProtoRefs;
 1243     ProtoRefs.push_back(ReadDeclAs<ObjCProtocolDecl>());
 2394   auto *FirstDecl = cast_or_null<T>(Reader.GetDecl(FirstDeclID));
 2394   auto *FirstDecl = cast_or_null<T>(Reader.GetDecl(FirstDeclID));
 2400     D->RedeclLink = Redeclarable<T>::PreviousDeclLink(FirstDecl);
 2404   auto *DAsT = static_cast<T *>(D);
 2430   auto *D = static_cast<T *>(DBase);
 2434     mergeRedeclarable(D, cast<T>(Existing), Redecl, TemplatePatternID);
 2436     if (T *Existing = ExistingRes)
 2496   auto *D = static_cast<T *>(DBase);
 2497   T *ExistingCanon = Existing->getCanonicalDecl();
 2498   T *DCanon = D->getCanonicalDecl();
 2506     D->RedeclLink = Redeclarable<T>::PreviousDeclLink(ExistingCanon);
 2767       isa<ObjCProtocolDecl>(D) ||
 2963   if (isa<ObjCInterfaceDecl>(X) || isa<ObjCProtocolDecl>(X))
 3381 Decl *ASTDeclReader::getMostRecentDeclImpl(Redeclarable<DeclT> *D) {
 3408                                            Redeclarable<DeclT> *D,
 3410   D->RedeclLink.setPrevious(cast<DeclT>(Previous));
 3411   D->First = cast<DeclT>(Previous)->First;
 3567 void ASTDeclReader::attachLatestDeclImpl(Redeclarable<DeclT> *D, Decl *Latest) {
 3568   D->RedeclLink.setLatest(cast<DeclT>(Latest));
 3589 void ASTDeclReader::markIncompleteDeclChainImpl(Redeclarable<DeclT> *D) {
 3789     D = ObjCProtocolDecl::CreateDeserialized(Context, ID);
tools/clang/lib/Serialization/ASTReaderStmt.cpp
   95     T *ReadDeclAs() {
   96       return Record.readDeclAs<T>();
 1224   E->setProtocol(ReadDeclAs<ObjCProtocolDecl>());
tools/clang/lib/Serialization/ASTWriter.cpp
  549   for (const auto *I : T->quals())
  560   for (const auto *I : T->quals())
tools/clang/lib/Serialization/ASTWriterDecl.cpp
  129     template <typename T> void VisitRedeclarable(Redeclarable<T> *D);
  138     void VisitObjCProtocolDecl(ObjCProtocolDecl *D);
  743     for (const auto *P : D->protocols())
  750     for (ObjCList<ObjCProtocolDecl>::iterator
  791 void ASTDeclWriter::VisitObjCProtocolDecl(ObjCProtocolDecl *D) {
  798     for (const auto *I : D->protocols())
  820   for (const auto *I : D->protocols())
 1722   T *First = D->getFirstDecl();
 1723   T *MostRecent = First->getMostRecentDecl();
 1724   T *DAsT = static_cast<T *>(D);
tools/clang/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp
  672   if (!MD || !MD->isVariadic() || isa<ObjCProtocolDecl>(MD->getDeclContext()))
 1063   if (isa<ObjCProtocolDecl>(MD->getDeclContext())) {
tools/clang/lib/StaticAnalyzer/Checkers/IvarInvalidationChecker.cpp
  257     for (const auto *I : InterfD->protocols())
  270   if (const ObjCProtocolDecl *ProtD = dyn_cast<ObjCProtocolDecl>(D)) {
  270   if (const ObjCProtocolDecl *ProtD = dyn_cast<ObjCProtocolDecl>(D)) {
  271     for (const auto *I : ProtD->protocols()) {
tools/clang/lib/StaticAnalyzer/Checkers/LocalizationChecker.cpp
  835     for (const auto *P : OD->all_referenced_protocols()) {
tools/clang/lib/StaticAnalyzer/Checkers/TrustNonnullChecker.cpp
  174     if (isa<ObjCProtocolDecl>(MD->getDeclContext()))
tools/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp
  725     } else if (isa<ObjCProtocolDecl>(DC)) {
tools/clang/tools/libclang/CIndex.cpp
  661     auto *PD = cast<ObjCProtocolDecl>(D);
 1085 bool CursorVisitor::VisitObjCProtocolDecl(ObjCProtocolDecl *PID) {
 1089   ObjCProtocolDecl::protocol_loc_iterator PL = PID->protocol_loc_begin();
 1090   for (ObjCProtocolDecl::protocol_iterator I = PID->protocol_begin(),
 4502       const ObjCProtocolDecl *OID = getCursorObjCProtocolRef(C).first;
 5818       std::pair<const ObjCProtocolDecl *, SourceLocation> P
 6182       const ObjCProtocolDecl *Prot = getCursorObjCProtocolRef(C).first;
 6183       if (const ObjCProtocolDecl *Def = Prot->getDefinition())
 6411     if (const ObjCProtocolDecl *Def = cast<ObjCProtocolDecl>(D)->getDefinition())
 6411     if (const ObjCProtocolDecl *Def = cast<ObjCProtocolDecl>(D)->getDefinition())
tools/clang/tools/libclang/CXCursor.cpp
  754 CXCursor cxcursor::MakeCursorObjCProtocolRef(const ObjCProtocolDecl *Proto, 
  763 std::pair<const ObjCProtocolDecl *, SourceLocation>
tools/clang/tools/libclang/CXCursor.h
   71 CXCursor MakeCursorObjCProtocolRef(const ObjCProtocolDecl *Proto,
   77 std::pair<const ObjCProtocolDecl *, SourceLocation>
tools/clang/tools/libclang/CXIndexDataConsumer.cpp
   73   bool VisitObjCProtocolDecl(const ObjCProtocolDecl *D) {
  175     if (auto *ObjCPD = dyn_cast_or_null<ObjCProtocolDecl>(ASTNode.OrigD)) {
  245     ObjCProtocolDecl *PD = *I;
  713 bool CXIndexDataConsumer::handleObjCProtocol(const ObjCProtocolDecl *D) {
 1200   if (const ObjCProtocolDecl *PD = dyn_cast<ObjCProtocolDecl>(D))
 1200   if (const ObjCProtocolDecl *PD = dyn_cast<ObjCProtocolDecl>(D))
tools/clang/tools/libclang/CXIndexDataConsumer.h
  161   ObjCProtocolDeclInfo(const ObjCProtocolDecl *D)
  394   bool handleObjCProtocol(const ObjCProtocolDecl *D);
tools/clang/tools/libclang/CXType.cpp
 1190   const ObjCProtocolDecl *PD = OT->getProtocol(i);
tools/clang/tools/libclang/CursorVisitor.h
  224   bool VisitObjCProtocolDecl(ObjCProtocolDecl *PID);
tools/lldb/source/Symbol/ClangASTImporter.cpp
  615   } else if (ObjCProtocolDecl *protocol_decl =
  616                  dyn_cast<ObjCProtocolDecl>(decl)) {
usr/include/c++/7.4.0/type_traits
  215     : public __is_void_helper<typename remove_cv<_Tp>::type>::type
  581     : public __or_<is_lvalue_reference<_Tp>,
  582                    is_rvalue_reference<_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
  638     : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
  638     : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
 1554     { typedef _Tp     type; };
 1558     { typedef _Tp     type; };
 1563     { typedef _Tp     type; };
 1574       remove_const<typename remove_volatile<_Tp>::type>::type     type;
 1580     { typedef _Tp const     type; };
 1629     { typedef _Tp   type; };
 1983     { typedef _Up     type; };
 1999     { typedef typename remove_reference<_Tp>::type*     type; };
 2003     : public __add_pointer_helper<_Tp>