| // RUN: rm -fR %t |
| // RUN: mkdir %t |
| // RUN: %clang_analyze_cc1 -analyzer-checker=core \ |
| // RUN: -analyzer-output=html -o %t -verify %s |
| // RUN: cat %t/report-*.html | FileCheck %s |
| |
| int dereference(int *x) { |
| return *x; // expected-warning{{Dereference of null pointer (loaded from variable 'x')}} |
| } |
| |
| int foobar(bool cond, int *x) { |
| if (cond) |
| x = 0; |
| return dereference(x); |
| } |
| |
| // CHECK: <svg |
| // CHECK: <g |
| // CHECK-COUNT-9: <path class="arrow" id="arrow{{[0-9]+}}"/> |
| // CHECK-NOT: <path class="arrow" id="arrow{{[0-9]+}}"/> |
| // CHECK: </g> |
| // CHECK-NEXT: </svg> |
| // CHECK-NEXT: <script type='text/javascript'> |
| // CHECK-NEXT: const arrowIndices = [ 9,8,6,5,3,2,0 ] |
| // CHECK-NEXT: </script> |
| // |
| // Except for arrows we still want to have grey bubbles with control notes. |
| // CHECK: <div id="Path2" class="msg msgControl" |
| // CHECK-SAME: <div class="PathIndex PathIndexControl">2</div> |
| // CHECK-SAME: <td>Taking true branch</td> |