1 // FIXME: Figure out how to use %clang_analyze_cc1 with our lit.local.cfg. 2 // RUN: %clang_cc1 -analyze -triple x86_64-unknown-linux-gnu \ 3 // RUN: -analyzer-checker=core \ 4 // RUN: -analyzer-dump-egraph=%t.dot %s 5 // RUN: %exploded_graph_rewriter %t.dot | FileCheck %s 6 // REQUIRES: asserts 7 8 // FIXME: Substitution doesn't seem to work on Windows. 9 // UNSUPPORTED: system-windows 10 11 struct S { 12 S() {} 13 }; 14 15 void test() { 16 // CHECK: Objects Under Construction: 17 // CHECK-SAME: <tr> 18 // CHECK-SAME: <td align="left"><b>#0 Call</b></td> 19 // CHECK-SAME: <td align="left" colspan="2"> 20 // CHECK-SAME: <font color="gray60">test </font> 21 // CHECK-SAME: </td> 22 // CHECK-SAME: </tr> 23 // CHECK-SAME: <tr> 24 // CHECK-SAME: <td align="left"><i>S{{[0-9]*}}</i></td> 25 // CHECK-SAME: <td align="left"><font color="darkgreen"><i> 26 // CHECK-SAME: (materialize temporary) 27 // CHECK-SAME: </i></font></td> 28 // CHECK-SAME: <td align="left">S()</td> 29 // CHECK-SAME: <td align="left">&s</td> 30 // CHECK-SAME: </tr> 31 // CHECK-SAME: <tr> 32 // CHECK-SAME: <td align="left"><i>S{{[0-9]*}}</i></td> 33 // CHECK-SAME: <td align="left"><font color="darkgreen"><i> 34 // CHECK-SAME: (elide constructor) 35 // CHECK-SAME: </i></font></td> 36 // CHECK-SAME: <td align="left">S()</td> 37 // CHECK-SAME: <td align="left">&s</td> 38 // CHECK-SAME: </tr> 39 // CHECK-SAME: <tr> 40 // CHECK-SAME: <td align="left"><i>S{{[0-9]*}}</i></td> 41 // CHECK-SAME: <td align="left"><font color="darkgreen"><i> 42 // CHECK-SAME: (construct into local variable) 43 // CHECK-SAME: </i></font></td> 44 // CHECK-SAME: <td align="left">S s = S();</td> 45 // CHECK-SAME: <td align="left">&s</td> 46 // CHECK-SAME: </tr> 47 S s = S(); 48 } 49