With the newly simplified SourceMgr interfaces and the generalized
authorChris Lattner <sabre@nondot.org>
Wed, 17 Nov 2010 08:20:42 +0000 (08:20 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 17 Nov 2010 08:20:42 +0000 (08:20 +0000)
commitce1b9ad539e67c6d05cc6b47ca5f6e62a6d91eff
treedebf961a7171bd33964c44e61f506dca00f678b5
parent4afa12890f679034e9741a687a6ce33f2846f129
With the newly simplified SourceMgr interfaces and the generalized
SrcMgrDiagHandler, we can improve clang diagnostics for inline asm:
instead of reporting them on a source line of the original line,
we can report it on the correct line wherever the string literal came
from. For something like this:

void foo() {
  asm("push %rax\n"
      ".code32\n");
}

we used to get this: (note that the line in t.c isn't helpful)

t.c:4:7: error: warning: ignoring directive for now
  asm("push %rax\n"
      ^
<inline asm>:2:1: note: instantiated into assembly here
.code32
^

now we get:

t.c:5:8: error: warning: ignoring directive for now
      ".code32\n"
       ^
<inline asm>:2:1: note: instantiated into assembly here
.code32
^

Note that we're pointing to line 5 properly now.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119488 91177308-0d34-0410-b5e6-96231b3b80d8
docs/LangRef.html
lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp