summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/tools/fuzzing.h48
1 files changed, 15 insertions, 33 deletions
diff --git a/src/tools/fuzzing.h b/src/tools/fuzzing.h
index de03e943b..8283fccd1 100644
--- a/src/tools/fuzzing.h
+++ b/src/tools/fuzzing.h
@@ -27,6 +27,7 @@ high chance for set at start of loop
// TODO Generate exception handling instructions
+#include "ir/branch-utils.h"
#include "ir/memory-utils.h"
#include <ir/find_all.h>
#include <ir/literal-utils.h>
@@ -865,39 +866,20 @@ private:
void visitExpression(Expression* curr) {
// Note all scope names, and fix up all uses.
-
-#define DELEGATE_ID curr->_id
-
-#define DELEGATE_START(id) \
- auto* cast = curr->cast<id>(); \
- WASM_UNUSED(cast);
-
-#define DELEGATE_GET_FIELD(id, name) cast->name
-
-#define DELEGATE_FIELD_SCOPE_NAME_DEF(id, name) \
- if (cast->name.is()) { \
- if (seen.count(cast->name)) { \
- replace(); \
- } else { \
- seen.insert(cast->name); \
- } \
- }
-
-#define DELEGATE_FIELD_SCOPE_NAME_USE(id, name) replaceIfInvalid(cast->name);
-
-#define DELEGATE_FIELD_CHILD(id, name)
-#define DELEGATE_FIELD_OPTIONAL_CHILD(id, name)
-#define DELEGATE_FIELD_INT(id, name)
-#define DELEGATE_FIELD_INT_ARRAY(id, name)
-#define DELEGATE_FIELD_LITERAL(id, name)
-#define DELEGATE_FIELD_NAME(id, name)
-#define DELEGATE_FIELD_NAME_VECTOR(id, name)
-#define DELEGATE_FIELD_SCOPE_NAME_USE_VECTOR(id, name)
-#define DELEGATE_FIELD_SIGNATURE(id, name)
-#define DELEGATE_FIELD_TYPE(id, name)
-#define DELEGATE_FIELD_ADDRESS(id, name)
-
-#include "wasm-delegations-fields.h"
+ BranchUtils::operateOnScopeNameDefs(curr, [&](Name& name) {
+ if (name.is()) {
+ if (seen.count(name)) {
+ replace();
+ } else {
+ seen.insert(name);
+ }
+ }
+ });
+ BranchUtils::operateOnScopeNameUses(curr, [&](Name& name) {
+ if (name.is()) {
+ replaceIfInvalid(name);
+ }
+ });
}
bool replaceIfInvalid(Name target) {