www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 24407] New: OSX: ld: Assertion failed: (slot <

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

          Issue ID: 24407
           Summary: OSX: ld: Assertion failed: (slot <
                    _sideTableBuffer.size()), function addAtom
           Product: D
           Version: D2
          Hardware: x86_64
                OS: Mac OS X
            Status: NEW
          Severity: critical
          Priority: P1
         Component: dmd
          Assignee: nobody puremagic.com
          Reporter: ibuclaw gdcproject.org

Seen on macOS 13, with the Xcode 15 linker
==============================
Test 'runnable/test17338.d' failed. The logged output:
/Users/runner/work/dmd/dmd/generated/osx/release/64/dmd -conf= -m64 -Irunnable 
-fPIC  -od/Users/runner/work/dmd/dmd/compiler/test/test_results/runnable
-of/Users/runner/work/dmd/dmd/compiler/test/test_results/runnable/test17338_0 
runnable/test17338.d 
0  0x108b95f43  __assert_rtn + 64
1  0x108b61e75  ld::AtomFileConsolidator::addAtomFile(ld::AtomFile const*,
ld::AtomFile const*, bool) + 8997
2  0x108b6fa78  ld::AtomFileConsolidator::addAtomFile(ld::AtomFile const*) +
136
3  0x108b94287  ld::pass::stubs(ld::Options const&, ld::AtomFileConsolidator&)
+ 2039
4  0x108b79184  ld::AtomFileConsolidator::resolve() + 18564
5  0x108ae4db8  main + 12344
ld: Assertion failed: (slot < _sideTableBuffer.size()), function addAtom, file
AtomFileConsolidator.cpp, line 2158.
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Error: linker exited with status 1
==============================

This test involves instantiating 32767 templates.
```
size_t foo(size_t i, size_t mask)()
{
    static if (i == 14)
        return mask;
    else
        return foo!(i + 1, mask) + foo!(i + 1, mask | (1UL << i));
}

void main()
{
    assert(foo!(0, 0) != 0);
}
```

--
Feb 23