add forward definition protocols to the protocol list for a class.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53864 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2008-07-21 18:35:17 +00:00
Родитель 919d87d4ee
Коммит 964c27c66c
1 изменённых файлов: 16 добавлений и 13 удалений

Просмотреть файл

@ -137,11 +137,12 @@ Sema::DeclTy *Sema::ActOnStartClassInterface(
if (!RefPDecl)
Diag(EndProtoLoc, diag::err_undef_protocolref,
ProtocolNames[i]->getName(), ClassName->getName());
else if (RefPDecl->isForwardDecl())
Diag(EndProtoLoc, diag::warn_undef_protocolref,
ProtocolNames[i]->getName(), ClassName->getName());
else
else {
if (RefPDecl->isForwardDecl())
Diag(EndProtoLoc, diag::warn_undef_protocolref,
ProtocolNames[i]->getName(), ClassName->getName());
RefProtos.push_back(RefPDecl);
}
}
if (!RefProtos.empty())
IDecl->addReferencedProtocols(&RefProtos[0], RefProtos.size());
@ -223,11 +224,12 @@ Sema::DeclTy *Sema::ActOnStartProtocolInterface(
if (!RefPDecl)
Diag(ProtocolLoc, diag::err_undef_protocolref,
ProtoRefNames[i]->getName(), ProtocolName->getName());
else if (RefPDecl->isForwardDecl())
Diag(ProtocolLoc, diag::warn_undef_protocolref,
ProtoRefNames[i]->getName(), ProtocolName->getName());
PDecl->setReferencedProtocols(i, RefPDecl);
else {
if (RefPDecl->isForwardDecl())
Diag(ProtocolLoc, diag::warn_undef_protocolref,
ProtoRefNames[i]->getName(), ProtocolName->getName());
PDecl->setReferencedProtocols(i, RefPDecl);
}
}
PDecl->setLocEnd(EndProtoLoc);
}
@ -434,11 +436,12 @@ Sema::DeclTy *Sema::ActOnStartCategoryInterface(
if (!RefPDecl)
Diag(CategoryLoc, diag::err_undef_protocolref,
ProtoRefNames[i]->getName(), CategoryName->getName());
else if (RefPDecl->isForwardDecl())
Diag(CategoryLoc, diag::warn_undef_protocolref,
ProtoRefNames[i]->getName(), CategoryName->getName());
if (RefPDecl)
else {
if (RefPDecl->isForwardDecl())
Diag(CategoryLoc, diag::warn_undef_protocolref,
ProtoRefNames[i]->getName(), CategoryName->getName());
RefProtocols.push_back(RefPDecl);
}
}
if (!RefProtocols.empty())
CDecl->addReferencedProtocols(&RefProtocols[0], RefProtocols.size());