From bd0b34a882a1b4d92cf8945ccc3968819f57892b Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Sat, 12 Feb 2005 12:02:35 -0800 Subject: [PATCH] utils.c (gnat_type_for_mode): Return NULL for COMPLEX modes... * utils.c (gnat_type_for_mode): Return NULL for COMPLEX modes; validate SCALAR_INT_MODE_P before calling gnat_type_for_size. From-SVN: r94946 --- gcc/ada/ChangeLog | 5 +++++ gcc/ada/utils.c | 8 ++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 862b9e57aa6..eb7fd064a7a 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,8 @@ +2005-02-12 Richard Henderson + + * utils.c (gnat_type_for_mode): Return NULL for COMPLEX modes; + validate SCALAR_INT_MODE_P before calling gnat_type_for_size. + 2005-02-10 Andreas Jaeger * init.c (__gnat_initialize): Mark parameter as unused. diff --git a/gcc/ada/utils.c b/gcc/ada/utils.c index 549c0935e6f..0ba7381b904 100644 --- a/gcc/ada/utils.c +++ b/gcc/ada/utils.c @@ -1828,10 +1828,14 @@ gnat_type_for_mode (enum machine_mode mode, int unsignedp) return NULL_TREE; else if (mode == VOIDmode) return void_type_node; - else if (GET_MODE_CLASS (mode) == MODE_FLOAT) + else if (COMPLEX_MODE_P (mode)) + return NULL_TREE; + else if (SCALAR_FLOAT_MODE_P (mode)) return float_type_for_precision (GET_MODE_PRECISION (mode), mode); - else + else if (SCALAR_INT_MODE_P (mode)) return gnat_type_for_size (GET_MODE_BITSIZE (mode), unsignedp); + else + gcc_unreachable (); } /* Return the unsigned version of a TYPE_NODE, a scalar type. */ -- 2.30.2