r221724 - Make LookupResult be copyable to avoid decomposing an existing one and

David Blaikie dblaikie at gmail.com
Tue Nov 11 15:02:16 PST 2014


On Tue, Nov 11, 2014 at 3:00 PM, Kaelyn Takata <rikka at google.com> wrote:

> Author: rikka
> Date: Tue Nov 11 17:00:42 2014
> New Revision: 221724
>
> URL: http://llvm.org/viewvc/llvm-project?rev=221724&view=rev
> Log:
> Make LookupResult be copyable to avoid decomposing an existing one and
> initializing a new one every time a copy is needed.
>

Looks great - though I don't see the use case - I guess that'll be in a
follow-up commit?


>
> Modified:
>     cfe/trunk/include/clang/AST/UnresolvedSet.h
>     cfe/trunk/include/clang/Sema/Lookup.h
>     cfe/trunk/lib/Sema/SemaLookup.cpp
>
> Modified: cfe/trunk/include/clang/AST/UnresolvedSet.h
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/UnresolvedSet.h?rev=221724&r1=221723&r2=221724&view=diff
>
> ==============================================================================
> --- cfe/trunk/include/clang/AST/UnresolvedSet.h (original)
> +++ cfe/trunk/include/clang/AST/UnresolvedSet.h Tue Nov 11 17:00:42 2014
> @@ -98,7 +98,7 @@ class UnresolvedSetImpl {
>  private:
>    template <unsigned N> friend class UnresolvedSet;
>    UnresolvedSetImpl() {}
> -  UnresolvedSetImpl(const UnresolvedSetImpl &) LLVM_DELETED_FUNCTION;
> +  UnresolvedSetImpl(const UnresolvedSetImpl &) {};
>

Unnecessary semicolon (GCC will probably warn about this) at the end of
this line ^


>
>  public:
>    // We don't currently support assignment through this iterator, so we
> might
>
> Modified: cfe/trunk/include/clang/Sema/Lookup.h
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/Lookup.h?rev=221724&r1=221723&r2=221724&view=diff
>
> ==============================================================================
> --- cfe/trunk/include/clang/Sema/Lookup.h (original)
> +++ cfe/trunk/include/clang/Sema/Lookup.h Tue Nov 11 17:00:42 2014
> @@ -132,7 +132,7 @@ public:
>      : ResultKind(NotFound),
>        Paths(nullptr),
>        NamingClass(nullptr),
> -      SemaRef(SemaRef),
> +      SemaPtr(&SemaRef),
>        NameInfo(NameInfo),
>        LookupKind(LookupKind),
>        IDNS(0),
> @@ -154,7 +154,7 @@ public:
>      : ResultKind(NotFound),
>        Paths(nullptr),
>        NamingClass(nullptr),
> -      SemaRef(SemaRef),
> +      SemaPtr(&SemaRef),
>        NameInfo(Name, NameLoc),
>        LookupKind(LookupKind),
>        IDNS(0),
> @@ -174,7 +174,7 @@ public:
>      : ResultKind(NotFound),
>        Paths(nullptr),
>        NamingClass(nullptr),
> -      SemaRef(Other.SemaRef),
> +      SemaPtr(Other.SemaPtr),
>        NameInfo(Other.NameInfo),
>        LookupKind(Other.LookupKind),
>        IDNS(Other.IDNS),
> @@ -305,7 +305,7 @@ public:
>      if (!D->isInIdentifierNamespace(IDNS))
>        return nullptr;
>
> -    if (isHiddenDeclarationVisible() || isVisible(SemaRef, D))
> +    if (isHiddenDeclarationVisible() || isVisible(getSema(), D))
>        return D;
>
>      return getAcceptableDeclSlow(D);
> @@ -551,7 +551,7 @@ public:
>
>    /// \brief Get the Sema object that this lookup result is searching
>    /// with.
> -  Sema &getSema() const { return SemaRef; }
> +  Sema &getSema() const { return *SemaPtr; }
>
>    /// A class for iterating through a result set and possibly
>    /// filtering out results.  The results returned are possibly
> @@ -630,9 +630,9 @@ public:
>  private:
>    void diagnose() {
>      if (isAmbiguous())
> -      SemaRef.DiagnoseAmbiguousLookup(*this);
> -    else if (isClassLookup() && SemaRef.getLangOpts().AccessControl)
> -      SemaRef.CheckLookupAccess(*this);
> +      getSema().DiagnoseAmbiguousLookup(*this);
> +    else if (isClassLookup() && getSema().getLangOpts().AccessControl)
> +      getSema().CheckLookupAccess(*this);
>    }
>
>    void setAmbiguous(AmbiguityKind AK) {
> @@ -664,7 +664,7 @@ private:
>    QualType BaseObjectType;
>
>    // Parameters.
> -  Sema &SemaRef;
> +  Sema *SemaPtr;
>    DeclarationNameInfo NameInfo;
>    SourceRange NameContextRange;
>    Sema::LookupNameKind LookupKind;
>
> Modified: cfe/trunk/lib/Sema/SemaLookup.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaLookup.cpp?rev=221724&r1=221723&r2=221724&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/Sema/SemaLookup.cpp (original)
> +++ cfe/trunk/lib/Sema/SemaLookup.cpp Tue Nov 11 17:00:42 2014
> @@ -285,7 +285,7 @@ static inline unsigned getIDNS(Sema::Loo
>  }
>
>  void LookupResult::configure() {
> -  IDNS = getIDNS(LookupKind, SemaRef.getLangOpts().CPlusPlus,
> +  IDNS = getIDNS(LookupKind, getSema().getLangOpts().CPlusPlus,
>                   isForRedeclaration());
>
>    // If we're looking for one of the allocation or deallocation
> @@ -296,7 +296,7 @@ void LookupResult::configure() {
>    case OO_Delete:
>    case OO_Array_New:
>    case OO_Array_Delete:
> -    SemaRef.DeclareGlobalNewDelete();
> +    getSema().DeclareGlobalNewDelete();
>      break;
>
>    default:
> @@ -307,7 +307,7 @@ void LookupResult::configure() {
>    // up being declared.
>    if (IdentifierInfo *Id = NameInfo.getName().getAsIdentifierInfo()) {
>      if (unsigned BuiltinID = Id->getBuiltinID()) {
> -      if (!SemaRef.Context.BuiltinInfo.isPredefinedLibFunction(BuiltinID))
> +      if
> (!getSema().Context.BuiltinInfo.isPredefinedLibFunction(BuiltinID))
>          AllowHidden = true;
>      }
>    }
> @@ -400,8 +400,8 @@ void LookupResult::resolveKind() {
>      // canonical type.
>      if (TypeDecl *TD = dyn_cast<TypeDecl>(D)) {
>        if (!TD->getDeclContext()->isRecord()) {
> -        QualType T = SemaRef.Context.getTypeDeclType(TD);
> -        if (!UniqueTypes.insert(SemaRef.Context.getCanonicalType(T))) {
> +        QualType T = getSema().Context.getTypeDeclType(TD);
> +        if (!UniqueTypes.insert(getSema().Context.getCanonicalType(T))) {
>            // The type is not unique; pull something off the back and
> continue
>            // at this index.
>            Decls[I] = Decls[--N];
> @@ -1265,7 +1265,7 @@ static NamedDecl *findAcceptableDecl(Sem
>  }
>
>  NamedDecl *LookupResult::getAcceptableDeclSlow(NamedDecl *D) const {
> -  return findAcceptableDecl(SemaRef, D);
> +  return findAcceptableDecl(getSema(), D);
>  }
>
>  /// @brief Perform unqualified name lookup starting from a given
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20141111/d8fdb4f8/attachment.html>


More information about the cfe-commits mailing list