[tint][fuzz] Skip FoldConstants with shadowing
The transform introduces type names, so will fail if these are
shadowed.
Bug: 348688200
Change-Id: I7a03550ee74f11dcf5b9b9f990c577f0121f8c6e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/195714
Commit-Queue: James Price <jrprice@google.com>
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
diff --git a/src/tint/lang/wgsl/ast/transform/fold_constants_fuzz.cc b/src/tint/lang/wgsl/ast/transform/fold_constants_fuzz.cc
index 668f7a5..a83f2ff 100644
--- a/src/tint/lang/wgsl/ast/transform/fold_constants_fuzz.cc
+++ b/src/tint/lang/wgsl/ast/transform/fold_constants_fuzz.cc
@@ -31,7 +31,18 @@
namespace tint::ast::transform {
namespace {
-void FoldConstantsFuzzer(const Program& program) {
+bool CanRun(const Program& program, const fuzz::wgsl::Context& context) {
+ if (context.program_properties.Contains(fuzz::wgsl::ProgramProperties::kBuiltinTypesShadowed)) {
+ return false; // FoldConstants assumes the Renamer transform has been run
+ }
+ return true;
+}
+
+void FoldConstantsFuzzer(const Program& program, const fuzz::wgsl::Context& context) {
+ if (!CanRun(program, context)) {
+ return;
+ }
+
DataMap outputs;
if (auto result = FoldConstants{}.Apply(program, DataMap{}, outputs)) {
if (!result->IsValid()) {