On Friday, 3 March 2023 at 01:11:06 UTC, Vladimir Panteleev wrote:
On Friday, 3 March 2023 at 01:07:07 UTC, ryuukk_ wrote:
I couldn't figure out dustmite, so i started from 0 and managed to hit something:

https://github.com/ryuukk/dmd_bug

``Assertion failed: array index out of bounds, file game\app.d, line 5``

Wich indicates probably TLS problem?

Yeah... `rt.a.stuffs` is a TLS variable. The D runtime manages TLS. `extern(C) main` bypasses D runtime initialization.

I have some questions:

1. why does it work with LDC?
2. why does it work with DMD when build/link in 2 step?
3. why it doesn't work when DMD is invoked once for build/link
4. is this a bug in DMD or my code is wrong?
5. if it's wrong, then why does it compile/no error?


```sh
#!/usr/bin/env bash

set -e

build_dmd() {
        echo "build dmd"
        dmd \
        -debug -g \
        -m64 -vcolumns -betterC -w -i -i=-std -i=-core \
        -Igame \
        -Istuff/ \
        stuff/rt/object.d \
        game/app.d \
        -of=game.exe
}

build_ldc() {
        echo "build ldc"
        ldc2 \
        -d-debug -g \
        -m64 -vcolumns -betterC -w -i -i=-std -i=-core \
        -Igame \
        -Istuff/ \
        stuff/rt/object.d \
        game/app.d \
        -of=game.exe
}

build_dmd_and_link() {
        echo "build dmd and link (2step)"
        dmd \
        -debug -g -c \
        -m64 -vcolumns -betterC -w -i -i=-std -i=-core \
        -Igame \
        -Istuff/ \
        stuff/rt/object.d \
        game/app.d \
        -of=game.obj

        dmd \
        -debug -g  \
        -m64 -vcolumns -betterC -w -i -i=-std -i=-core \
        -Igame \
        -Istuff/ \
        game.obj \
        -of=game.exe
}


build_ldc
./game.exe
rm game.obj game.exe

build_dmd_and_link
./game.exe
rm game.obj game.exe

build_dmd
./game.exe
rm game.obj game.exe
```
  • Re: Bug in DMD? ryuukk_ via Digitalmars-d-learn
  • Re: Bug in DMD? Richard (Rikki) Andrew Cattermole via Digitalmars-d-learn
    • Re: Bug in ... ryuukk_ via Digitalmars-d-learn
      • Re: Bug... ryuukk_ via Digitalmars-d-learn
        • Re:... H. S. Teoh via Digitalmars-d-learn
        • Re:... ryuukk_ via Digitalmars-d-learn
          • ... Ali Çehreli via Digitalmars-d-learn
          • ... Richard (Rikki) Andrew Cattermole via Digitalmars-d-learn
            • ... ryuukk_ via Digitalmars-d-learn
              • ... Vladimir Panteleev via Digitalmars-d-learn
              • ... ryuukk_ via Digitalmars-d-learn
              • ... Vladimir Panteleev via Digitalmars-d-learn
              • ... Richard (Rikki) Andrew Cattermole via Digitalmars-d-learn
              • ... ryuukk_ via Digitalmars-d-learn
              • ... Richard (Rikki) Andrew Cattermole via Digitalmars-d-learn
              • ... Richard (Rikki) Andrew Cattermole via Digitalmars-d-learn
              • ... ryuukk_ via Digitalmars-d-learn
      • Re: Bug... Richard (Rikki) Andrew Cattermole via Digitalmars-d-learn

Reply via email to