On Sun, Oct 16, 2011 at 2:30 AM, Chandler Carruth <[email protected]> wrote:
> Author: chandlerc
> Date: Sun Oct 16 04:30:08 2011
> New Revision: 142127
>
> URL: http://llvm.org/viewvc/llvm-project?rev=142127&view=rev
> Log:
> Now that macro expansion notes are real notes and go through the same
> formatting as any other diagnostic, they will be properly line wrapped and
> otherwise pretty printed. Let's take advantage of that and the new factoring 
> to
> add some helpful information to them (much like template backtrace notes and
> other notes): the name of the macro whose expansion is being noted. This makes
> a world of difference if caret diagnostics are disabled, making the expansion
> notes actually useful in this case. It also helps ensure that in edge cases 
> the
> information the user needs is present. Consider:
>
> % nl -ba t5.cc
>     1  #define M(x, y, z) \
>     2    y
>     3
>     4  M(
>     5    1,
>     6    2,
>     7    3);
>
> We now produce:
> % ./bin/clang -fsyntax-only t5.cc
> t5.cc:6:3: error: expected unqualified-id
>  2,
>  ^
> t5.cc:2:3: note: expanded from macro: M
>  y
>  ^
> 1 error generated.
>
> Without the added information in the note, the name of the macro being 
> expanded
> would never be shown.
>
> This also deletes a FIXME to use the diagnostic formatting. It's not yet clear
> to me that we *can* do this reasonably, and the production of this message was
> my primary goal here anyways.
>
> I'd love any comments or suggestions on improving these notes, their wording,
> etc. Currently, I need to make them provide more helpful information in the
> presence of a token-pasting buffer, and I'm pondering adding something along
> the lines of "expanded from argument N of macro: ...".
>

I think adding the argument name/index would be helpful... and well,
it doesn't hurt to have it.

_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to