[AArch64] Avoid crashing on invalid -Wa,-march= values
authorDimitry Andric <dimitry@andric.com>
Sun, 28 Nov 2021 17:09:06 +0000 (18:09 +0100)
committerDimitry Andric <dimitry@andric.com>
Sun, 28 Nov 2021 21:23:42 +0000 (22:23 +0100)
commitdf08b2fe8b35cb63dfb3b49738a3494b9b4e6f8e
treecbbc61ae752c5720d729900299f34cc4f773be0d
parent3608e18a946e77a474a468304b6c3904c55dbce0
[AArch64] Avoid crashing on invalid -Wa,-march= values

As reported in https://bugs.freebsd.org/260078, the gnutls Makefiles
pass -Wa,-march=all to compile a number of assembly files. Clang does
not support this -march value, but because of a mistake in handling
the arguments, an unitialized Arg pointer is dereferenced, which can
cause a segfault.

Work around this by adding a check if the local WaMArch variable is
initialized, and if so, using its value in the diagnostic message.

Reviewed By: tschuett

Differential Revision: https://reviews.llvm.org/D114677
clang/lib/Driver/ToolChains/Arch/AArch64.cpp
clang/test/Driver/aarch64-target-as-march.s