[clang] [HLSL] Implement '__builtin_hlsl_is_intangible' type trait (PR #104544)

Greg Roth via cfe-commits cfe-commits at lists.llvm.org
Mon Aug 26 12:40:35 PDT 2024


================
@@ -5683,6 +5685,14 @@ static bool EvaluateUnaryTypeTrait(Sema &Self, TypeTrait UTT,
         return true;
     return false;
   }
+  case UTT_IsIntangibleType:
+    if (!T->isVoidType() && !T->isIncompleteArrayType())
+      if (Self.RequireCompleteType(TInfo->getTypeLoc().getBeginLoc(), T,
+                                   diag::err_incomplete_type))
+        return false;
+    DiagnoseVLAInCXXTypeTrait(Self, TInfo,
+                              tok::kw___builtin_hlsl_is_intangible);
+    return Self.HLSL().IsIntangibleType(T);
----------------
pow2clk wrote:

I'm afraid that this and the change above are confusing me. Can you explain a bit what purpose these functions serve? I'm not even sure what returning true really means. This is why I favor negatable verbs at the start of functions returning bool like `has`* or `is`* . I don't know what to expect from `Check`* or `Evaluate`* 😒

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


More information about the cfe-commits mailing list