================ @@ -278,33 +280,40 @@ void DXContainerWriter::writeParts(raw_ostream &OS) { auto Header = dxbc::RootParameterHeader{Param.Type, Param.Visibility, Param.Offset}; - switch (Param.Type) { - case llvm::to_underlying(dxbc::RootParameterType::Constants32Bit): + if (std::holds_alternative<DXContainerYAML::RootConstantsYaml>( + Param.Data)) { + auto ConstantYaml = + std::get<DXContainerYAML::RootConstantsYaml>(Param.Data); + dxbc::RootConstants Constants; - Constants.Num32BitValues = Param.Constants.Num32BitValues; - Constants.RegisterSpace = Param.Constants.RegisterSpace; - Constants.ShaderRegister = Param.Constants.ShaderRegister; + Constants.Num32BitValues = ConstantYaml.Num32BitValues; + Constants.RegisterSpace = ConstantYaml.RegisterSpace; + Constants.ShaderRegister = ConstantYaml.ShaderRegister; RS.ParametersContainer.addParameter(Header, Constants); - break; - case llvm::to_underlying(dxbc::RootParameterType::SRV): - case llvm::to_underlying(dxbc::RootParameterType::UAV): - case llvm::to_underlying(dxbc::RootParameterType::CBV): + } else if (std::holds_alternative<DXContainerYAML::RootDescriptorYaml>( + Param.Data)) { + auto DescriptorYaml = + std::get<DXContainerYAML::RootDescriptorYaml>(Param.Data); ---------------- inbelic wrote:
I think you can use the `std::get_if(&Param.Data)` notations here? https://github.com/llvm/llvm-project/pull/138318 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits