Reporting errors in inline assembly

I want to report a problem with an inline assembly instruction from a code generator pass?

How can I do that with the proper diagnostic format and source location?

Right now we only get:

clang -c /d/g/clang-tests/gcc-4_2-testsuite/src/gcc.target/i386/pr30848.c
fatal error: error in backend: Inline asm output regs must be last on the x87 stack

But gcc-4-2 can:

$ gcc-4.2 -c /d/g/clang-tests/gcc-4_2-testsuite/src/gcc.target/i386/pr30848.c
/d/g/clang-tests/gcc-4_2-testsuite/src/gcc.target/i386/pr30848.c: In function ‘foo’:
/d/g/clang-tests/gcc-4_2-testsuite/src/gcc.target/i386/pr30848.c:5: error: output regs must be grouped at top of stack

Didn't we add support for source locations for the integrated assembler?

/jakob

Found it; see http://llvm.org/viewvc/llvm-project?rev=100723&view=rev .

-Eli

I want to report a problem with an inline assembly instruction from a code generator pass?

How can I do that with the proper diagnostic format and source location?

Right now we only get:

clang -c /d/g/clang-tests/gcc-4_2-testsuite/src/gcc.target/i386/pr30848.c
fatal error: error in backend: Inline asm output regs must be last on the x87 stack

But gcc-4-2 can:

$ gcc-4.2 -c /d/g/clang-tests/gcc-4_2-testsuite/src/gcc.target/i386/pr30848.c
/d/g/clang-tests/gcc-4_2-testsuite/src/gcc.target/i386/pr30848.c: In function ‘foo’:
/d/g/clang-tests/gcc-4_2-testsuite/src/gcc.target/i386/pr30848.c:5: error: output regs must be grouped at top of stack

Didn't we add support for source locations for the integrated assembler?

Found it; see http://llvm.org/viewvc/llvm-project?rev=100723&view=rev .

- Msg << "Invalid operand found in inline asm: '" << AsmStr << "'\n";
- MI->print(Msg);
- report_fatal_error(Msg.str());
+ Msg << "invalid operand in inline asm: '" << AsmStr << "'";
+ MMI->getModule()->getContext().emitError(LocCookie, Msg.str());

Thanks!

Now, where is my cookie?

Here: