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

Reply via email to