Bug after update to 2.072?

Alex via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Mon Nov 7 08:55:29 PST 2016


Ok, ok. Here, I pasted the code, minimized as far as I could. 
There are 434 lines of code, sorry.
http://pastebin.com/UcZUc79g

The main is empty. This is intended. I still have the 
segmentation fault.

Maybe, I have another hint:
If I comment all the attributes in the
private HeadUnshared!(T) atomicFetchAdd(T, V1)( ref shared T val, 
V1 mod ) //pure nothrow @nogc @trusted
method in atomic.d, in line 657, away, and add something like
import std.stdio;
writeln("kuku");
at the first lines of the body
I get an error message on compiling:

/usr/local/Cellar/dmd/2.072.0/include/dlang/dmd/core/atomic.d(722,46): Error: pure function 'core.atomic.atomicOp!("+=", ulong, int).atomicOp' cannot call impure function 'core.atomic.atomicFetchAdd!(ulong, int).atomicFetchAdd'
/usr/local/Cellar/dmd/2.072.0/include/dlang/dmd/core/atomic.d(722,46): Error: @nogc function 'core.atomic.atomicOp!("+=", ulong, int).atomicOp' cannot call non- at nogc function 'core.atomic.atomicFetchAdd!(ulong, int).atomicFetchAdd'
/usr/local/Cellar/dmd/2.072.0/include/dlang/dmd/core/atomic.d(722,46): Error: function 'core.atomic.atomicFetchAdd!(ulong, int).atomicFetchAdd' is not nothrow
/usr/local/Cellar/dmd/2.072.0/include/dlang/dmd/core/atomic.d(692,22): Error: nothrow function 'core.atomic.atomicOp!("+=", ulong, int).atomicOp' may throw
/usr/local/Cellar/dmd/2.072.0/include/dlang/dmd/std/parallelism.d-mixin-3786(3812,50): Error: template instance core.atomic.atomicOp!("+=", ulong, int) error instantiating
/usr/local/Cellar/dmd/2.072.0/include/dlang/dmd/std/parallelism.d(3309,1):        instantiated from here: ParallelForeach!(double[][])
source/app.d(143,41):        instantiated from here: 
parallel!(double[][])
source/app.d(20,34):        instantiated from here: 
crs2!(crs2Fun02, crs2Params!(OptInit))

Maybe, this doesn't say anything about the segmentation error. 
But the last two lines are, maybe a hint, which route is taken on 
compilation.


More information about the Digitalmars-d-learn mailing list