As for -a it doesn't look like -a is actually handled in parseopt, through process of elimination it looks like -E sets cpponly, -c sets dontlink, and -S sets dumpasm. So from main.c:143 if you don't set any of those, dumpast needs to be true, and the only way I see that getting set to true is by using this flag '-fdump-ast'
From this commit[0] it looks like -a was removed, but usage docs and error messages weren't updated.
Getting following error: [ERROR] main.c:144: (null): One of -a, -c, -E or -S must be specified
-c, -E and -S are working fine. Couldn't figure out from code what -a does.