merge from gcc
8 files changed