works with gcc-4.8.2