diff options
author | Ted Kremenek <kremenek@apple.com> | 2009-03-07 01:22:02 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2009-03-07 01:22:02 +0000 |
commit | 150ec292a6e7995a711cedbe7a10a25d664a6c6b (patch) | |
tree | f082f23b10ab8e368cd68959f58b1136bbf2a1e8 /lib | |
parent | 1fbfd5b9b8b82aea084773b76dd1ec6796a7000c (diff) |
Selector: (changes made after discussing this more with Steve Naroff)
- Make Selector::getAsIdentifierInfo() private. Using IdentifierInfo* in
Selector is an implementation detail that clients shouldn't think about.
- Modify diagnostic emission in Sema::ProcessPropertyDecl to not use
Selector::getAsIdentifierInfo() (which could crash when IdentifierInfo* is
null) and instead use Selector::getAsString().
- Tidy up Selector::getAsString() implementation.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66313 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Basic/IdentifierTable.cpp | 3 | ||||
-rw-r--r-- | lib/Sema/SemaDeclObjC.cpp | 4 |
2 files changed, 4 insertions, 3 deletions
diff --git a/lib/Basic/IdentifierTable.cpp b/lib/Basic/IdentifierTable.cpp index 4e2e7005e3..f4acbec019 100644 --- a/lib/Basic/IdentifierTable.cpp +++ b/lib/Basic/IdentifierTable.cpp @@ -352,8 +352,9 @@ std::string Selector::getAsString() const { if (InfoPtr & ArgFlags) { IdentifierInfo *II = getAsIdentifierInfo(); + // If the number of arguments is 0 then II is guaranteed to not be null. if (getNumArgs() == 0) - return II ? II->getName() : ""; + return II->getName(); std::string Res = II ? II->getName() : ""; Res += ":"; diff --git a/lib/Sema/SemaDeclObjC.cpp b/lib/Sema/SemaDeclObjC.cpp index 476b6afea5..f91feb423f 100644 --- a/lib/Sema/SemaDeclObjC.cpp +++ b/lib/Sema/SemaDeclObjC.cpp @@ -1139,7 +1139,7 @@ void Sema::ProcessPropertyDecl(ObjCPropertyDecl *property, Diag(property->getLocation(), diag::err_accessor_property_type_mismatch) << property->getDeclName() - << GetterMethod->getSelector().getAsIdentifierInfo(); + << GetterMethod->getSelector().getAsString(); Diag(GetterMethod->getLocation(), diag::note_declared_at); } @@ -1152,7 +1152,7 @@ void Sema::ProcessPropertyDecl(ObjCPropertyDecl *property, Diag(property->getLocation(), diag::err_accessor_property_type_mismatch) << property->getDeclName() - << SetterMethod->getSelector().getAsIdentifierInfo(); + << SetterMethod->getSelector().getAsString(); Diag(SetterMethod->getLocation(), diag::note_declared_at); } } |