From 7e8c85e85440c1fea42236a8ef8286e1ce1638ce Mon Sep 17 00:00:00 2001 From: Swoorup Joshi Date: Wed, 25 Jun 2025 17:35:12 +1000 Subject: Fix generation of wgsl case arms (#7374) * Fix generation of wgsl case arms * Added test case to test generation of switch case --------- Co-authored-by: Harsh Aggarwal (NVIDIA) --- source/slang/slang-emit-wgsl.cpp | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) (limited to 'source') diff --git a/source/slang/slang-emit-wgsl.cpp b/source/slang/slang-emit-wgsl.cpp index d8a243b32..61f34d408 100644 --- a/source/slang/slang-emit-wgsl.cpp +++ b/source/slang/slang-emit-wgsl.cpp @@ -66,16 +66,24 @@ void WGSLSourceEmitter::emitSwitchCaseSelectorsImpl( // "case 2, 3, 4: ...;" instead of the C-like syntax // "case 2: case 3: case 4: ...;". - m_writer->emit("case "); - for (auto caseVal : currentCase->values) + if (!isDefault) { - emitOperand(caseVal, getInfo(EmitOp::General)); - m_writer->emit(", "); + m_writer->emit("case "); + auto& values = currentCase->values; + for (Index i = 0; i < values.getCount(); ++i) + { + emitOperand(values[i], getInfo(EmitOp::General)); + if (i < values.getCount() - 1) + { + m_writer->emit(", "); + } + } } - if (isDefault) + else { - m_writer->emit("default, "); + m_writer->emit("default "); } + m_writer->emit(":\n"); } -- cgit v1.2.3