================
@@ -11046,6 +11046,24 @@ Sema::ActOnFunctionDeclarator(Scope *S, Declarator &D,
DeclContext *DC,
if (NewFD->hasAttr<HLSLShaderAttr>())
HLSL().CheckEntryPoint(NewFD);
+
+ // Resources cannot be passed to functions that are not inlined.
+ if (const NoInlineAttr *NoInline = NewFD->getAttr<NoInlineAttr>()) {
+ for (const ParmVarDecl *PVD : NewFD->parameters()) {
+ QualType ParamTy = PVD->getType().getNonReferenceType();
+ QualType EltTy = Context.getBaseElementType(ParamTy);
+ // `isCompleteType` forces completion of the element type so the
+ // resource parameter check is valid.
----------------
hekota wrote:
Ok, that makes sense. Can you please add a comment why you are using
isCompleteType instead of RequireCompleteType?
https://github.com/llvm/llvm-project/pull/208111
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits