summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic/IdentifierTable.cpp
diff options
context:
space:
mode:
authorAlex Lorenz <arphaman@gmail.com>2018-05-23 00:52:20 +0000
committerAlex Lorenz <arphaman@gmail.com>2018-05-23 00:52:20 +0000
commit5a5a654165ab32c31715a6f0d9bbe97096283749 (patch)
tree90d907b18d577d1860cb4310c9aa8cd774810c32 /clang/lib/Basic/IdentifierTable.cpp
parent1e4d35044f7c5346cb3a860361c09a93d4def86c (diff)
downloadbcm5719-llvm-5a5a654165ab32c31715a6f0d9bbe97096283749.tar.gz
bcm5719-llvm-5a5a654165ab32c31715a6f0d9bbe97096283749.zip
[AST][ObjC] Print implicit property expression that only has a setter without crashing
rdar://40447209 llvm-svn: 333046
Diffstat (limited to 'clang/lib/Basic/IdentifierTable.cpp')
-rw-r--r--clang/lib/Basic/IdentifierTable.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/clang/lib/Basic/IdentifierTable.cpp b/clang/lib/Basic/IdentifierTable.cpp
index ec9ca7616cb..37703ca776d 100644
--- a/clang/lib/Basic/IdentifierTable.cpp
+++ b/clang/lib/Basic/IdentifierTable.cpp
@@ -645,6 +645,12 @@ SelectorTable::constructSetterSelector(IdentifierTable &Idents,
return SelTable.getUnarySelector(SetterName);
}
+std::string SelectorTable::getPropertyNameFromSetterSelector(Selector Sel) {
+ StringRef Name = Sel.getNameForSlot(0);
+ assert(Name.startswith("set") && "invalid setter name");
+ return (Twine(toLowercase(Name[3])) + Name.drop_front(4)).str();
+}
+
size_t SelectorTable::getTotalMemory() const {
SelectorTableImpl &SelTabImpl = getSelectorTableImpl(Impl);
return SelTabImpl.Allocator.getTotalMemory();
OpenPOWER on IntegriCloud