Author: Kazu Hirata Date: 2026-10-28T21:49:48-07:00 New Revision: 415ae8cf24b1ad4584e91eb875eac5bcc2a524ba
URL: https://github.com/llvm/llvm-project/commit/415ae8cf24b1ad4584e91eb875eac5bcc2a524ba DIFF: https://github.com/llvm/llvm-project/commit/415ae8cf24b1ad4584e91eb875eac5bcc2a524ba.diff LOG: [clang] Replace PointerUnion::dyn_cast with llvm::dyn_cast_if_present (NFC) (#236619) PointerUnion::dyn_cast has been soft-deprecated in favor of llvm::dyn_cast and llvm::dyn_cast_if_present. This patch replaces PointerUnion::dyn_cast with llvm::dyn_cast_if_present in SARIFDiagnostic::emitDiagnosticMessage, and adds a test case to cover the null operand case. Note that DiagnosticRenderer::emitSingleMacroExpansion invokes emitDiagnosticMessage with a null DiagOrStoredDiag when emitting a macro expansion note. This patch completes the migration away from PointerUnion::dyn_cast under clang/. Assisted-by: Antigravity Added: Modified: clang/lib/Frontend/SARIFDiagnostic.cpp clang/test/Frontend/Inputs/expected-sarif/sarif-diagnostics.cpp.sarif clang/test/Frontend/sarif-diagnostics.cpp Removed: ################################################################################ diff --git a/clang/lib/Frontend/SARIFDiagnostic.cpp b/clang/lib/Frontend/SARIFDiagnostic.cpp index 5183462b76f413..f6f3feb7bd86cd 100644 --- a/clang/lib/Frontend/SARIFDiagnostic.cpp +++ b/clang/lib/Frontend/SARIFDiagnostic.cpp @@ -41,7 +41,7 @@ void SARIFDiagnostic::emitDiagnosticMessage( StringRef Message, ArrayRef<clang::CharSourceRange> Ranges, DiagOrStoredDiag D) { - const auto *Diag = D.dyn_cast<const Diagnostic *>(); + const auto *Diag = dyn_cast_if_present<const Diagnostic *>(D); if (!Diag) return; diff --git a/clang/test/Frontend/Inputs/expected-sarif/sarif-diagnostics.cpp.sarif b/clang/test/Frontend/Inputs/expected-sarif/sarif-diagnostics.cpp.sarif index 21f06bf0a1b234..df46841bc624af 100644 --- a/clang/test/Frontend/Inputs/expected-sarif/sarif-diagnostics.cpp.sarif +++ b/clang/test/Frontend/Inputs/expected-sarif/sarif-diagnostics.cpp.sarif @@ -295,6 +295,29 @@ clang: warning: diagnostic formatting in SARIF mode is currently unstable [-Wsar }, "ruleId": "err_typecheck_invalid_operands", "ruleIndex": 8 + }, + { + "level": "error", + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "index": 0, + "uri": "file:///[...]/sarif-diagnostics.cpp" + }, + "region": { + "endColumn": 9, + "startColumn": 9, + "startLine": 31 + } + } + } + ], + "message": { + "text": "expected expression" + }, + "ruleId": "err_expected_expression", + "ruleIndex": 9 } ], "tool": { @@ -411,6 +434,18 @@ clang: warning: diagnostic formatting in SARIF mode is currently unstable [-Wsar }, "id": "err_typecheck_invalid_operands", "name": "" + }, + { + "defaultConfiguration": { + "enabled": true, + "level": "error", + "rank": 50 + }, + "fullDescription": { + "text": "" + }, + "id": "err_expected_expression", + "name": "" } ], "version": "[clang version]" @@ -421,4 +456,4 @@ clang: warning: diagnostic formatting in SARIF mode is currently unstable [-Wsar "version": "[SARIF version]" } -2 warnings and 6 errors generated. \ No newline at end of file +2 warnings and 7 errors generated. \ No newline at end of file diff --git a/clang/test/Frontend/sarif-diagnostics.cpp b/clang/test/Frontend/sarif-diagnostics.cpp index 04cd19516fc0aa..99a6fa46d0f722 100644 --- a/clang/test/Frontend/sarif-diagnostics.cpp +++ b/clang/test/Frontend/sarif-diagnostics.cpp @@ -26,3 +26,6 @@ struct t1 { }; void f1(t1 x, t1 y) { x + y; } + +#define BAD ; +int x = BAD; _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
