Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions clang/test/Verify/crash_report_url.cpp
Original file line number Diff line number Diff line change
@@ -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
2 changes: 1 addition & 1 deletion llvm/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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.")
Expand Down
18 changes: 18 additions & 0 deletions website/source/language/tooling.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Expand Down
4 changes: 4 additions & 0 deletions website/source/release-notes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Loading