digitalmars.D.bugs - [Issue 21186] New: Inline Assembler: static (thread-local) variables
- d-bugmail puremagic.com (36/36) Aug 21 2020 https://issues.dlang.org/show_bug.cgi?id=21186
https://issues.dlang.org/show_bug.cgi?id=21186 Issue ID: 21186 Summary: Inline Assembler: static (thread-local) variables cannot be used Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: normal Priority: P1 Component: dmd Assignee: nobody puremagic.com Reporter: bugzilla digitalmars.com Moved from https://issues.dlang.org/show_bug.cgi?id=5922 bearophile_hugs eml.cc writes: D2 code, static (thread-local) variables can't be used in ASM: void main() { static size_t x = 10; asm { mov EDI, x; } } It produces: object.Error: Access Violation They work using __gshared, this gives no errors: void main() { __gshared static size_t x = 10; asm { mov EDI, x; } } My suggestion is to remove this source of errors. One solution may be to disallow the direct access to static variables from asm code, avoiding this bug. --
Aug 21 2020