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