| Thread overview | |||||
|---|---|---|---|---|---|
|
August 01, 2015 Compile error! | ||||
|---|---|---|---|---|
| ||||
import std.stdio;
import core.memory;
struct sQueue(T)
{
struct sNode
{
T mfPayload = T.init;
union{
typeof(this)* mfPrev;
shared(typeof(this)*) mfShPrev;
}
union{
typeof(this)* mfNext;
shared(typeof(this)*) mfShNext;
}
}
//shared(sQueueNode) mfRoot;
sNode mfRoot;
void pfPut(T v,sNode* r = null)
{
if(r is null) r = &this.mfRoot;
shared auto n = new sNode(v);
}
}
int main(string[] argv)
{
auto b1 = new sQueue!uint;
writeln("Hello D-World!");
writeln("Hello D-World!");
writeln("Hello D-World!");
return 0;
}
| ||||
August 01, 2015 Re: Compile error! | ||||
|---|---|---|---|---|
| ||||
Posted in reply to sdv | On Saturday, 1 August 2015 at 04:26:45 UTC, sdv wrote:
> import std.stdio;
> import core.memory;
>
> struct sQueue(T)
> {
> struct sNode
> {
> T mfPayload = T.init;
> union{
> typeof(this)* mfPrev;
> shared(typeof(this)*) mfShPrev;
> }
> union{
> typeof(this)* mfNext;
> shared(typeof(this)*) mfShNext;
> }
> }
>
>
> //shared(sQueueNode) mfRoot;
> sNode mfRoot;
>
> void pfPut(T v,sNode* r = null)
> {
> if(r is null) r = &this.mfRoot;
> shared auto n = new sNode(v);
>
> }
>
> }
>
>
> int main(string[] argv)
> {
> auto b1 = new sQueue!uint;
>
>
>
> writeln("Hello D-World!");
> writeln("Hello D-World!");
> writeln("Hello D-World!");
> return 0;
> }
DMD32 D Compiler v2.067.1
| |||
August 01, 2015 Re: Compile error! | ||||
|---|---|---|---|---|
| ||||
Posted in reply to sdv Attachments:
| 2015-08-01 13:27 GMT+09:00 sdv via Digitalmars-d < digitalmars-d@puremagic.com>: > On Saturday, 1 August 2015 at 04:26:45 UTC, sdv wrote: > >> import std.stdio; >> import core.memory; >> >> struct sQueue(T) >> { >> struct sNode >> { >> T mfPayload = T.init; >> union{ >> typeof(this)* mfPrev; >> shared(typeof(this)*) mfShPrev; >> } >> union{ >> typeof(this)* mfNext; >> shared(typeof(this)*) mfShNext; >> } >> } >> >> >> //shared(sQueueNode) mfRoot; >> sNode mfRoot; >> >> void pfPut(T v,sNode* r = null) >> { >> if(r is null) r = &this.mfRoot; >> shared auto n = new sNode(v); >> >> } >> >> } >> >> >> int main(string[] argv) >> { >> auto b1 = new sQueue!uint; >> >> >> >> writeln("Hello D-World!"); >> writeln("Hello D-World!"); >> writeln("Hello D-World!"); >> return 0; >> } >> > > DMD32 D Compiler v2.067.1 > Do you mean the dmd segfault when you compile the code? Yes, it's a compiler bug. I filed the issue in bugzilla: https://issues.dlang.org/show_bug.cgi?id=14853 Kenji Hara | |||
Copyright © 1999-2021 by the D Language Foundation
Permalink
Reply