I was under the assumption alignment was supposed to work in functions except in main. Apparently functions called from main do not align the stack, but the next level of nesting does. It is not a bug in gcc, please close the report.