[PATCH] D135341: adds `__reference_constructs_from_temporary`
    Corentin Jabot via Phabricator via cfe-commits 
    cfe-commits at lists.llvm.org
       
    Tue Sep 12 00:42:35 PDT 2023
    
    
  
cor3ntin added inline comments.
================
Comment at: clang/lib/Sema/SemaExprCXX.cpp:33
 #include "clang/Basic/TypeTraits.h"
+#include "clang/Basic/TokenKinds.h"
 #include "clang/Lex/Preprocessor.h"
----------------
Superfluous change
================
Comment at: clang/lib/Sema/SemaExprCXX.cpp:5513
+
+      QualType TPtr = S.BuiltinAddPointer(S.BuiltinRemoveReference(T, UnaryTransformType::RemoveCVRef, {}), {});
+      QualType UPtr = S.BuiltinAddPointer(S.BuiltinRemoveReference(U, UnaryTransformType::RemoveCVRef, {}), {});
----------------
`BuiltinRemoveReference` is nice here as I don't think we have a way to remove all cv and ref in one go at the ASTContext/QualType level.
However `BuiltinAddPointer` does nothing for us over `Context.getPointerType()`, so I'd rather we used that.
================
Comment at: clang/lib/Sema/SemaExprCXX.cpp:5515
+      QualType UPtr = S.BuiltinAddPointer(S.BuiltinRemoveReference(U, UnaryTransformType::RemoveCVRef, {}), {});
+      return EvaluateBinaryTypeTrait(S, TypeTrait::BTT_IsConvertibleTo, UPtr, TPtr, RParenLoc);
     }
----------------
Could you put the implementation of `BTT_IsConvertibleTo` in its own function?
Repository:
  rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D135341/new/
https://reviews.llvm.org/D135341
    
    
More information about the cfe-commits
mailing list