fix compile fail under gcc