As reported in PR52704: https://github.com/llvm/llvm-project/issues/52704
Since the round-tripping generates function-local arguments, before this patch accessing CodeGenOptions.CommandLineArgs or MCTargetOptions.CommandLineArgs used to keep references on free'd data.
+@hans for the CC1Command change which otherwise blocks the usage append_range. This was unconsistent with how CommandLineArgs were passed around in other places (without the terminating nullptr element).
I changed this to match the behavior of the main function, ie. argv[argc] is guaranteed to be a null pointer. Please let me know if you disagree.