diff options
Diffstat (limited to 'clang/tools/clang-fuzzer/cxx_loop_proto.proto')
-rw-r--r-- | clang/tools/clang-fuzzer/cxx_loop_proto.proto | 28 |
1 files changed, 5 insertions, 23 deletions
diff --git a/clang/tools/clang-fuzzer/cxx_loop_proto.proto b/clang/tools/clang-fuzzer/cxx_loop_proto.proto index 5dae576940f..98b9bbf2a0b 100644 --- a/clang/tools/clang-fuzzer/cxx_loop_proto.proto +++ b/clang/tools/clang-fuzzer/cxx_loop_proto.proto @@ -10,23 +10,14 @@ /// \file /// This file describes a subset of C++ as a protobuf. It is used to /// more easily find interesting inputs for fuzzing Clang. This subset -/// extends the one defined in cxx_proto.proto by adding the option that -/// a VarRef can use the for loop's counter variable. +/// differs from the one defined in cxx_proto.proto by eliminating while +/// loops and Lvalues. The goal is that the C++ code generated will be +/// more likely to stress the LLVM loop vectorizer. /// //===----------------------------------------------------------------------===// - syntax = "proto2"; -message VarRef { - required int32 varnum = 1; - required bool is_loop_var = 2; -} - -message Lvalue { - required VarRef varref = 1; -} - message Const { required int32 val = 1; } @@ -55,34 +46,25 @@ message BinaryOp { message Rvalue { oneof rvalue_oneof { - VarRef varref = 1; - Const cons = 2; - BinaryOp binop = 3; + Const cons = 1; + BinaryOp binop = 2; } } message AssignmentStatement { - required Lvalue lvalue = 1; required Rvalue rvalue = 2; } - message IfElse { required Rvalue cond = 1; required StatementSeq if_body = 2; required StatementSeq else_body = 3; } -message While { - required Rvalue cond = 1; - required StatementSeq body = 2; -} - message Statement { oneof stmt_oneof { AssignmentStatement assignment = 1; IfElse ifelse = 2; - While while_loop = 3; } } |