diff mbox

[3/3] Verify that target can create a dispatcher call (PR target/79892).

Message ID cd7eb359597e0c6d04a038b46451b024b435249e.1489418416.git.mliska@suse.cz
State New
Headers show

Commit Message

Martin Liška March 13, 2017, 8:26 a.m. UTC
gcc/ChangeLog:

2017-03-13  Martin Liska  <mliska@suse.cz>

	* multiple_target.c (create_dispatcher_calls): Check that
	a target can create a function dispatcher.
---
 gcc/multiple_target.c | 7 +++++++
 1 file changed, 7 insertions(+)

Comments

Richard Biener March 14, 2017, 11:05 a.m. UTC | #1
On Mon, Mar 13, 2017 at 9:26 AM, marxin <mliska@suse.cz> wrote:
> gcc/ChangeLog:

Ok.

Richard.

> 2017-03-13  Martin Liska  <mliska@suse.cz>
>
>         * multiple_target.c (create_dispatcher_calls): Check that
>         a target can create a function dispatcher.
> ---
>  gcc/multiple_target.c | 7 +++++++
>  1 file changed, 7 insertions(+)
>
> diff --git a/gcc/multiple_target.c b/gcc/multiple_target.c
> index 7b735ae81ae..cb792262d6e 100644
> --- a/gcc/multiple_target.c
> +++ b/gcc/multiple_target.c
> @@ -68,6 +68,13 @@ create_dispatcher_calls (struct cgraph_node *node)
>                     " supported by this target");
>           break;
>         }
> +      else if (!targetm.get_function_versions_dispatcher)
> +       {
> +         error_at (gimple_location (call),
> +                   "target does not support function version dispatcher");
> +         break;
> +       }
> +
>        e_next = e->next_caller;
>        idecl = targetm.get_function_versions_dispatcher (decl);
>        if (!idecl)
> --
> 2.11.1
>
diff mbox

Patch

diff --git a/gcc/multiple_target.c b/gcc/multiple_target.c
index 7b735ae81ae..cb792262d6e 100644
--- a/gcc/multiple_target.c
+++ b/gcc/multiple_target.c
@@ -68,6 +68,13 @@  create_dispatcher_calls (struct cgraph_node *node)
 		    " supported by this target");
 	  break;
 	}
+      else if (!targetm.get_function_versions_dispatcher)
+	{
+	  error_at (gimple_location (call),
+		    "target does not support function version dispatcher");
+	  break;
+	}
+
       e_next = e->next_caller;
       idecl = targetm.get_function_versions_dispatcher (decl);
       if (!idecl)