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 /include/clang/Basic/IdentifierTable.h | |
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 'include/clang/Basic/IdentifierTable.h')
-rw-r--r-- | include/clang/Basic/IdentifierTable.h | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/include/clang/Basic/IdentifierTable.h b/include/clang/Basic/IdentifierTable.h index 32818a9137..2584136ec4 100644 --- a/include/clang/Basic/IdentifierTable.h +++ b/include/clang/Basic/IdentifierTable.h @@ -353,13 +353,6 @@ class Selector { assert((InfoPtr & ArgFlags) == 0 &&"Insufficiently aligned IdentifierInfo"); } Selector(uintptr_t V) : InfoPtr(V) {} -public: - friend class SelectorTable; // only the SelectorTable can create these - friend class DeclarationName; // and the AST's DeclarationName. - - /// The default ctor should only be used when creating data structures that - /// will contain selectors. - Selector() : InfoPtr(0) {} IdentifierInfo *getAsIdentifierInfo() const { if (getIdentifierInfoFlag()) @@ -369,6 +362,14 @@ public: unsigned getIdentifierInfoFlag() const { return InfoPtr & ArgFlags; } +public: + friend class SelectorTable; // only the SelectorTable can create these + friend class DeclarationName; // and the AST's DeclarationName. + + /// The default ctor should only be used when creating data structures that + /// will contain selectors. + Selector() : InfoPtr(0) {} + /// operator==/!= - Indicate whether the specified selectors are identical. bool operator==(Selector RHS) const { return InfoPtr == RHS.InfoPtr; |