Issue |
141686
|
Summary |
Templated infinitely recursive function does not fail to compile
|
Labels |
new issue
|
Assignees |
|
Reporter |
alexkaratarakis
|
Min repro:
```C++
template <typename R1>
static R1 self_recursion_template(const R1& input)
{
return self_recursion_template<R1>(input);
}
static int self_recursion_non_template(const int& input)
{
return self_recursion_non_template(input);
}
int main()
{
int input{};
const int result = self_recursion_template(input);
// const int result = self_recursion_non_template(input); // Properly fails to compile
(void)result;
}
```
Expected results: compilation fails for the templated version of infinite self-recursion like it does for the non-templated version of infinite self-recursion.
Actual results: compiles and then stack overflows when trying to run it.
Additionally, `msvc` rejects the code.
Demo: https://godbolt.org/z/eEq7PT771
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs