@@ -8340,9 +8340,9 @@ SpirvInstruction *SpirvEmitter::tryToAssignToMSOutAttrsOrIndices(
83408340 }
83418341
83428342 if (isMSOutAttribute) {
8343- assignToMSOutAttribute(varDecl, rhs, indices);
8343+ assignToMSOutAttribute(varDecl, rhs, indices, lhs->getLocStart() );
83448344 } else if (isMSOutIndices) {
8345- assignToMSOutIndices(varDecl, rhs, indices);
8345+ assignToMSOutIndices(varDecl, rhs, indices, lhs->getLocStart() );
83468346 } else {
83478347 assert(isMSOutAttributeBlock);
83488348 QualType type = varDecl->getType();
@@ -8357,7 +8357,7 @@ SpirvInstruction *SpirvEmitter::tryToAssignToMSOutAttrsOrIndices(
83578357 SpirvInstruction *subValue = spvBuilder.createCompositeExtract(
83588358 fieldType, rhs, {getNumBaseClasses(type) + field->getFieldIndex()},
83598359 lhs->getLocStart());
8360- assignToMSOutAttribute(field, subValue, indices);
8360+ assignToMSOutAttribute(field, subValue, indices, lhs->getLocStart() );
83618361 }
83628362 }
83638363
@@ -8369,7 +8369,8 @@ SpirvInstruction *SpirvEmitter::tryToAssignToMSOutAttrsOrIndices(
83698369
83708370void SpirvEmitter::assignToMSOutAttribute(
83718371 const DeclaratorDecl *decl, SpirvInstruction *value,
8372- const llvm::SmallVector<SpirvInstruction *, 4> &indices) {
8372+ const llvm::SmallVector<SpirvInstruction *, 4> &indices,
8373+ SourceLocation loc) {
83738374 assert(spvContext.isMS() && !indices.empty());
83748375
83758376 // Extract attribute index and vecComponent (if any).
@@ -8381,7 +8382,6 @@ void SpirvEmitter::assignToMSOutAttribute(
83818382
83828383 auto semanticInfo = declIdMapper.getStageVarSemantic(decl);
83838384 assert(semanticInfo.isValid());
8384- const auto loc = decl->getLocation();
83858385 // Special handle writes to clip/cull distance attributes.
83868386 if (declIdMapper.glPerVertex.tryToAccess(
83878387 hlsl::DXIL::SigPointKind::MSOut, semanticInfo.semantic->GetKind(),
@@ -8409,7 +8409,8 @@ void SpirvEmitter::assignToMSOutAttribute(
84098409
84108410void SpirvEmitter::assignToMSOutIndices(
84118411 const DeclaratorDecl *decl, SpirvInstruction *value,
8412- const llvm::SmallVector<SpirvInstruction *, 4> &indices) {
8412+ const llvm::SmallVector<SpirvInstruction *, 4> &indices,
8413+ SourceLocation loc) {
84138414 assert(spvContext.isMS() && !indices.empty());
84148415
84158416 bool extMesh = featureManager.isExtensionEnabled(Extension::EXT_mesh_shader);
@@ -8437,7 +8438,6 @@ void SpirvEmitter::assignToMSOutIndices(
84378438 }
84388439 }
84398440
8440- const auto loc = decl->getLocation();
84418441 if (numVertices == 1) {
84428442 // for "point" output topology.
84438443 assert(numValues == 1);
0 commit comments