merge from gcc 
9 files changed