rs6000: Fix ICE in rs6000_init_builtins when compiling with -mcpu=440 [PR99279]
authorPeter Bergner <bergner@linux.ibm.com>
Fri, 26 Feb 2021 03:35:28 +0000 (21:35 -0600)
committerPeter Bergner <bergner@linux.ibm.com>
Fri, 26 Feb 2021 03:35:28 +0000 (21:35 -0600)
The initialization of compat builtins assumes the builtin we are creating
a compatible builtin for exists and ICEs if it doesn't.  However, there are
valid reasons why some builtins are disabled for a particular compile.
In this case, the MMA builtins are disabled for -mcpu=440 (and other cpus),
so instead of ICEing, we should just skip adding the MMA compat builtin.

2021-02-25  Peter Bergner  <bergner@linux.ibm.com>

gcc/
PR target/99279
* config/rs6000/rs6000-call.c (rs6000_init_builtins): Replace assert
with an "if" test.

gcc/config/rs6000/rs6000-call.c

index d2bd03e..f567625 100644 (file)
@@ -13468,9 +13468,9 @@ rs6000_init_builtins (void)
   for (i = 0; i < ARRAY_SIZE (bdesc_compat); i++, d++)
     {
       tree decl = rs6000_builtin_decls[(int)d->code];
-      gcc_assert (decl != NULL);
-      add_builtin_function (d->name, TREE_TYPE (decl), (int)d->code,
-                           BUILT_IN_MD, NULL, NULL_TREE);
+      if (decl != NULL)
+       add_builtin_function (d->name, TREE_TYPE (decl), (int)d->code,
+                             BUILT_IN_MD, NULL, NULL_TREE);
     }
 }