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: -analyze-function "test()" \ 4 // RUN: -analyzer-checker=core \ 5 // RUN: -analyzer-dump-egraph=%t.dot %s 6 // RUN: %exploded_graph_rewriter %t.dot | FileCheck %s 7 8 struct S { 9 S() {} 10 }; 11 12 void test() { 13 // CHECK: Objects Under Construction: 14 // CHECK-SAME: <tr> 15 // CHECK-SAME: <td align="left"><b>#0 Call</b></td> 16 // CHECK-SAME: <td align="left" colspan="2"> 17 // CHECK-SAME: <font color="gray60">test </font> 18 // CHECK-SAME: </td> 19 // CHECK-SAME: </tr> 20 // CHECK-SAME: <tr> 21 // CHECK-SAME: <td align="left"><i>S{{[0-9]*}}</i></td> 22 // CHECK-SAME: <td align="left"><font color="darkgreen"><i> 23 // CHECK-SAME: (materialize temporary) 24 // CHECK-SAME: </i></font></td> 25 // CHECK-SAME: <td align="left">S()</td> 26 // CHECK-SAME: <td align="left">&s</td> 27 // CHECK-SAME: </tr> 28 // CHECK-SAME: <tr> 29 // CHECK-SAME: <td align="left"><i>S{{[0-9]*}}</i></td> 30 // CHECK-SAME: <td align="left"><font color="darkgreen"><i> 31 // CHECK-SAME: (elide constructor) 32 // CHECK-SAME: </i></font></td> 33 // CHECK-SAME: <td align="left">S()</td> 34 // CHECK-SAME: <td align="left">&s</td> 35 // CHECK-SAME: </tr> 36 // CHECK-SAME: <tr> 37 // CHECK-SAME: <td align="left"><i>S{{[0-9]*}}</i></td> 38 // CHECK-SAME: <td align="left"><font color="darkgreen"><i> 39 // CHECK-SAME: (construct into local variable) 40 // CHECK-SAME: </i></font></td> 41 // CHECK-SAME: <td align="left">S s = S();</td> 42 // CHECK-SAME: <td align="left">&s</td> 43 // CHECK-SAME: </tr> 44 S s = S(); 45 } 46