[cfe-commits] r100493 - /cfe/trunk/tools/driver/cc1_main.cpp

Chris Lattner clattner at apple.com
Tue Apr 6 18:56:30 PDT 2010


On Apr 6, 2010, at 12:00 PM, Douglas Gregor wrote:

> 
> On Apr 6, 2010, at 11:57 AM, Chris Lattner wrote:
> 
>> 
>> On Apr 6, 2010, at 11:53 AM, Douglas Gregor wrote:
>> 
>>>> 
>>>> The problem is that the errors complain about "<inline asm>:1:2" which -verify doesn't handle yet.  I'm adding a "asm generated from here" line pointing back to the original .c file next.
>>> 
>>> Is the <inline asm> a temporary thing? It seems like we should be able to map from source locations inside the inline asm back to real locations in the original .c file.
>> 
>> "I'm adding a "asm generated from here" line pointing back to the original .c file next."
>> 
>> :-)
> 
> 
> Yes, but why the two-step with an error + note pointing back into the .c file, rather than just mapping the location of the error and having a single diagnostic?

C (pseudo)code:

void foo() {
  asm("mov %0, (%eax)" : : "=X"(abc));

Desired error:

<inline asm>:1:4: error: invalid operands or whatever
  mov (%ebx), (%eax)
      ^
foo.c:123:4: note: instantiated from here:
  asm("mov %0, (%eax)" : : "=X"(abc));
           ^

You really do need to see what is getting fed into the assembler to understand why it doesn't grok it.

-Chris



More information about the cfe-commits mailing list