merge from gcc 
3 files changed