Thread overview | ||||||||
---|---|---|---|---|---|---|---|---|
|
December 30, 2012 [Issue 9244] New: union containing pointers not allowed | ||||
---|---|---|---|---|
| ||||
http://d.puremagic.com/issues/show_bug.cgi?id=9244 Summary: union containing pointers not allowed Product: D Version: D2 Platform: x86 OS/Version: Windows Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nobody@puremagic.com ReportedBy: rtcvb32@yahoo.com --- Comment #0 from Era Scarecrow <rtcvb32@yahoo.com> 2012-12-29 20:40:55 PST --- Silently enters 'void* this;' pointer making compiling error out. Current beta (v2.061, windows 32bit) Only by using traits will the problem show itself. [code] static assert(__traits(compiles, { union xxx { int i; //bitfields will make such functions... mixin("int geti() @safe const nothrow pure {return i;}void seti(int ii) @safe pure nothrow {i = ii;}"); } })); [/code] output: test.d(??): Error: static assert (__traits(compiles,delegate pure nothrow @safe void() { union xxx { int i; mixin("int geti() @safe const nothrow pure {return i;}void seti(int ii) @safe pure nothrow {i = ii;}"); void* this; } } )) is false -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
December 30, 2012 [Issue 9244] union containing pointers not allowed | ||||
---|---|---|---|---|
| ||||
Posted in reply to Era Scarecrow | http://d.puremagic.com/issues/show_bug.cgi?id=9244 Jonathan M Davis <jmdavisProg@gmx.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jmdavisProg@gmx.com --- Comment #1 from Jonathan M Davis <jmdavisProg@gmx.com> 2012-12-29 23:03:21 PST --- If this is a regression, it needs to be marked as such. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
January 14, 2013 [Issue 9244] union containing pointers not allowed | ||||
---|---|---|---|---|
| ||||
Posted in reply to Era Scarecrow | http://d.puremagic.com/issues/show_bug.cgi?id=9244 yebblies <yebblies@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |rejects-valid CC| |yebblies@gmail.com Platform|x86 |All OS/Version|Windows |All Severity|normal |regression --- Comment #2 from yebblies <yebblies@gmail.com> 2013-01-14 22:49:46 EST --- Reduced: void main() { union U { int i; @safe int x() { return i; } } } Because U has a function in it, dmd incorrectly decides it is a nested union and (even worse) inserts a void* member. A regression because: - @safe code didn't always disallow unions with pointers - wrapping x in an attribute such as @safe used to make the compiler infer U as non-nested Workaround: make U static -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
February 01, 2013 [Issue 9244] union containing pointers not allowed | ||||
---|---|---|---|---|
| ||||
Posted in reply to Era Scarecrow | http://d.puremagic.com/issues/show_bug.cgi?id=9244 Walter Bright <bugzilla@digitalmars.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |bugzilla@digitalmars.com --- Comment #3 from Walter Bright <bugzilla@digitalmars.com> 2013-02-01 00:08:07 PST --- https://github.com/D-Programming-Language/dmd/pull/1591 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
February 01, 2013 [Issue 9244] union containing pointers not allowed | ||||
---|---|---|---|---|
| ||||
Posted in reply to Era Scarecrow | http://d.puremagic.com/issues/show_bug.cgi?id=9244 --- Comment #4 from github-bugzilla@puremagic.com 2013-02-01 14:07:06 PST --- Commits pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/0e21647a30c50e02e4a9ce43ee7e891a41d7c255 fix Issue 9244 - union containing pointers not allowed https://github.com/D-Programming-Language/dmd/commit/95a3f5ff979f40ff0e7ae459b8d9786d64f901a7 Merge pull request #1591 from WalterBright/b46 fix Issue 9244 - union containing pointers not allowed -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
February 01, 2013 [Issue 9244] union containing pointers not allowed | ||||
---|---|---|---|---|
| ||||
Posted in reply to Era Scarecrow | http://d.puremagic.com/issues/show_bug.cgi?id=9244 Walter Bright <bugzilla@digitalmars.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
Copyright © 1999-2021 by the D Language Foundation