[tint][fuzz] Skip PromoteSideEffectsToDecl with shadowing
The transform introduces type names, so will fail if these are
shadowed.
Bug: 348796221
Change-Id: Iad5bae693884d3a1f6afe32678adb52d25e4d3f6
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/195715
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: James Price <jrprice@google.com>
diff --git a/src/tint/lang/wgsl/ast/transform/promote_side_effects_to_decl_fuzz.cc b/src/tint/lang/wgsl/ast/transform/promote_side_effects_to_decl_fuzz.cc
index 423d3ed..611dc24 100644
--- a/src/tint/lang/wgsl/ast/transform/promote_side_effects_to_decl_fuzz.cc
+++ b/src/tint/lang/wgsl/ast/transform/promote_side_effects_to_decl_fuzz.cc
@@ -34,7 +34,10 @@
namespace tint::ast::transform {
namespace {
-bool CanRun(const Program& program) {
+bool CanRun(const Program& program, const fuzz::wgsl::Context& context) {
+ if (context.program_properties.Contains(fuzz::wgsl::ProgramProperties::kBuiltinTypesShadowed)) {
+ return false; // PromoteSideEffectsToDecl assumes the Renamer transform has been run
+ }
if (!program.Sem().Module()->Extensions().Contains(
wgsl::Extension::kChromiumDisableUniformityAnalysis)) {
return false; // Requires 'chromium_disable_uniformity_analysis'
@@ -45,8 +48,8 @@
return true;
}
-void PromoteSideEffectsToDeclFuzzer(const Program& program) {
- if (!CanRun(program)) {
+void PromoteSideEffectsToDeclFuzzer(const Program& program, const fuzz::wgsl::Context& context) {
+ if (!CanRun(program, context)) {
return;
}