www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 24118] New: ICE / regression from 2.103.1 - segfault on CTFE

https://issues.dlang.org/show_bug.cgi?id=24118

          Issue ID: 24118
           Summary: ICE / regression from 2.103.1 - segfault on CTFE only
                    code in 2.104.2 and 2.105.0
           Product: D
           Version: D2
          Hardware: Other
                OS: Mac OS X
            Status: NEW
          Severity: major
          Priority: P1
         Component: dmd
          Assignee: nobody puremagic.com
          Reporter: paolo.invernizzi gmail.com

Platform Apple Silicon

Reduced by dustmite from our internal codebase:

```
import std.algorithm : map;
import std.range : zip;
import std.typecons : tuple;


void foo() {
    if( __ctfe ){
        zip([1,2,3], ["a", "b", "c"])
            .map!( i => tuple("", i[1]) )
            .map!( a => a[0] ? a[0] : " " ~ a[1] )
            ;
    }
}

~/dlang/dmd-2.105.0/osx/bin/dmd src/api3.d
zsh: illegal hardware instruction
```

If can help, with LDC the stack trace is:

```
0  ldc2                     0x00000001039df7e0
llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 56
1  ldc2                     0x00000001039de838 llvm::sys::RunSignalHandlers() +
72
2  ldc2                     0x00000001039dfe34 SignalHandler(int) + 304
3  libsystem_platform.dylib 0x0000000185a9aa24 _sigtramp + 56
4  ldc2                     0x0000000103d7e30c ToElemVisitor::visit(CondExp*) +
1540
5  ldc2                     0x0000000103d7e30c ToElemVisitor::visit(CondExp*) +
1540
6  ldc2                     0x0000000103d62fcc
ToIRVisitor::visit(ReturnStatement*) + 996
7  ldc2                     0x0000000103d6994c
ToIRVisitor::visit(CompoundStatement*) + 304
8  ldc2                     0x0000000103d2de7c
DtoDefineFunction(FuncDeclaration*, bool) + 6244
9  ldc2                     0x0000000103d1d7b4
CodegenVisitor::visit(TemplateInstance*) + 320
10 ldc2                     0x0000000103d3ec84 codegenModule(IRState*, Module*)
+ 3108
11 ldc2                     0x0000000103db250c
ldc::CodeGenerator::emit(Module*) + 216
12 ldc2                     0x0000000103dc7e40 codegenModules(Array<Module*>&)
+ 944
13 ldc2                     0x0000000103ce156c mars_mainBody(Param&, Array<char
const*>&, Array<char const*>&) + 1316
14 ldc2                     0x0000000103f85b74
_D2rt6dmain212_d_run_main2UAAamPUQgZiZ6runAllMFZv + 116
15 ldc2                     0x0000000103f85698 _d_run_main + 148
16 ldc2                     0x0000000103dc4fcc main + 744
17 dyld                     0x0000000185713f28 start + 2236
zsh: segmentation fault  ~/dlang/ldc-1.34.0/bin/ldc2 src/api3.d
```

--
Aug 28 2023