summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArtem Dergachev <artem.dergachev@gmail.com>2019-06-25 02:16:56 +0000
committerArtem Dergachev <artem.dergachev@gmail.com>2019-06-25 02:16:56 +0000
commit14f4de9bb9dd04bbdf784082b78b25f0d41b186e (patch)
treee7b93cf7703c1fe931ae36d145d3128bf31b4fe2
parentbeb85ad66de5af11e45bae236a3dd5a6a4762150 (diff)
downloadbcm5719-llvm-14f4de9bb9dd04bbdf784082b78b25f0d41b186e.tar.gz
bcm5719-llvm-14f4de9bb9dd04bbdf784082b78b25f0d41b186e.zip
[analyzer] exploded-graph-rewriter: Fix escaping for bitwise-or.
'|' is a special character in graphviz, so it needs to be properly escaped and unescaped. llvm-svn: 364269
-rw-r--r--clang/test/Analysis/exploded-graph-rewriter/escapes.c7
-rwxr-xr-xclang/utils/analyzer/exploded-graph-rewriter.py3
2 files changed, 8 insertions, 2 deletions
diff --git a/clang/test/Analysis/exploded-graph-rewriter/escapes.c b/clang/test/Analysis/exploded-graph-rewriter/escapes.c
index bdf308513ea..32a7713561f 100644
--- a/clang/test/Analysis/exploded-graph-rewriter/escapes.c
+++ b/clang/test/Analysis/exploded-graph-rewriter/escapes.c
@@ -8,7 +8,7 @@
// FIXME: Substitution doesn't seem to work on Windows.
// UNSUPPORTED: system-windows
-void string_region_escapes() {
+void escapes() {
// CHECK: <td align="left"><b>Store: </b></td>
// CHECK-SAME: <td align="left">foo</td><td align="left">0</td>
// CHECK-SAME: <td align="left">&amp;Element\{"foo",0 S64b,char\}</td>
@@ -16,4 +16,9 @@ void string_region_escapes() {
// CHECK-SAME: <td align="left">"foo"</td>
// CHECK-SAME: <td align="left">&amp;Element\{"foo",0 S64b,char\}</td>
const char *const foo = "foo";
+
+ // CHECK: <font color="cyan3">BinaryOperator</font>
+ // CHECK-SAME: <td align="left">1 \| 2</td>
+ // CHECK-SAME: <td align="left">3 S32b</td>
+ int x = 1 | 2;
}
diff --git a/clang/utils/analyzer/exploded-graph-rewriter.py b/clang/utils/analyzer/exploded-graph-rewriter.py
index 4aae72c0da6..668b12110b4 100755
--- a/clang/utils/analyzer/exploded-graph-rewriter.py
+++ b/clang/utils/analyzer/exploded-graph-rewriter.py
@@ -300,6 +300,7 @@ class ExplodedGraph(object):
.replace('\\{', '{') \
.replace('\\}', '}') \
.replace('\\\\', '\\') \
+ .replace('\\|', '|') \
.replace('\\<', '\\\\<') \
.replace('\\>', '\\\\>') \
.rstrip(',')
@@ -329,7 +330,7 @@ class DotDumpVisitor(object):
.replace('\\<', '&lt;')
.replace('\\>', '&gt;')
.replace('\\l', '<br />')
- .replace('|', ''), end='')
+ .replace('|', '\\|'), end='')
@staticmethod
def _diff_plus_minus(is_added):
OpenPOWER on IntegriCloud