[Issue 18232] Union methods fail to initialize local variables to .init
https://issues.dlang.org/show_bug.cgi?id=18232 --- Comment #6 from github-bugzi...@puremagic.com --- Commits pushed to master at https://github.com/dlang/dmd https://github.com/dlang/dmd/commit/29c1e309be359f871d4052c025f7f3144005d092 Fix issue 18232: local vars in union member functions needs initializer. The `isunion` condition is too broad, because it also excludes local variables declared inside union member functions. Moreoever, it is not necessary, because the `fd` condition later on already excludes union fields, since they would not be inside a function declaration. https://github.com/dlang/dmd/commit/4cf228eb33ee8e2b4b6856fa7c08990217039ac7 Merge pull request #7687 from quickfur/issue18232 Fix issue 18232: local vars in union member functions needs initializer. merged-on-behalf-of: Sebastian Wilzbach--
[Issue 18232] Union methods fail to initialize local variables to .init
https://issues.dlang.org/show_bug.cgi?id=18232 github-bugzi...@puremagic.com changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --
[Issue 18232] Union methods fail to initialize local variables to .init
https://issues.dlang.org/show_bug.cgi?id=18232 hst...@quickfur.ath.cx changed: What|Removed |Added Keywords||pull --- Comment #5 from hst...@quickfur.ath.cx --- https://github.com/dlang/dmd/pull/7687 --
[Issue 18232] Union methods fail to initialize local variables to .init
https://issues.dlang.org/show_bug.cgi?id=18232 --- Comment #4 from hst...@quickfur.ath.cx --- More interesting clues: running a union method inside CTFE containing a local variable without an explicit initializer causes a CTFE error "cannot modify variable at compile time", whereas explicitly initializing the local variable works. -- union U { int method() { int x; // causes CTFE failure unless explicitly initialized return x; } } enum y = U.init.method(); -- --
[Issue 18232] Union methods fail to initialize local variables to .init
https://issues.dlang.org/show_bug.cgi?id=18232 --- Comment #3 from hst...@quickfur.ath.cx --- Minimized code: -- union U { int method() { int x; return x; } } -- The disassembly shows that x is never initialized to 0, and a garbage value is returned. --
[Issue 18232] Union methods fail to initialize local variables to .init
https://issues.dlang.org/show_bug.cgi?id=18232 hst...@quickfur.ath.cx changed: What|Removed |Added Summary|string variable in toString |Union methods fail to |method of Union: invalid|initialize local variables |code (crash/segfault) |to .init --