summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Nemet <anemet@apple.com>2017-02-02 05:49:02 +0000
committerAdam Nemet <anemet@apple.com>2017-02-02 05:49:02 +0000
commit78e35da1ba26d7176c957ac2c9efc26a9950e086 (patch)
tree8b1caeedda418eebd38f4d6fdf9206793f5b10cc
parent6c490323e6fdf8dc017cc1f36283407182b2c8bc (diff)
downloadbcm5719-llvm-78e35da1ba26d7176c957ac2c9efc26a9950e086.tar.gz
bcm5719-llvm-78e35da1ba26d7176c957ac2c9efc26a9950e086.zip
[opt-viewer] HTML-escape function names
llvm-svn: 293869
-rwxr-xr-xllvm/utils/opt-viewer/opt-viewer.py7
1 files changed, 5 insertions, 2 deletions
diff --git a/llvm/utils/opt-viewer/opt-viewer.py b/llvm/utils/opt-viewer/opt-viewer.py
index 79a869a7279..02a19b134e5 100755
--- a/llvm/utils/opt-viewer/opt-viewer.py
+++ b/llvm/utils/opt-viewer/opt-viewer.py
@@ -30,6 +30,7 @@ import shutil
from pygments import highlight
from pygments.lexers.c_cpp import CppLexer
from pygments.formatters import HtmlFormatter
+import cgi
p = subprocess.Popen(['c++filt', '-n'], stdin=subprocess.PIPE, stdout=subprocess.PIPE)
p_lock = Lock()
@@ -103,7 +104,7 @@ class Remark(yaml.YAMLObject):
(key, value) = mapping.items()[0]
if key == 'Caller' or key == 'Callee':
- value = demangle(value)
+ value = cgi.escape(demangle(value))
if dl and key != 'Caller':
return "<a href={}>{}</a>".format(
@@ -207,6 +208,7 @@ class SourceFileRenderer:
# replace everything else with spaces.
indent = line[:r.Column - 1]
indent = re.sub('\S', ' ', indent)
+
print('''
<tr>
<td></td>
@@ -254,11 +256,12 @@ class IndexRenderer:
self.stream = open(os.path.join(output_dir, 'index.html'), 'w')
def render_entry(self, r, odd):
+ escaped_name = cgi.escape(r.DemangledFunctionName)
print('''
<tr>
<td class=\"column-entry-{odd}\"><a href={r.Link}>{r.DebugLocString}</a></td>
<td class=\"column-entry-{odd}\">{r.RelativeHotness}</td>
-<td class=\"column-entry-{odd}\">{r.DemangledFunctionName}</td>
+<td class=\"column-entry-{odd}\">{escaped_name}</td>
<td class=\"column-entry-{r.color}\">{r.Pass}</td>
</tr>'''.format(**locals()), file=self.stream)
OpenPOWER on IntegriCloud