Commit 5afd44e3 by David Malcolm Committed by David Malcolm

Fix issue with string options and nested gcc_jit_contexts

gcc/jit/ChangeLog:
	* jit-recording.c (gcc::jit::recording::context::context): When
	copying string options from a parent context, take a copy of the
	underlying buffers, rather than simply copying the pointer.

From-SVN: r218972
parent 3eb239f4
2014-12-19 David Malcolm <dmalcolm@redhat.com>
* jit-recording.c (gcc::jit::recording::context::context): When
copying string options from a parent context, take a copy of the
underlying buffers, rather than simply copying the pointer.
2014-12-19 David Malcolm <dmalcolm@redhat.com>
* jit-recording.c (gcc::jit::recording::context::set_str_option):
Handle NULL.
......
......@@ -181,11 +181,14 @@ recording::context::context (context *parent_ctxt)
{
if (parent_ctxt)
{
/* Inherit options from parent.
Note that the first memcpy means copying pointers to strings. */
memcpy (m_str_options,
parent_ctxt->m_str_options,
sizeof (m_str_options));
/* Inherit options from parent. */
for (unsigned i = 0;
i < sizeof (m_str_options) / sizeof (m_str_options[0]);
i++)
{
const char *parent_opt = parent_ctxt->m_str_options[i];
m_str_options[i] = parent_opt ? xstrdup (parent_opt) : NULL;
}
memcpy (m_int_options,
parent_ctxt->m_int_options,
sizeof (m_int_options));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment