[llvm] r310741 - [opt-viewer] Decode HTML bytes for Python 3

Brian Gesiak via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 11 11:05:26 PDT 2017

Author: modocache
Date: Fri Aug 11 11:05:26 2017
New Revision: 310741

URL: http://llvm.org/viewvc/llvm-project?rev=310741&view=rev
[opt-viewer] Decode HTML bytes for Python 3

When using Python 3, `pygments.highlight()` returns a `bytes` object, not
a `str`, causing the call to `str.replace` on the following line to fail
with a runtime exception:
`TypeError: 'str' does not support the buffer interface`. Decode the
bytes into a string in order to fix the exception.

Test Plan:
Run `opt-viewer.py` with Python 3.4, and confirm no runtime error occurs
when calling `str.replace`.

Reviewers: anemet

Reviewed By: anemet

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D36624


Modified: llvm/trunk/tools/opt-viewer/opt-viewer.py
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/opt-viewer/opt-viewer.py?rev=310741&r1=310740&r2=310741&view=diff
--- llvm/trunk/tools/opt-viewer/opt-viewer.py (original)
+++ llvm/trunk/tools/opt-viewer/opt-viewer.py Fri Aug 11 11:05:26 2017
@@ -59,7 +59,10 @@ class SourceFileRenderer:
     def render_source_lines(self, stream, line_remarks):
         file_text = stream.read()
-        html_highlighted = highlight(file_text, self.cpp_lexer, self.html_formatter)
+        html_highlighted = highlight(
+            file_text,
+            self.cpp_lexer,
+            self.html_formatter).decode('utf-8')
         # Take off the header and footer, these must be
         #   reapplied line-wise, within the page structure

More information about the llvm-commits mailing list