http://www.compsci.hunter.cuny.edu/~sweiss/resources/about_gcc.pdf