transform: Fix Manager::Run() with no transforms

If there are transforms added to the manager, then Run() would output an empty module. Fix this.

Bug: tint:390
Bug: tint:389
Change-Id: I439fe7a28816761f3702e304ef130b7a6992ecce
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/35280
Reviewed-by: dan sinclair <dsinclair@chromium.org>
Commit-Queue: Ben Clayton <bclayton@google.com>
This commit is contained in:
Ben Clayton 2020-12-09 15:15:20 +00:00 committed by Commit Bot service account
parent f3717fa249
commit 7a0daa233d
1 changed files with 12 additions and 8 deletions

View File

@ -24,6 +24,7 @@ Manager::~Manager() = default;
Transform::Output Manager::Run(ast::Module* module) { Transform::Output Manager::Run(ast::Module* module) {
Output out; Output out;
if (!transforms_.empty()) {
for (auto& transform : transforms_) { for (auto& transform : transforms_) {
auto res = transform->Run(module); auto res = transform->Run(module);
out.module = std::move(res.module); out.module = std::move(res.module);
@ -33,8 +34,11 @@ Transform::Output Manager::Run(ast::Module* module) {
} }
module = &out.module; module = &out.module;
} }
} else {
out.module = module->Clone();
}
TypeDeterminer td(module); TypeDeterminer td(&out.module);
if (!td.Determine()) { if (!td.Determine()) {
diag::Diagnostic err; diag::Diagnostic err;
err.severity = diag::Severity::Error; err.severity = diag::Severity::Error;