modify for gcc