You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Code:
```enum string s = "__traits(compiles, mixin(s))";static if (__traits(compiles, mixin(s))) { enum b = 2;}```
Output:
Segmentation fault (core dumped)
Concocted example, not something I encountered in actual code. Still, "dmd should never segfault" so filing this as a minor bug.
The text was updated successfully, but these errors were encountered:
Hmm, I think if you are asking for a stack-overflow you should not be surprised if you get it.
This is one of these problems which you get by interpreting a turing-complete language at compile-time.
Introducing an artificial recursion limit has been done, but people (weka) had to increase it in their fork.
Checking for a limit is not _huge_ deal but it is work which does not have to be done.
Yeah, I don't know if/how this should be "fixed", but notably endless recursion in CTFE:
``
enum a = f();
int f() {return f();}
```Results in:Error: function `onlineapp.f` CTFE recursion limit exceededWhile endless recursion in mixin without __traits(compiles, ...):```
enum string s = "mixin(s);";
mixin(s);
```Results in, after a while:Error: out of memory
Dennis (@dkorpel) reported this on 2018-12-04T14:14:03Z
Transferred from https://issues.dlang.org/show_bug.cgi?id=19465
CC List
Description
The text was updated successfully, but these errors were encountered: