diff options
Diffstat (limited to 'clang/test/Analysis/exploded-graph-rewriter/objects_under_construction.cpp')
-rw-r--r-- | clang/test/Analysis/exploded-graph-rewriter/objects_under_construction.cpp | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/clang/test/Analysis/exploded-graph-rewriter/objects_under_construction.cpp b/clang/test/Analysis/exploded-graph-rewriter/objects_under_construction.cpp new file mode 100644 index 00000000000..c2a805f099c --- /dev/null +++ b/clang/test/Analysis/exploded-graph-rewriter/objects_under_construction.cpp @@ -0,0 +1,48 @@ +// FIXME: Figure out how to use %clang_analyze_cc1 with our lit.local.cfg. +// RUN: %clang_cc1 -analyze -triple x86_64-unknown-linux-gnu \ +// RUN: -analyzer-checker=core \ +// RUN: -analyzer-dump-egraph=%t.dot %s +// RUN: %exploded_graph_rewriter %t.dot | FileCheck %s +// REQUIRES: asserts + +// FIXME: Substitution doesn't seem to work on Windows. +// UNSUPPORTED: system-windows + +struct S { + S() {} +}; + +void test() { + // CHECK: Objects Under Construction: + // CHECK-SAME: <tr> + // CHECK-SAME: <td align="left"><b>#0 Call</b></td> + // CHECK-SAME: <td align="left" colspan="2"> + // CHECK-SAME: <font color="grey60">test </font> + // CHECK-SAME: </td> + // CHECK-SAME: </tr> + // CHECK-SAME: <tr> + // CHECK-SAME: <td align="left"><i>S{{[0-9]*}}</i></td> + // CHECK-SAME: <td align="left"><font color="darkgreen"><i> + // CHECK-SAME: (materialize temporary) + // CHECK-SAME: </i></font></td> + // CHECK-SAME: <td align="left">S()</td> + // CHECK-SAME: <td align="left">&s</td> + // CHECK-SAME: </tr> + // CHECK-SAME: <tr> + // CHECK-SAME: <td align="left"><i>S{{[0-9]*}}</i></td> + // CHECK-SAME: <td align="left"><font color="darkgreen"><i> + // CHECK-SAME: (elide constructor) + // CHECK-SAME: </i></font></td> + // CHECK-SAME: <td align="left">S()</td> + // CHECK-SAME: <td align="left">&s</td> + // CHECK-SAME: </tr> + // CHECK-SAME: <tr> + // CHECK-SAME: <td align="left"><i>S{{[0-9]*}}</i></td> + // CHECK-SAME: <td align="left"><font color="darkgreen"><i> + // CHECK-SAME: (construct into local variable) + // CHECK-SAME: </i></font></td> + // CHECK-SAME: <td align="left">S s = S();</td> + // CHECK-SAME: <td align="left">&s</td> + // CHECK-SAME: </tr> + S s = S(); +} |