Avoid crash in compile_to_object

PR 23672 points out a crash in compile_to_object.  This crash came in
during a C++-ization.  This patch avoids the crash.

The PR also points out another weird behavior in this code, but that
one requires some setup that I don't have here, and it seems to date
back to the introduction of the compile feature.  So, it isn't
addressed here.  I will leave the PR open so this bug isn't forgotten.

gdb/ChangeLog
2021-01-09  Tom Tromey  <tom@tromey.com>

	PR compile/23672
	* compile/compile.c (compile_to_object): Avoid crash when
	osabi_triplet_regexp returns NULL.
This commit is contained in:
Tom Tromey 2021-01-09 11:38:41 -07:00
parent bc167b6b3e
commit 54585eee2e
2 changed files with 9 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2021-01-09 Tom Tromey <tom@tromey.com>
PR compile/23672
* compile/compile.c (compile_to_object): Avoid crash when
osabi_triplet_regexp returns NULL.
2021-01-09 Tom Tromey <tom@tromey.com>
* tracepoint.h (class collection_list) <append_exp>: Take a

View File

@ -703,7 +703,9 @@ compile_to_object (struct command_line *cmd, const char *cmd_string,
const char *arch_rx = gdbarch_gnu_triplet_regexp (gdbarch);
/* Allow triplets with or without vendor set. */
triplet_rx = std::string (arch_rx) + "(-[^-]*)?-" + os_rx;
triplet_rx = std::string (arch_rx) + "(-[^-]*)?-";
if (os_rx != nullptr)
triplet_rx += os_rx;
compiler->set_triplet_regexp (triplet_rx.c_str ());
}