From 1547434148f06738b65d1eccf8376171df4b90d3 Mon Sep 17 00:00:00 2001 From: SwayamInSync Date: Tue, 20 Oct 2026 23:35:45 +0530 Subject: [PATCH 1/4] verify: Send crash reports to cpp-verify's issue tracker. --- llvm/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt index 9340cd6c45..0d156b330e 100644 --- a/llvm/CMakeLists.txt +++ b/llvm/CMakeLists.txt @@ -470,7 +470,7 @@ option(LLVM_TOOL_LLVM_DRIVER_BUILD "Enables building the llvm multicall tool" OF set(PACKAGE_NAME LLVM) set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}") -set(PACKAGE_BUGREPORT "https://github.com/llvm/llvm-project/issues/") +set(PACKAGE_BUGREPORT "https://github.com/SwayamInSync/cpp-verify/issues/") set(BUG_REPORT_URL "${PACKAGE_BUGREPORT}" CACHE STRING "Default URL where bug reports are to be submitted.") From 2c6798cc2e323bfa6b5c99e5a55b85f430cc1c86 Mon Sep 17 00:00:00 2001 From: SwayamInSync Date: Tue, 20 Oct 2026 23:35:45 +0530 Subject: [PATCH 2/4] test: A crash of cpp-verify or its clang names cpp-verify's issue tracker. --- clang/test/Verify/crash_report_url.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 clang/test/Verify/crash_report_url.cpp diff --git a/clang/test/Verify/crash_report_url.cpp b/clang/test/Verify/crash_report_url.cpp new file mode 100644 index 0000000000..9d71526328 --- /dev/null +++ b/clang/test/Verify/crash_report_url.cpp @@ -0,0 +1,9 @@ +// REQUIRES: crash-recovery, backtrace +// RUN: not --crash %cpp-verify %s -- -std=c++17 2>&1 | FileCheck %s +// RUN: not --crash %clang_cc1 -std=c++17 -fverify-contracts -fsyntax-only %s 2>&1 | FileCheck %s +// +// A crash asks for a report on cpp-verify's issue tracker. + +#pragma clang __debug crash + +// CHECK: PLEASE submit a bug report to https://github.com/SwayamInSync/cpp-verify/issues/ and include the crash backtrace From 0fe1cbcb7ab6460d65dc8add735221a93dc694c8 Mon Sep 17 00:00:00 2001 From: SwayamInSync Date: Tue, 20 Oct 2026 23:35:45 +0530 Subject: [PATCH 3/4] docs: Say what a crash prints and how to report it. --- website/source/language/tooling.rst | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/website/source/language/tooling.rst b/website/source/language/tooling.rst index e01e583bb8..8337297d13 100644 --- a/website/source/language/tooling.rst +++ b/website/source/language/tooling.rst @@ -127,6 +127,24 @@ works with 1.4: a query that needs a constant array, as every one over sets, mul and maps does, sets cvc5's ``arrays-exp`` option itself, which 1.4 requires. Every Lean project pins ``leanprover/lean4:v4.32.2``. +When cpp-verify crashes +~~~~~~~~~~~~~~~~~~~~~~~ + +A crash is a bug in cpp-verify, never a verdict about the program. The process +stops with a stack dump that starts like this: + +.. code-block:: text + + PLEASE submit a bug report to https://github.com/SwayamInSync/cpp-verify/issues/ and include the crash backtrace and instructions to reproduce the bug. + Stack dump: + 0. Program arguments: cpp-verify crash.cpp -- + +Report it there with the whole output, the command, the output of +``cpp-verify --version``, and the smallest source that reproduces it. ``clang++`` +from the same build names the same address. A build directory configured before +0.2 keeps LLVM's address in its CMake cache; configure it again with +``-UBUG_REPORT_URL``, or use a new one. + Options that select a backend, and options a run would not use ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ From 26421b8e07b2417e79036a09ed3b5c90121a512f Mon Sep 17 00:00:00 2001 From: SwayamInSync Date: Tue, 20 Oct 2026 23:35:46 +0530 Subject: [PATCH 4/4] docs: Crash reports go to cpp-verify, in the release notes. --- website/source/release-notes.rst | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/website/source/release-notes.rst b/website/source/release-notes.rst index b8abf5d90b..edab7b6afa 100644 --- a/website/source/release-notes.rst +++ b/website/source/release-notes.rst @@ -132,6 +132,10 @@ line was printed and then ignored, and a ``.h`` input was compiled as C. Now the file with the error is not verified and ``cpp-verify`` exits with status 1, and a header is C++ (:doc:`language/tooling`). +**Crash reports go to cpp-verify.** A crash asked for a report on LLVM's issue +tracker. It now names https://github.com/SwayamInSync/cpp-verify/issues/, in +``cpp-verify`` and in the ``clang++`` it is built with (:doc:`language/tooling`). + **Long expressions.** An expression with hundreds of operations used memory with the cube of its depth, and one with thousands crashed. The cost is now quadratic (a 250-term sum lowers in about 5 s instead of 120 s), and an