Thread overview
[Issue 15975] TLS not scanned correctly for main thread
May 01, 2016
Rainer Schuetze
May 02, 2016
Rainer Schuetze
May 05, 2016
Rainer Schuetze
May 01, 2016
https://issues.dlang.org/show_bug.cgi?id=15975

Rainer Schuetze <r.sagitario@gmx.de> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |pull

--- Comment #1 from Rainer Schuetze <r.sagitario@gmx.de> ---
https://github.com/dlang/druntime/pull/1555

--
May 02, 2016
https://issues.dlang.org/show_bug.cgi?id=15975

--- Comment #2 from Rainer Schuetze <r.sagitario@gmx.de> ---
Sorry, screwed up the test completely. It is not the variable that is misaligned, but the range scanned by the GC. Use this test program:

import core.stdc.stdio;
import rt.sections;

void* tls;

void main()
{
    foreach (ref sg; SectionGroup)
    {
        foreach (rng; sg.gcRanges)
            printf("glob: beg = %p  end = %p\n", rng.ptr, rng.ptr +
rng.length);
    }
    if (auto arr = initTLSRanges())
        foreach (rng; *arr)
            printf("tls:  beg = %p  end = %p\n", rng.ptr, rng.ptr +
rng.length);

    printf("&tls = %p\n", &tls);
}

It prints:
glob: beg = 0x6299f0  end = 0x62e3a8
tls:  beg = 0x7fd37dfdb717  end = 0x7fd37dfdba40
&tls = 0x7fd37dfdb710

--
May 05, 2016
https://issues.dlang.org/show_bug.cgi?id=15975

Rainer Schuetze <r.sagitario@gmx.de> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |INVALID

--- Comment #3 from Rainer Schuetze <r.sagitario@gmx.de> ---
This is LDC specific.

--