This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch gimplifier]: Make sure TRUTH_NOT_EXPR has boolean_type_node type and argument


2011/5/14 Eric Botcazou <ebotcazou@adacore.com>:
>> In Fortran (and maybe other langauges) there are booleans with
>> different sizes but the same precision.
>
> Ada doesn't have a C-like boolean type either. ?The patches have introduced:
>
> FAIL: gnat.dg/lto1.adb (test for excess errors)
>
>
> /home/eric/svn/gcc/gcc/testsuite/gnat.dg/lto1_pkg.adb:23:1: error: type
> mismatch in binary truth expression
> boolean
> boolean
> boolean
> D.2419_18 = D.2417_16 || D.2418_17;
> +===========================GNAT BUG DETECTED==============================+
> | 4.7.0 20110513 (experimental) [trunk revision 173737] (i586-suse-linux-gnu)
> GCC error:|
> | verify_gimple failed

Those issues should be fixed by the attached patch, which relaxes
strictness of logical operations in tree-cfg.c file.  Not sure if
Richard is ok by this, as it shows that FE are generating here
gimplify-incompatible SSA trees, which seems to me at least something
not that good here.

ChangeLog

2011-05-14  Kai Tietz

        * tree-cfg.c (verify_gimple_assign_unary): Don't enforce
boolean_type_node
        compatible lhs/rhs types for logical expression.
        (verify_gimple_assign_binary): Likewise.

Regards,
Kai

Attachment: relax_tree_cfg.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]