* config/rs6000/rs6000.c (rs6000_function_value): Look at bit size
instead of precision.
* gfortran.dg/logical_3.f90: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122523
138bc75d-0d04-0410-961f-
82ee72b054a4
+2007-03-04 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR target/30406
+ * config/rs6000/rs6000.c (rs6000_function_value): Look at bit size
+ instead of precision.
+
2007-03-04 Roman Zippel <zippel@linux-m68k.org>
Nathan Sidwell <nathan@codesourcery.com>
GEN_INT (12))));
}
- if ((INTEGRAL_TYPE_P (valtype)
- && TYPE_PRECISION (valtype) < BITS_PER_WORD)
+ mode = TYPE_MODE (valtype);
+ if ((INTEGRAL_TYPE_P (valtype) && GET_MODE_BITSIZE (mode) < BITS_PER_WORD)
|| POINTER_TYPE_P (valtype))
mode = TARGET_32BIT ? SImode : DImode;
- else
- mode = TYPE_MODE (valtype);
if (DECIMAL_FLOAT_MODE_P (mode))
{
+2007-03-04 Francois-Xavier Coudert <coudert@clipper.ens.fr>
+
+ PR target/30406
+ * gfortran.dg/logical_3.f90: New test.
+
2007-03-04 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/30981
--- /dev/null
+! { dg-do compile }
+! This checks the fix for PR30406.
+!
+! Contributed by Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+!===============================================================
+
+function f()
+ logical(8) :: f
+ f = .false._8
+end function f