[clang] [clang] diagnose invalid std::tuple_size sizes (PR #159677)

Erich Keane via cfe-commits cfe-commits at lists.llvm.org
Fri Sep 19 06:37:19 PDT 2025


================
@@ -1222,6 +1222,16 @@ static IsTupleLike isTupleLike(Sema &S, SourceLocation Loc, QualType T,
   if (E.isInvalid())
     return IsTupleLike::Error;
 
+  if (Size < 0 || Size >= UINT_MAX) {
----------------
erichkeane wrote:

This test doesn't seem all that right.  I think we should be checking `if (Size.isNegative() || !Size.isSignedIntN(Ctx.getTypeSize(Ctx.getSizeType()))` or something like that like that ?

(should that just be `isIntN`?).

host-compiler `UINT_MAX` is almost definitely the wrong thing here.  


https://github.com/llvm/llvm-project/pull/159677


More information about the cfe-commits mailing list