diff options
author | Chris Lattner <sabre@nondot.org> | 2009-02-17 08:44:50 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-02-17 08:44:50 +0000 |
commit | 55dcef08676aa4d8d6777931c532d6df9571cf8d (patch) | |
tree | 0e228201b43b2937708c79a712202d6137a6a267 /lib/CodeGen/ModuleBuilder.cpp | |
parent | bff5c512af8ca7ac92e974e04c06ff4f820e4ee1 (diff) |
As an experimental hack, emit "instantiated from" information in
diagnostics. I'm not sure I want to keep this, but hey, it's easy
and could be useful or something, even if guarded by a
-fshow-me-tons-of-details option. A silly example is:
#define A B
#define C A
#define D C
int y = D;
We now emit:
t.c:11:9: error: use of undeclared identifier 'B'
int y = D;
^
t.c:9:11: note: instantiated from:
#define D C
^
t.c:8:11: note: instantiated from:
#define C A
^
t.c:7:11: note: instantiated from:
#define A B
^
A more useful example is from tgmath:
t.c:4:9: error: no matching function for call to '__tg_acos'
return acos(x);
^~~~~~~
/Users/sabre/llvm/Debug/Headers/tgmath-sofar.h:51:17: note: instantiated from:
#define acos(x) __tg_acos(x)
^
... candidate set follows ...
This does not yet print ranges in instantiation info, (e.g. highlighting the
range "__tg_acos(x)" in the last example), but that could be added if we
decide this is a good idea :).
Thoughts and bug reports welcome!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64761 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/ModuleBuilder.cpp')
0 files changed, 0 insertions, 0 deletions