simpleMPTypeBad Trace summary:

Step 1: State 0 -- simpleMPBufferBad.c line 5 proc 0 [main@0->main@1] "a[0] = 0;" -> State 1
Step 2: State 1 -- simpleMPBufferBad.c line 6 proc 0 [main@1->main@2] "a[1] = 1;" -> State 2
Step 3: State 2 -- simpleMPBufferBad.c line 7 proc 0 [main@2->main@3] "if (PID == 0)" [true] -> State 3
Step 4: State 3 -- simpleMPBufferBad.c line 5 proc 1 [main@0->main@1] "a[0] = 0;" -> State 4
Step 5: State 4 -- simpleMPBufferBad.c line 6 proc 1 [main@1->main@2] "a[1] = 1;" -> State 5
Step 6: State 5 -- simpleMPBufferBad.c line 7 proc 1 [main@2->main@4] "if (PID == 0)" [false] -> State 6
Step 7: State 6 -- simpleMPBufferBad.c line 8 proc 0 [main@3->main@5] "send(a, 1, 0);" AND simpleMPBufferBad.c line 10 proc 1 [main@4->main@5] "recv(b, 0, 0);"

simpleMPTypeBad Trace details:

begin state 0
  save = true
  onStack = true;
  seen = true;
  pathCondition : true
  begin model state
    begin shared variables
    end shared variables;
    begin process 0
      begin stack frame 0
        function : main;
        location : 0;
        a = m0p0s0f0v0 (int[2]);
        b = m0p0s0f0v1 (int[1]);
      end stack frame 0;
    end process 0;
    begin process 1
      begin stack frame 0
        function : main;
        location : 0;
        a = m0p1s0f0v0 (int[2]);
        b = m0p1s0f0v1 (int[1]);
      end stack frame 0;
    end process 1;
  end model state
end state 0.

Step 1: State 0 -- simpleMPBufferBad.c line 5 proc 0 [main@0->main@1] "a[0] = 0;" -> State 1

begin state 1
  save = false
  onStack = true;
  seen = true;
  pathCondition : true
  begin model state
    begin shared variables
    end shared variables;
    begin process 0
      begin stack frame 0
        function : main;
        location : 1;
        a = m0p0s0f0v0<0,0> (int[2]);
        b = m0p0s0f0v1 (int[1]);
      end stack frame 0;
    end process 0;
    begin process 1
      begin stack frame 0
        function : main;
        location : 0;
        a = m0p1s0f0v0 (int[2]);
        b = m0p1s0f0v1 (int[1]);
      end stack frame 0;
    end process 1;
  end model state
end state 1.

Step 2: State 1 -- simpleMPBufferBad.c line 6 proc 0 [main@1->main@2] "a[1] = 1;" -> State 2

begin state 2
  save = false
  onStack = true;
  seen = true;
  pathCondition : true
  begin model state
    begin shared variables
    end shared variables;
    begin process 0
      begin stack frame 0
        function : main;
        location : 2;
        a = m0p0s0f0v0<0,0><1,1> (int[2]);
        b = m0p0s0f0v1 (int[1]);
      end stack frame 0;
    end process 0;
    begin process 1
      begin stack frame 0
        function : main;
        location : 0;
        a = m0p1s0f0v0 (int[2]);
        b = m0p1s0f0v1 (int[1]);
      end stack frame 0;
    end process 1;
  end model state
end state 2.

Step 3: State 2 -- simpleMPBufferBad.c line 7 proc 0 [main@2->main@3] "if (PID == 0)" [true] -> State 3

begin state 3
  save = false
  onStack = true;
  seen = true;
  pathCondition : true
  begin model state
    begin shared variables
    end shared variables;
    begin process 0
      begin stack frame 0
        function : main;
        location : 3;
        a = m0p0s0f0v0<0,0><1,1> (int[2]);
        b = m0p0s0f0v1 (int[1]);
      end stack frame 0;
    end process 0;
    begin process 1
      begin stack frame 0
        function : main;
        location : 0;
        a = m0p1s0f0v0 (int[2]);
        b = m0p1s0f0v1 (int[1]);
      end stack frame 0;
    end process 1;
  end model state
end state 3.

Step 4: State 3 -- simpleMPBufferBad.c line 5 proc 1 [main@0->main@1] "a[0] = 0;" -> State 4

begin state 4
  save = false
  onStack = true;
  seen = true;
  pathCondition : true
  begin model state
    begin shared variables
    end shared variables;
    begin process 0
      begin stack frame 0
        function : main;
        location : 3;
        a = m0p0s0f0v0<0,0><1,1> (int[2]);
        b = m0p0s0f0v1 (int[1]);
      end stack frame 0;
    end process 0;
    begin process 1
      begin stack frame 0
        function : main;
        location : 1;
        a = m0p1s0f0v0<0,0> (int[2]);
        b = m0p1s0f0v1 (int[1]);
      end stack frame 0;
    end process 1;
  end model state
end state 4.

Step 5: State 4 -- simpleMPBufferBad.c line 6 proc 1 [main@1->main@2] "a[1] = 1;" -> State 5

begin state 5
  save = false
  onStack = true;
  seen = true;
  pathCondition : true
  begin model state
    begin shared variables
    end shared variables;
    begin process 0
      begin stack frame 0
        function : main;
        location : 3;
        a = m0p0s0f0v0<0,0><1,1> (int[2]);
        b = m0p0s0f0v1 (int[1]);
      end stack frame 0;
    end process 0;
    begin process 1
      begin stack frame 0
        function : main;
        location : 2;
        a = m0p1s0f0v0<0,0><1,1> (int[2]);
        b = m0p1s0f0v1 (int[1]);
      end stack frame 0;
    end process 1;
  end model state
end state 5.

Step 6: State 5 -- simpleMPBufferBad.c line 7 proc 1 [main@2->main@4] "if (PID == 0)" [false] -> State 6

begin state 6
  save = false
  onStack = true;
  seen = true;
  pathCondition : true
  begin model state
    begin shared variables
    end shared variables;
    begin process 0
      begin stack frame 0
        function : main;
        location : 3;
        a = m0p0s0f0v0<0,0><1,1> (int[2]);
        b = m0p0s0f0v1 (int[1]);
      end stack frame 0;
    end process 0;
    begin process 1
      begin stack frame 0
        function : main;
        location : 4;
        a = m0p1s0f0v0<0,0><1,1> (int[2]);
        b = m0p1s0f0v1 (int[1]);
      end stack frame 0;
    end process 1;
  end model state
end state 6.

Step 7: State 6 -- simpleMPBufferBad.c line 8 proc 0 [main@3->main@5] "send(a, 1, 0);" AND simpleMPBufferBad.c line 10 proc 1 [main@4->main@5] "recv(b, 0, 0);"
