Issue |
135694
|
Summary |
requires-clauses think void values can be passed to variadic functions
|
Labels |
new issue
|
Assignees |
|
Reporter |
Alcaro
|
```c++
#include <type_traits>
void a(...);
template<typename T>
bool b()
{
return requires { a(a(1)); };
}
bool c() { return b<void>(); }
```
Expected: Either false, because `a(1)` is void and cannot be passed to `a()`, or a hard error, because there is no set of template arguments for which that sub-_expression_ is legal.
Actual: True.
https://godbolt.org/z/db83c35fq
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs