if (Cursor.kind == CXCursor_InclusionDirective) {
CXFile File = clang_getIncludedFile(Cursor);
CXString Included = clang_getFileName(File);
- printf(" (%s)", clang_getCString(Included));
+ const char *IncludedString = clang_getCString(Included);
+ printf(" (%s)", IncludedString ? IncludedString : "(null)");
clang_disposeString(Included);
if (clang_isFileMultipleIncludeGuarded(TU, File))
CXFile File;
CXString FileName, DiagSpelling, DiagOption, DiagCat;
unsigned line, column, offset;
- const char *DiagOptionStr = 0, *DiagCatStr = 0;
+ const char *FileNameStr = 0, *DiagOptionStr = 0, *DiagCatStr = 0;
D = clang_getDiagnosticInSet(Diags, i);
DiagLoc = clang_getDiagnosticLocation(D);
clang_getExpansionLocation(DiagLoc, &File, &line, &column, &offset);
FileName = clang_getFileName(File);
+ FileNameStr = clang_getCString(FileName);
DiagSpelling = clang_getDiagnosticSpelling(D);
-
+
printIndent(indent);
fprintf(stderr, "%s:%d:%d: %s: %s",
- clang_getCString(FileName),
+ FileNameStr ? FileNameStr : "(null)",
line,
column,
getSeverityString(clang_getDiagnosticSeverity(D)),