forked from OSchip/llvm-project
Print NULL as "(null)" in diagnostic message
Summary: Passing a null pointer to the printf family for a %s format specifier leads to undefined behaviour. The tests currently expect (null). Explicitly test for a null pointer and provide the expected string. Authored By: andusy Reviewers: hubert.reinterpretcast, xingxue, jasonliu, daltenty, cebowleratibm Reviewed By: hubert.reinterpretcast Subscribers: arphaman, jsji, cfe-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D63786 llvm-svn: 364462
This commit is contained in:
parent
730a95c88a
commit
600941e34f
|
@ -1053,7 +1053,8 @@ static void PrintCursor(CXCursor Cursor, const char *CommentSchemaFile) {
|
|||
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))
|
||||
|
@ -4644,18 +4645,19 @@ static void printDiagnosticSet(CXDiagnosticSet Diags, unsigned indent) {
|
|||
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)),
|
||||
|
|
Loading…
Reference in New Issue