also compiles on gcc