thanks for the thorough testing. It seems that he is removing a variable, that is used in the asm block. There must be a way to tell him to omit this. We will have a deeper look into this, but i agree the compiler is the problem.

I've the impression that the problem is in the __asm line rather than in the line 42. I think that when the code is optimized, the compiler assigns the 'dst' in one place (eg. a in register), but the assembler is getting the variable from another place (eg, in ram memory) and this causes the segmentation fault.

My suggestion is make a very simple example, eg, copy values from one matrix to another, test that this fails and fill a bug to Fedora (this is the distro that I'm using).