Work around a nasty compiler bug in GCC 6.3
1 unresolved thread
1 unresolved thread
Compare changes
+ 29
− 1
@@ -315,11 +315,31 @@ namespace Dune {
@@ -399,6 +419,14 @@ namespace Dune {
GCC 6.3 errors out with an ICE or simply hangs when instantiating a certain variant of operator^=
on
BitSetVectorReference
. This patch works around the problem by forcing the actual XOR instruction
into a separate function for that compiler. The workaround is probably horribly slow, but it
shouldn't have any impact on unaffected compilers.
This probably needs backporting.
My suggestion would be to look at optimize attribute (Ctrl-F optimize) or pragma to disable the specific optimization that triggers this. Not sure whether that's worth the time, though.
Oh, I didn't know about that one, interesting! But I guess it really doesn't matter, I doubt that this operation will turn up in a performance-critical path.