Fznamznon added inline comments.
================
Comment at: clang/test/SemaCXX/overloaded-operator-decl.cpp:64
+class E {};
+void operator+(E, ...) {} // expected-error{{overloaded 'operator+' cannot be
variadic}}
+void d() { E() + E(); }
----------------
aaron.ballman wrote:
> I think it might make sense to extend the test coverage for the other
> operators you can overload, just to demonstrate we diagnose them all
> consistently. WDYT?
Okay, while trying to add more test cases I discovered that following
```
class E {};
bool operator<(const E& lhs, ...);
auto operator<=>(const E& lhs, ...);
void d() {
E() < E();
}
```
crashes even with the patch since there is code searching for best overload
candidate that doesn't consider possibility for them making variadic.
The code around overloading is actually pretty inconsistent, somewhere invalid
candidates are considered, and somewhere not, so I spent some time not knowing
what to do.
I'm now inclined that we just shouldn't consider invalid candidates like
@shafik
suggests. WDYY?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D156244/new/
https://reviews.llvm.org/D156244
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits