[all-commits] [llvm/llvm-project] 62af02: [XRay] Sanitize DOT labels in graph output

Alex Cameron via All-commits all-commits at lists.llvm.org
Mon Mar 9 05:06:04 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 62af02e76fe808134b06b75c8108a98c079ac8bc
      https://github.com/llvm/llvm-project/commit/62af02e76fe808134b06b75c8108a98c079ac8bc
  Author: Alex Cameron <ascottcameron at gmail.com>
  Date:   2020-03-09 (Mon, 09 Mar 2020)

  Changed paths:
    M llvm/tools/llvm-xray/xray-graph.cpp

  Log Message:
  -----------
  [XRay] Sanitize DOT labels in graph output

Summary:
Bugzilla: https://bugs.llvm.org/show_bug.cgi?id=39701

This patch is to convert certain characters to their XML escape sequences when generating labels for a DOT graph.

I had trouble reproducing the exact issue described on the tracker. I ran `llvm-xray graph` on a log from a test program that included function templates but wasn't able to get the `dot` tool to complain about the `<` and `>` characters. The documentation also suggests that the escape sequences should only be necessary when using HTML string labels which XRay doesn't use (`label=<...>` as opposed to `label="..."`). Perhaps newer versions of Graphviz silently handle this in the case of quoted-string labels.

In any case, the generated labels still look correct after this patch and should also fix the reporter's issue.

I was a bit unsure how to add a test for this since the existing tests seem to only care about `func-id` rather than giving an actual name. If you could give me a hint on the best way to go about this, that'd be much appreciated!

Reviewers: dberris

Reviewed By: dberris

Subscribers: lebedev.ri, llvm-commits

Tags: #llvm

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




More information about the All-commits mailing list