The crash can be reproduced with the following command on an x86 machine:
$ clang -arch arm64 -mtune=native -c hello.c
The bug is in AddAArch64TargetArgs where it invokes A->getAsString(Args) without checking A is null (and local variable A isn't initialized in this function).
In this patch, I changed the line to first check if A is null. If it is null, it will print either "native" or the target CPU name getAArchTargetCPU returns. I added the check for "native" so that the cpu name provided by the user using -mtune or -mcpu is printed rather than the host cpu name (e.g., haswell):
clang-3.8: error: the clang compiler does not support 'native'