10a77d919SArtem Dergachev // FIXME: Figure out how to use %clang_analyze_cc1 with our lit.local.cfg. 20a77d919SArtem Dergachev // RUN: %clang_cc1 -analyze -triple x86_64-unknown-linux-gnu \ 30a77d919SArtem Dergachev // RUN: -analyzer-checker=core \ 40a77d919SArtem Dergachev // RUN: -analyzer-dump-egraph=%t.dot %s 50a77d919SArtem Dergachev // RUN: %exploded_graph_rewriter %t.dot | FileCheck %s 60a77d919SArtem Dergachev // REQUIRES: asserts 70a77d919SArtem Dergachev 80a77d919SArtem Dergachev // FIXME: Substitution doesn't seem to work on Windows. 90a77d919SArtem Dergachev // UNSUPPORTED: system-windows 100a77d919SArtem Dergachev 110a77d919SArtem Dergachev struct S { 120a77d919SArtem Dergachev S() {} 130a77d919SArtem Dergachev }; 140a77d919SArtem Dergachev 150a77d919SArtem Dergachev void test() { 160a77d919SArtem Dergachev // CHECK: Objects Under Construction: 170a77d919SArtem Dergachev // CHECK-SAME: <tr> 180a77d919SArtem Dergachev // CHECK-SAME: <td align="left"><b>#0 Call</b></td> 190a77d919SArtem Dergachev // CHECK-SAME: <td align="left" colspan="2"> 20*ad38e58eSArtem Dergachev // CHECK-SAME: <font color="gray60">test </font> 210a77d919SArtem Dergachev // CHECK-SAME: </td> 220a77d919SArtem Dergachev // CHECK-SAME: </tr> 230a77d919SArtem Dergachev // CHECK-SAME: <tr> 240a77d919SArtem Dergachev // CHECK-SAME: <td align="left"><i>S{{[0-9]*}}</i></td> 250a77d919SArtem Dergachev // CHECK-SAME: <td align="left"><font color="darkgreen"><i> 260a77d919SArtem Dergachev // CHECK-SAME: (materialize temporary) 270a77d919SArtem Dergachev // CHECK-SAME: </i></font></td> 280a77d919SArtem Dergachev // CHECK-SAME: <td align="left">S()</td> 290a77d919SArtem Dergachev // CHECK-SAME: <td align="left">&s</td> 300a77d919SArtem Dergachev // CHECK-SAME: </tr> 310a77d919SArtem Dergachev // CHECK-SAME: <tr> 320a77d919SArtem Dergachev // CHECK-SAME: <td align="left"><i>S{{[0-9]*}}</i></td> 330a77d919SArtem Dergachev // CHECK-SAME: <td align="left"><font color="darkgreen"><i> 340a77d919SArtem Dergachev // CHECK-SAME: (elide constructor) 350a77d919SArtem Dergachev // CHECK-SAME: </i></font></td> 360a77d919SArtem Dergachev // CHECK-SAME: <td align="left">S()</td> 370a77d919SArtem Dergachev // CHECK-SAME: <td align="left">&s</td> 380a77d919SArtem Dergachev // CHECK-SAME: </tr> 390a77d919SArtem Dergachev // CHECK-SAME: <tr> 400a77d919SArtem Dergachev // CHECK-SAME: <td align="left"><i>S{{[0-9]*}}</i></td> 410a77d919SArtem Dergachev // CHECK-SAME: <td align="left"><font color="darkgreen"><i> 420a77d919SArtem Dergachev // CHECK-SAME: (construct into local variable) 430a77d919SArtem Dergachev // CHECK-SAME: </i></font></td> 440a77d919SArtem Dergachev // CHECK-SAME: <td align="left">S s = S();</td> 450a77d919SArtem Dergachev // CHECK-SAME: <td align="left">&s</td> 460a77d919SArtem Dergachev // CHECK-SAME: </tr> 470a77d919SArtem Dergachev S s = S(); 480a77d919SArtem Dergachev } 49