This patch allows users to evaluate expressions using `expr -l c++20`. Currently DWARF keeps the CU's at `DW_AT_language` at `DW_LANG_C_plus_plus_14` even when compiling with `-std=c++20`. So even in "C++20 programs" expression evaluation will by default be performed in `C++11` mode for now. Enabling `C++14` has been previously attempted at https://reviews.llvm.org/D80308 There are some remaining issues around evaluating C++20 expressions. Mainly, lack of support for C++20 AST nodes in `clang::ASTImporter`. But these can be addressed in follow-up patches.
8 lines
145 B
C++
8 lines
145 B
C++
#include <compare>
|
|
|
|
struct Foo {
|
|
friend auto operator<=>(Foo const &, Foo const &) { return true; }
|
|
};
|
|
|
|
int main() { return Foo{} <=> Foo{}; }
|