This is the mail archive of the
fortran@gcc.gnu.org
mailing list for the GNU Fortran project.
Re: Some help with fold_convert() on RECORD_TYPEs
- From: FX <fxcoudert at gmail dot com>
- To: "Richard Guenther" <richard dot guenther at gmail dot com>
- Cc: "GCC Development" <gcc at gcc dot gnu dot org>, "Fortran List" <fortran at gcc dot gnu dot org>
- Date: Fri, 29 Feb 2008 14:07:19 +0000
- Subject: Re: Some help with fold_convert() on RECORD_TYPEs
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; bh=1M8hOmEOUwmZoYHhASFUzlz1eG77fuyJ9eF4c6e3J5E=; b=k7Tq4Y0eTn6fDPFINWPTQ+6k//wQ8esaII/5enNeso0l1G73KGTvueosQ0ec519lYqKd+5qYU+dGXWJdQZwgVyekZMj7KPqaDXOZL7bMOrYiZkaOSmRe8NxVweCxmTAkXd6wMGTqiQWBMxQsBq5DMc+yjjhJ5H2ZNyFx1KgFJbU=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=VJZap/jZdp5YeFEbW4J8UsDYFvDb+zK1Xf059iW6HkxYB9G4/nH330zOWNqwseISUOtoe9eUSV1ppaGjYdit+Uyo7JRSTaEy8SutOM2bICXAln3+106lzGsS/eKdKecoyZUTPmMnloLawuBbvoIIG9Q48OZsUa2Qif2XOtzg7sQ=
- References: <19c433eb0802290401y6a1e314w2fe279e274ab83ab@mail.gmail.com> <84fc9c000802290439m22bdd0cn85df949fcfc34f55@mail.gmail.com> <19c433eb0802290548i74fc22e1xe98e92ff036036ee@mail.gmail.com> <84fc9c000802290559q5d46add3x91d71f8af9dff3cd@mail.gmail.com>
> Yeah, it should return false for some classes of types, RECORD_TYPE, UNION_TYPE,
> ARRAY_TYPE come to my mind here. Patch welcome ;)
I'd suggest:
Index: fold-const.c
===================================================================
--- fold-const.c (revision 131974)
+++ fold-const.c (working copy)
@@ -2476,8 +2476,15 @@ fold_convertible_p (const_tree type, con
return (TREE_CODE (orig) == VECTOR_TYPE
&& tree_int_cst_equal (TYPE_SIZE (type), TYPE_SIZE (orig)));
- default:
+ case REAL_TYPE:
+ case FIXED_POINT_TYPE:
+ case COMPLEX_TYPE:
+ case VECTOR_TYPE:
+ case VOID_TYPE:
return TREE_CODE (type) == TREE_CODE (orig);
+
+ default:
+ return false;
}
}
--
FX Coudert
http://www.homepages.ucl.ac.uk/~uccafco/