The new version of gcc-16 (trunk) fixed this issue. The original example now works (though you need to export the new operator for this to work).