1fd4e5da5Sopenharmony_ci// Copyright (c) 2020 Google LLC
2fd4e5da5Sopenharmony_ci//
3fd4e5da5Sopenharmony_ci// Licensed under the Apache License, Version 2.0 (the "License");
4fd4e5da5Sopenharmony_ci// you may not use this file except in compliance with the License.
5fd4e5da5Sopenharmony_ci// You may obtain a copy of the License at
6fd4e5da5Sopenharmony_ci//
7fd4e5da5Sopenharmony_ci//     http://www.apache.org/licenses/LICENSE-2.0
8fd4e5da5Sopenharmony_ci//
9fd4e5da5Sopenharmony_ci// Unless required by applicable law or agreed to in writing, software
10fd4e5da5Sopenharmony_ci// distributed under the License is distributed on an "AS IS" BASIS,
11fd4e5da5Sopenharmony_ci// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12fd4e5da5Sopenharmony_ci// See the License for the specific language governing permissions and
13fd4e5da5Sopenharmony_ci// limitations under the License.
14fd4e5da5Sopenharmony_ci
15fd4e5da5Sopenharmony_ci#ifndef SOURCE_FUZZ_FUZZER_PASS_ADD_LOADS_H_
16fd4e5da5Sopenharmony_ci#define SOURCE_FUZZ_FUZZER_PASS_ADD_LOADS_H_
17fd4e5da5Sopenharmony_ci
18fd4e5da5Sopenharmony_ci#include "source/fuzz/fuzzer_pass.h"
19fd4e5da5Sopenharmony_ci
20fd4e5da5Sopenharmony_cinamespace spvtools {
21fd4e5da5Sopenharmony_cinamespace fuzz {
22fd4e5da5Sopenharmony_ci
23fd4e5da5Sopenharmony_ci// Fuzzer pass that adds stores, at random, from pointers in the module.
24fd4e5da5Sopenharmony_ciclass FuzzerPassAddLoads : public FuzzerPass {
25fd4e5da5Sopenharmony_ci public:
26fd4e5da5Sopenharmony_ci  FuzzerPassAddLoads(opt::IRContext* ir_context,
27fd4e5da5Sopenharmony_ci                     TransformationContext* transformation_context,
28fd4e5da5Sopenharmony_ci                     FuzzerContext* fuzzer_context,
29fd4e5da5Sopenharmony_ci                     protobufs::TransformationSequence* transformations,
30fd4e5da5Sopenharmony_ci                     bool ignore_inapplicable_transformations);
31fd4e5da5Sopenharmony_ci
32fd4e5da5Sopenharmony_ci  void Apply() override;
33fd4e5da5Sopenharmony_ci};
34fd4e5da5Sopenharmony_ci
35fd4e5da5Sopenharmony_ci}  // namespace fuzz
36fd4e5da5Sopenharmony_ci}  // namespace spvtools
37fd4e5da5Sopenharmony_ci
38fd4e5da5Sopenharmony_ci#endif  // SOURCE_FUZZ_FUZZER_PASS_ADD_LOADS_H_
39