Skip to content

Commit 70a9b7f

Browse files
author
joaosaffran
committed
addressing PR Comments
1 parent c7042b2 commit 70a9b7f

File tree

1 file changed

+15
-17
lines changed

1 file changed

+15
-17
lines changed

llvm/lib/ObjectYAML/DXContainerEmitter.cpp

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -277,29 +277,27 @@ void DXContainerWriter::writeParts(raw_ostream &OS) {
277277
auto Header = dxbc::RootParameterHeader{Param.Type, Param.Visibility,
278278
Param.Offset};
279279

280-
if (std::holds_alternative<DXContainerYAML::RootConstantsYaml>(
281-
Param.Data)) {
282-
auto ConstantYaml =
283-
std::get<DXContainerYAML::RootConstantsYaml>(Param.Data);
284-
280+
if (auto *ConstantYaml =
281+
std::get_if<DXContainerYAML::RootConstantsYaml>(&Param.Data)) {
285282
dxbc::RootConstants Constants;
286-
Constants.Num32BitValues = ConstantYaml.Num32BitValues;
287-
Constants.RegisterSpace = ConstantYaml.RegisterSpace;
288-
Constants.ShaderRegister = ConstantYaml.ShaderRegister;
283+
Constants.Num32BitValues = ConstantYaml->Num32BitValues;
284+
Constants.RegisterSpace = ConstantYaml->RegisterSpace;
285+
Constants.ShaderRegister = ConstantYaml->ShaderRegister;
289286
RS.ParametersContainer.addParameter(Header, Constants);
290-
} else if (std::holds_alternative<DXContainerYAML::RootDescriptorYaml>(
291-
Param.Data)) {
292-
auto DescriptorYaml =
293-
std::get<DXContainerYAML::RootDescriptorYaml>(Param.Data);
287+
} else if (auto *DescriptorYaml =
288+
std::get_if<DXContainerYAML::RootDescriptorYaml>(
289+
&Param.Data)) {
294290
dxbc::RTS0::v2::RootDescriptor Descriptor;
295-
Descriptor.RegisterSpace = DescriptorYaml.RegisterSpace;
296-
Descriptor.ShaderRegister = DescriptorYaml.ShaderRegister;
291+
Descriptor.RegisterSpace = DescriptorYaml->RegisterSpace;
292+
Descriptor.ShaderRegister = DescriptorYaml->ShaderRegister;
297293
if (RS.Version > 1)
298-
Descriptor.Flags = DescriptorYaml.getEncodedFlags();
294+
Descriptor.Flags = DescriptorYaml->getEncodedFlags();
299295
RS.ParametersContainer.addParameter(Header, Descriptor);
300296
} else {
301-
// Handling invalid parameter type edge case
302-
RS.ParametersContainer.addInfo(Header, -1);
297+
// Handling invalid parameter type edge case. We intentionally let
298+
// obj2yaml/yaml2obj parse and emit invalid dxcontainer data, in order
299+
// for that to be used as a testing tool more effectively.
300+
RS.ParametersContainer.addInvalidParameter(Header);
303301
}
304302
}
305303

0 commit comments

Comments
 (0)