diff options
| author | jsmall-nvidia <jsmall@nvidia.com> | 2023-02-14 16:21:07 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-02-14 13:21:07 -0800 |
| commit | b92a75db2aab1adffe08ae0103cafb080f9795e2 (patch) | |
| tree | f8d27bcd76a78f5d66e40a2f2f970b0335b74e97 /source/slang/slang-check-decl.cpp | |
| parent | ec49215d711fff9356663390a31182e811e27467 (diff) | |
Preliminary debugBreak support (#2647)
* #include an absolute path didn't work - because paths were taken to always be relative.
* Preliminary support for debug break.
* Add C++ debug break support.
Add details about usage.
* Improve debug break test details.
* Make HLSL output a comment about no support.
* Handle specialize for target assert, without a body if it has spv_instruction/target intrinsic
Diffstat (limited to 'source/slang/slang-check-decl.cpp')
| -rw-r--r-- | source/slang/slang-check-decl.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/source/slang/slang-check-decl.cpp b/source/slang/slang-check-decl.cpp index 7e8e94d95..837dcb8eb 100644 --- a/source/slang/slang-check-decl.cpp +++ b/source/slang/slang-check-decl.cpp @@ -5372,7 +5372,15 @@ namespace Slang // If it's specialized for target it should have a body... if (auto funcDecl = as<FunctionDeclBase>(decl)) { - SLANG_ASSERT(funcDecl->body); + // Normally if we have specialization for target it must have a body. + if (funcDecl->body == nullptr) + { + // If it doesn't have a body but does have a target intrinsic/SPIRVInstructionOp + // it's probably ok + + SLANG_ASSERT(funcDecl->findModifier<SPIRVInstructionOpAttribute>() || + funcDecl->findModifier<TargetIntrinsicModifier>()); + } } Name* targetName = specializedModifier->targetToken.getName(); |
