aboutsummaryrefslogtreecommitdiff
path: root/gcc/varasm.c
diff options
context:
space:
mode:
authorRoger Sayle <roger@eyesopen.com>2006-02-20 00:34:12 +0000
committerRoger Sayle <sayle@gcc.gnu.org>2006-02-20 00:34:12 +0000
commit6a34c78895f891207fa2314abe4bd103523f90d1 (patch)
tree7a2b4312e72d7c2ab8e9e8309209df91039afe1d /gcc/varasm.c
parent3cdab2662d9f2d69b8aa829b63b9c2bc0671a7ea (diff)
downloadgcc-6a34c78895f891207fa2314abe4bd103523f90d1.zip
gcc-6a34c78895f891207fa2314abe4bd103523f90d1.tar.gz
gcc-6a34c78895f891207fa2314abe4bd103523f90d1.tar.bz2
re PR middle-end/19543 ([4.1 only] fortran LOGICAL*8 not consistently distinguished from 32 bit integers)
PR middle-end/19543 * varasm.c (compare_constant) <INTEGER_CST>: Integer constants are only equivalent if the have both the same mode and precision. * gfortran.dg/logical_1.f90: New test case. From-SVN: r111294
Diffstat (limited to 'gcc/varasm.c')
-rw-r--r--gcc/varasm.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/varasm.c b/gcc/varasm.c
index 9801b1f..ed7bbb6 100644
--- a/gcc/varasm.c
+++ b/gcc/varasm.c
@@ -2573,6 +2573,8 @@ compare_constant (const tree t1, const tree t2)
/* Integer constants are the same only if the same width of type. */
if (TYPE_PRECISION (TREE_TYPE (t1)) != TYPE_PRECISION (TREE_TYPE (t2)))
return 0;
+ if (TYPE_MODE (TREE_TYPE (t1)) != TYPE_MODE (TREE_TYPE (t2)))
+ return 0;
return tree_int_cst_equal (t1, t2);
case REAL_CST: