[all-commits] [llvm/llvm-project] e533a1: [TableGen] Fix non-standard escape warnings for br...

Cullen Rhodes via All-commits all-commits at lists.llvm.org
Thu May 28 02:37:19 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: e533a176b3d4d936a4870cd1a3273941ba699882
      https://github.com/llvm/llvm-project/commit/e533a176b3d4d936a4870cd1a3273941ba699882
  Author: Cullen Rhodes <cullen.rhodes at arm.com>
  Date:   2020-05-28 (Thu, 28 May 2020)

  Changed paths:
    A llvm/test/TableGen/AliasAsmString.td
    M llvm/utils/TableGen/AsmWriterEmitter.cpp

  Log Message:
  -----------
  [TableGen] Fix non-standard escape warnings for braces in InstAlias

Summary:
TableGen interprets braces ('{}') in the asm string of instruction aliases as
variants but when defining aliases with literal braces they have to be escaped
to prevent them being removed.

Braces are escaped with '\\', for example:

  def FooBraces : InstAlias<"foo \\{$imm\\}", (foo IntOperand:$imm)>;

Although when TableGen is emitting the assembly writer (-gen-asm-writer)
the AsmString that gets emitted is:

  AsmString = "foo \{$\x01\}";

In c/c++ braces don't need to be escaped which causes compilation
warnings:

  warning: use of non-standard escape character '\{' [-Wpedantic]

This patch fixes the issue by unescaping the flattened alias asm string
in the asm writer, by replacing '\{\}' with '{}'.

Reviewed By: hfinkel

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




More information about the All-commits mailing list