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 | 0666a6ce703631d6f0c107afb6a42758208a6c42 (patch) | |
tree | edf0eb727bd42219e2a3c50b141fa4320545bc8e /clang/lib | |
parent | b6b7ce4b50ecc2ae104f1bef95b18b575bc59226 (diff) | |
download | bcm5719-llvm-0666a6ce703631d6f0c107afb6a42758208a6c42.tar.gz bcm5719-llvm-0666a6ce703631d6f0c107afb6a42758208a6c42.zip |
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.
llvm-svn: 66313
Diffstat (limited to 'clang/lib')
-rw-r--r-- | clang/lib/Basic/IdentifierTable.cpp | 3 | ||||
-rw-r--r-- | clang/lib/Sema/SemaDeclObjC.cpp | 4 |
2 files changed, 4 insertions, 3 deletions
diff --git a/clang/lib/Basic/IdentifierTable.cpp b/clang/lib/Basic/IdentifierTable.cpp index 4e2e7005e3e..f4acbec0199 100644 --- a/clang/lib/Basic/IdentifierTable.cpp +++ b/clang/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/clang/lib/Sema/SemaDeclObjC.cpp b/clang/lib/Sema/SemaDeclObjC.cpp index 476b6afea57..f91feb423f9 100644 --- a/clang/lib/Sema/SemaDeclObjC.cpp +++ b/clang/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); } } |