re PR target/30406 ([4.1 only] ICE in LOGICAL(8) functions)
PR target/30406 * config/rs6000/rs6000.c (rs6000_function_value): Look at bit size instead of precision. * gfortran.dg/logical_3.f90: New test. From-SVN: r122523
This commit is contained in:
parent
3d1f465aff
commit
7348aa7faf
@ -1,3 +1,9 @@
|
||||
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>
|
||||
|
||||
|
@ -20562,12 +20562,10 @@ rs6000_function_value (tree valtype, tree func ATTRIBUTE_UNUSED)
|
||||
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))
|
||||
{
|
||||
|
@ -1,3 +1,8 @@
|
||||
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
|
||||
|
10
gcc/testsuite/gfortran.dg/logical_3.f90
Normal file
10
gcc/testsuite/gfortran.dg/logical_3.f90
Normal file
@ -0,0 +1,10 @@
|
||||
! { 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
|
Loading…
Reference in New Issue
Block a user