[IR] Properly handle escape characters in Attribute::getAsString()
authorHonggyu Kim <hong.gyu.kim@lge.com>
Thu, 1 Sep 2016 11:44:06 +0000 (11:44 +0000)
committerHonggyu Kim <hong.gyu.kim@lge.com>
Thu, 1 Sep 2016 11:44:06 +0000 (11:44 +0000)
commit9eb6a1025147d2d8f1c5cf90bff7a4fdc2916424
treebc648712f572c5e2619b1e19ecee5c14d211bba5
parent2e50d8edc6dfb3908903da116395a2a43d26eb87
[IR] Properly handle escape characters in Attribute::getAsString()

If an attribute name has special characters such as '\01', it is not
properly printed in LLVM assembly language format.  Since the format
expects the special characters are printed as it is, it has to contain
escape characters to make it printable.

Before:
  attributes #0 = { ... "counting-function"="^A__gnu_mcount_nc" ...

After:
  attributes #0 = { ... "counting-function"="\01__gnu_mcount_nc" ...

Reviewers: hfinkel, rengolin, rjmccall, compnerd

Subscribers: nemanjai, mcrosier, hans, shenhan, majnemer, llvm-commits

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

llvm-svn: 280357
llvm/include/llvm/ADT/StringExtras.h
llvm/lib/IR/AsmWriter.cpp
llvm/lib/IR/Attributes.cpp