summaryrefslogtreecommitdiff
path: root/source/slang/slang-ir-marshal-native-call.cpp
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2023-09-28 18:07:40 -0700
committerGitHub <noreply@github.com>2023-09-28 18:07:40 -0700
commitb7d318f48db2cb83a41d665f1727ae93fc555124 (patch)
treed81d69cbba264cd059bbe67f29235226032c4793 /source/slang/slang-ir-marshal-native-call.cpp
parente7238942ea003e134b325fa65296df8e19368e90 (diff)
Support `constref` parameters passing. (#3249)
* Support `constref` parameters passing. * Fix. * Fix. * Add test and diagnostic on mix use of __constref and no_diff. * check for [constref] on differentiable member method. --------- Co-authored-by: Yong He <yhe@nvidia.com>
Diffstat (limited to 'source/slang/slang-ir-marshal-native-call.cpp')
-rw-r--r--source/slang/slang-ir-marshal-native-call.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/source/slang/slang-ir-marshal-native-call.cpp b/source/slang/slang-ir-marshal-native-call.cpp
index 3fcc02de0..401828daa 100644
--- a/source/slang/slang-ir-marshal-native-call.cpp
+++ b/source/slang/slang-ir-marshal-native-call.cpp
@@ -18,6 +18,7 @@ namespace Slang
return builder.getNativePtrType((IRType*)as<IRComPtrType>(type)->getOperand(0));
case kIROp_InOutType:
case kIROp_RefType:
+ case kIROp_ConstRefType:
case kIROp_OutType:
return builder.getPtrType(getNativeType(builder, (IRType*)type->getOperand(0)));
default:
@@ -76,6 +77,7 @@ namespace Slang
{
case kIROp_InOutType:
case kIROp_RefType:
+ case kIROp_ConstRefType:
case kIROp_OutType:
return marshalRefManagedValueToNativeValue(
builder, originalArg, args);
@@ -135,6 +137,7 @@ namespace Slang
{
case kIROp_InOutType:
case kIROp_RefType:
+ case kIROp_ConstRefType:
SLANG_UNREACHABLE("out and ref types should be handled before reaching here.");
break;
case kIROp_StringType: