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