Add a location to MS inline asm blobs
authorReid Kleckner <reid@kleckner.net>
Mon, 28 Jul 2014 23:12:59 +0000 (23:12 +0000)
committerReid Kleckner <reid@kleckner.net>
Mon, 28 Jul 2014 23:12:59 +0000 (23:12 +0000)
commit4db3256aec0b9a82ff436f7180adfa7257d3deec
tree187024a1fb93b457244c9172f624653c255ebfb1
parent54fd4e5fcb5adad4fcb313ee94b4f2c9e4c1e69f
Add a location to MS inline asm blobs

This isn't nearly as elaborate as the GCC inline asm which emits an
array of source locations, but it's very, very hard to trigger backend
diagnostics in MS inline asm because we parse it up front with good
source information, unlike GCC inline asm.

Currently I can trigger a "inline assembly requires more registers than
available" diagnostic with this code:

  void foo();
  void bar() {
    __asm pusha
    __asm call foo
    __asm popa
  }

However, if I committed that as a test case, I would have to remove it
once I fix PR20052.

llvm-svn: 214141
clang/lib/CodeGen/CGStmt.cpp