diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2017-01-02 19:18:08 +0000 | 
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2017-01-02 19:18:08 +0000 | 
| commit | bab175ec4b075c8076ba14c762900392533f6ee4 (patch) | |
| tree | 01f4f29419a2cb10abe13c1e63cd2a66068b0137 /lib/Basic/IdentifierTable.cpp | |
| parent | 8b7a8012d223fac5d17d16a66bb39168a9a1dfc0 (diff) | |
Notes
Diffstat (limited to 'lib/Basic/IdentifierTable.cpp')
| -rw-r--r-- | lib/Basic/IdentifierTable.cpp | 18 | 
1 files changed, 11 insertions, 7 deletions
| diff --git a/lib/Basic/IdentifierTable.cpp b/lib/Basic/IdentifierTable.cpp index d6ad0f5c9158..af424cd92390 100644 --- a/lib/Basic/IdentifierTable.cpp +++ b/lib/Basic/IdentifierTable.cpp @@ -113,7 +113,8 @@ namespace {      KEYOBJC2    = 0x20000,      KEYZVECTOR  = 0x40000,      KEYCOROUTINES = 0x80000, -    KEYALL = (0xfffff & ~KEYNOMS18 & +    KEYMODULES = 0x100000, +    KEYALL = (0x1fffff & ~KEYNOMS18 &                ~KEYNOOPENCL) // KEYNOMS18 and KEYNOOPENCL are used to exclude.    }; @@ -147,9 +148,10 @@ static KeywordStatus getKeywordStatus(const LangOptions &LangOpts,    // We treat bridge casts as objective-C keywords so we can warn on them    // in non-arc mode.    if (LangOpts.ObjC2 && (Flags & KEYARC)) return KS_Enabled; -  if (LangOpts.ConceptsTS && (Flags & KEYCONCEPTS)) return KS_Enabled;    if (LangOpts.ObjC2 && (Flags & KEYOBJC2)) return KS_Enabled; -  if (LangOpts.Coroutines && (Flags & KEYCOROUTINES)) return KS_Enabled; +  if (LangOpts.ConceptsTS && (Flags & KEYCONCEPTS)) return KS_Enabled; +  if (LangOpts.CoroutinesTS && (Flags & KEYCOROUTINES)) return KS_Enabled; +  if (LangOpts.ModulesTS && (Flags & KEYMODULES)) return KS_Enabled;    if (LangOpts.CPlusPlus && (Flags & KEYCXX11)) return KS_Future;    return KS_Disabled;  } @@ -441,9 +443,11 @@ std::string Selector::getAsString() const {    if (getIdentifierInfoFlag() < MultiArg) {      IdentifierInfo *II = getAsIdentifierInfo(); -    // If the number of arguments is 0 then II is guaranteed to not be null. -    if (getNumArgs() == 0) +    if (getNumArgs() == 0) { +      assert(II && "If the number of arguments is 0 then II is guaranteed to " +                   "not be null.");        return II->getName(); +    }      if (!II)        return ":"; @@ -619,8 +623,8 @@ Selector SelectorTable::getSelector(unsigned nKeys, IdentifierInfo **IIV) {    // variable size array (for parameter types) at the end of them.    unsigned Size = sizeof(MultiKeywordSelector) + nKeys*sizeof(IdentifierInfo *);    MultiKeywordSelector *SI = -    (MultiKeywordSelector*)SelTabImpl.Allocator.Allocate(Size, -                                         llvm::alignOf<MultiKeywordSelector>()); +      (MultiKeywordSelector *)SelTabImpl.Allocator.Allocate( +          Size, alignof(MultiKeywordSelector));    new (SI) MultiKeywordSelector(nKeys, IIV);    SelTabImpl.Table.InsertNode(SI, InsertPos);    return Selector(SI); | 
