Strange compilation behavior