diff options
author | Mital Ashok <mital@mitalashok.co.uk> | 2024-08-15 16:12:11 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-15 19:12:11 +0400 |
commit | c7df775440717ec5a3f47b6d485617d802cbd036 (patch) | |
tree | 62b7cdb4be25a6fae930b8ab4c90dee1cdb2f813 /clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp | |
parent | fcefe957ddfdc5a2fe9463757b597635e3436e01 (diff) | |
download | llvm-c7df775440717ec5a3f47b6d485617d802cbd036.zip llvm-c7df775440717ec5a3f47b6d485617d802cbd036.tar.gz llvm-c7df775440717ec5a3f47b6d485617d802cbd036.tar.bz2 |
[Clang] Check explicit object parameter for defaulted operators properly (#100419)
Previously, the type of explicit object parameters was not considered
for relational operators. This was defined by CWG2586,
<https://cplusplus.github.io/CWG/issues/2586.html>. This fix also means
CWG2547 <https://cplusplus.github.io/CWG/issues/2547.html> is now fully
implemented. Fixes #100329, fixes #104413.
Now start rejecting invalid rvalue reference parameters, which weren't
checked for, and start accepting non-reference explicit object
parameters (like `bool operator==(this C, C) = default;`) which were
previously rejected for the object param not being a reference.
Also start rejecting non-reference explicit object parameters for
defaulted copy/move assign operators (`A& operator=(this A, const A&) =
default;` is invalid but was previously accepted). Fixes #104414.
Diffstat (limited to 'clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp')
0 files changed, 0 insertions, 0 deletions