Fix: filter-grammar-test: add dependencies between steps
authorSimon Marchi <simon.marchi@efficios.com>
Tue, 31 Mar 2020 03:24:24 +0000 (23:24 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Fri, 3 Apr 2020 19:42:00 +0000 (15:42 -0400)
If the user specifies only the -B switch of the filter-grammar-test
program, the program will try to print the bytecode without having
generated it first, leaving to a segfault.  Similarly, if the user
specifies only the -b switch, the program will try to generate the
bytecode from the IR, without having generated the IR first, also
leading to a segfault.

This patch adds some kind of dependency between the steps, such that if
the user is interested in a particular step (let's say, print the
bytecode), all the required steps will also be done.

Change-Id: Idc365a12b992a950566f227759fd3223cf5c5fd8
Signed-off-by: Simon Marchi <simon.marchi@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
src/lib/lttng-ctl/filter/filter-grammar-test.c

index 2804053cf29ceae93cfc3ce0a2a9b0d23a48922a..70656e1a84f42f87b1b0a35bb1579f2b15e908c9 100644 (file)
@@ -41,6 +41,22 @@ int main(int argc, char **argv)
                        print_bytecode = 1;
        }
 
+       /*
+        * Force generate the bytecode if the user asks to print the bytecode
+        * (can't print it without generating it first).
+        */
+       if (print_bytecode) {
+               generate_bytecode = 1;
+       }
+
+       /*
+        * Force generate the IR if the user asks to generate the bytecode
+        * (the bytecode is generated by visiting the IR).
+        */
+       if (generate_bytecode) {
+               generate_ir = 1;
+       }
+
        ctx = filter_parser_ctx_alloc(stdin);
        if (!ctx) {
                fprintf(stderr, "Error allocating parser\n");
This page took 0.033511 seconds and 4 git commands to generate.