Depends on: * https://github.com/llvm/llvm-project/pull/177921 * https://github.com/llvm/llvm-project/pull/177926 (only last commit is relevant for this review) This patch emits a workaround suggestion (in the form of a `note:` diagnostic) when an expression fails due to trying to mutate state/call functions with CV-qualifiers that are disallowed by C++ language rules based on the context the expression is evaluated in. The note looks as follows: ``` (lldb) expr next.method() ˄ ╰─ error: 'this' argument to member function 'method' has type 'const Bar', but function is not marked const note: Ran expression as 'C++14'. note: note: 'method' declared here note: Possibly trying to mutate object in a const context. Try running the expression with: expression --c++-ignore-context-qualifiers -- <your expression> ```
17 KiB
17 KiB