https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82174

--- Comment #3 from David Malcolm <dmalcolm at gcc dot gnu.org> ---
Author: dmalcolm
Date: Thu Sep 14 19:30:26 2017
New Revision: 252769

URL: https://gcc.gnu.org/viewcvs?rev=252769&root=gcc&view=rev
Log:
Fix crash accessing builtins in sanitizer.def and after (PR jit/82174)

Calls to gcc_jit_context_get_builtin_function that accessed builtins
in sanitizer.def and after (or failed to match any builtin) led to
a crash accessing a NULL builtin name.

The entries with the NULL name came from these lines in sanitizer.def:

  /* This has to come before all the sanitizer builtins.  */
  DEF_BUILTIN_STUB(BEGIN_SANITIZER_BUILTINS, (const char *)0)

  [...snip...]

  /* This has to come after all the sanitizer builtins.  */
  DEF_BUILTIN_STUB(END_SANITIZER_BUILTINS, (const char *)0)

This patch updates jit-builtins.c to cope with such entries, fixing the
crash.

gcc/jit/ChangeLog:
        PR jit/82174
        * jit-builtins.c (matches_builtin): Ignore entries with a NULL
        name.

gcc/testsuite/ChangeLog:
        PR jit/82174
        *
jit.dg/test-error-gcc_jit_context_get_builtin_function-unknown-builtin.c:
        New test case.


Added:
   
trunk/gcc/testsuite/jit.dg/test-error-gcc_jit_context_get_builtin_function-unknown-builtin.c
Modified:
    trunk/gcc/jit/ChangeLog
    trunk/gcc/jit/jit-builtins.c
    trunk/gcc/testsuite/ChangeLog

Reply via email to