diff options
author | Ted Kremenek <kremenek@apple.com> | 2011-12-09 22:28:32 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2011-12-09 22:28:32 +0000 |
commit | 0373fcc3e5b205cc26656c70d7dff737b0e08345 (patch) | |
tree | 7acf261c88c2bedc525a2640b1422048a419b3a1 /tools/libclang/CIndexDiagnostic.cpp | |
parent | 52a9b5aa5d994a22f309c62a9e0bbc070ee5eced (diff) |
Add clang_getDiagnosticSetFromTU() to libclang. Fixes <rdar://problem/10553081>.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146287 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/libclang/CIndexDiagnostic.cpp')
-rw-r--r-- | tools/libclang/CIndexDiagnostic.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/tools/libclang/CIndexDiagnostic.cpp b/tools/libclang/CIndexDiagnostic.cpp index a29e3a60e0..ceb640532b 100644 --- a/tools/libclang/CIndexDiagnostic.cpp +++ b/tools/libclang/CIndexDiagnostic.cpp @@ -98,15 +98,22 @@ unsigned clang_getNumDiagnostics(CXTranslationUnit Unit) { } CXDiagnostic clang_getDiagnostic(CXTranslationUnit Unit, unsigned Index) { - if (!Unit->TUData) + CXDiagnosticSet D = clang_getDiagnosticSetFromTU(Unit); + if (!D) return 0; - CXDiagnosticSetImpl *Diags = lazyCreateDiags(Unit); + CXDiagnosticSetImpl *Diags = static_cast<CXDiagnosticSetImpl*>(D); if (Index >= Diags->getNumDiagnostics()) return 0; return Diags->getDiagnostic(Index); } + +CXDiagnosticSet clang_getDiagnosticSetFromTU(CXTranslationUnit Unit) { + if (!Unit->TUData) + return 0; + return static_cast<CXDiagnostic>(lazyCreateDiags(Unit)); +} void clang_disposeDiagnostic(CXDiagnostic Diagnostic) { // No-op. Kept as a legacy API. CXDiagnostics are now managed |