summaryrefslogtreecommitdiffstats
path: root/clang/tools/clang-fuzzer/cxx_loop_proto.proto
diff options
context:
space:
mode:
Diffstat (limited to 'clang/tools/clang-fuzzer/cxx_loop_proto.proto')
-rw-r--r--clang/tools/clang-fuzzer/cxx_loop_proto.proto28
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;
}
}
OpenPOWER on IntegriCloud