spirv-reader: check conversion of a result type
Bug: chromium:1230976 Change-Id: I793e437f298be3f34a80da7b43ee779fc122e6a8 Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/62921 Kokoro: Kokoro <noreply+kokoro@google.com> Reviewed-by: James Price <jrprice@google.com> Commit-Queue: James Price <jrprice@google.com> Auto-Submit: David Neto <dneto@google.com>
This commit is contained in:
parent
231648c6a9
commit
d30c07e4df
|
@ -3523,6 +3523,9 @@ bool FunctionEmitter::EmitStatement(const spvtools::opt::Instruction& inst) {
|
||||||
TypedExpression combinatorial_expr;
|
TypedExpression combinatorial_expr;
|
||||||
if (def_info->skip == SkipReason::kDontSkip) {
|
if (def_info->skip == SkipReason::kDontSkip) {
|
||||||
combinatorial_expr = MaybeEmitCombinatorialValue(inst);
|
combinatorial_expr = MaybeEmitCombinatorialValue(inst);
|
||||||
|
if (!success()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// An access chain or OpCopyObject can generate a skip.
|
// An access chain or OpCopyObject can generate a skip.
|
||||||
if (def_info->skip != SkipReason::kDontSkip) {
|
if (def_info->skip != SkipReason::kDontSkip) {
|
||||||
|
@ -3813,8 +3816,14 @@ TypedExpression FunctionEmitter::MaybeEmitCombinatorialValue(
|
||||||
|
|
||||||
const auto opcode = inst.opcode();
|
const auto opcode = inst.opcode();
|
||||||
|
|
||||||
const Type* ast_type =
|
const Type* ast_type = nullptr;
|
||||||
inst.type_id() != 0 ? parser_impl_.ConvertType(inst.type_id()) : nullptr;
|
if (inst.type_id()) {
|
||||||
|
ast_type = parser_impl_.ConvertType(inst.type_id());
|
||||||
|
if (!ast_type) {
|
||||||
|
Fail() << "couldn't convert result type for: " << inst.PrettyPrint();
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
auto binary_op = ConvertBinaryOp(opcode);
|
auto binary_op = ConvertBinaryOp(opcode);
|
||||||
if (binary_op != ast::BinaryOp::kNone) {
|
if (binary_op != ast::BinaryOp::kNone) {
|
||||||
|
|
Loading…
Reference in New Issue