Hi, This is a revamped expr.h flattening flattening patch rebased on tree.h and tree-core.h flattening patch (r219402). It depends upon the following patch to get committed. https://gcc.gnu.org/ml/gcc-patches/2015-01/msg00565.html Changes: * Removed all includes except tree-core.h. Put includes required by expr.h in a comment. * Moved stmt.c, expmed.c prototypes to stmt.h, expmed.h respectively. * Adjusted generator programs: genemit.c, gengtype.c, genopinit.c, genoutput.c. * Did not put includes in gcc-plugin.h since expr.h cannot be included by plugins (putting them broke building a file in c-family/ since expr.h is not allowed in front-ends) * Affects java front-end (expr.h is allowed in java front-end). Bootstrapped and tested on x86_64-unknown-linux-gnu with languages: all,go,ada,jit Built on all targets in config-list.mk with languages: all, go. OK to commit ? Thanks, Prathamesh