summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGCXXABI.cpp
diff options
context:
space:
mode:
authorChandler Carruth <chandlerc@gmail.com>2011-10-15 11:44:27 +0000
committerChandler Carruth <chandlerc@gmail.com>2011-10-15 11:44:27 +0000
commit3d262187f600f6051a95a9b8f29d8ad3bc6d4267 (patch)
tree8db635624601c9bc0d4e378c8d628714f8ad79e9 /clang/lib/CodeGen/CGCXXABI.cpp
parentf537a6edd4522824b46e6ed2d33a8bd8ee6643c7 (diff)
downloadbcm5719-llvm-3d262187f600f6051a95a9b8f29d8ad3bc6d4267.tar.gz
bcm5719-llvm-3d262187f600f6051a95a9b8f29d8ad3bc6d4267.zip
Rationalize some of how the locations of prior diagnostics are tracked
across emissions. 1) The include stack printing is conditioned on non-note diagnostics, not just on warning diagnostics. 2) Those should be full source locations as they're tied to a source manager. 3) We should pass in the prior state to the TextDiagnostic constructor, allow it to mutate as diagnostics are emitted, and then cache the final state before tearing it down. Some of this remains incomplete, specifically #3 isn't finished for the non-note location. That'll come when the include stack printing sinks down a level. This also highlights how *completely* bug-ridden this code is. For example, we currently do all these comparisons of a FullSourceLoc and a SourceLocation... which silently does a SourceLocation to SourceLocation comparison, completely disregarding the source manager from whence one of the arguments came. Oops! Good thing in practice this wasn't important, but it could in theory be suppressing caret diagnostics in a second TU on a single clang invocation. I'm hoping to hammer these bugs out as the refactorings occur, although for so many of them it's really unlikely I can dream up a test case that would show the potentially buggy behavior. llvm-svn: 142067
Diffstat (limited to 'clang/lib/CodeGen/CGCXXABI.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud