On Sat, Mar 10, 2012 at 11:19 AM, Tobias Burnus <bur...@net-b.de> wrote:
> Steven Bosscher wrote:
>> This cleans up some remnants of the ancestors of fortran's convert.c,
>> which was copied from GNAT IIRC. I would bootstrap&test this, but trunk
>> appears to be broken for x86_64-linux right now (ICE in patch_jump_insn).
>> But I can post this
>> for review, at least.
>> OK for trunk, after bootstrap+test?
> Your patch seems to have caused many Fortran regressions. At least I see
> with 185156 only one (known) failure, cf.
> While starting with 185160 there are many, many gfortran failures, cf.
Yes, it seems that different boolean types aren't allowed. I must have
looked at the wrong test results somehow.
I'm testing this fix:
--- convert.c (revision 185160)
+++ convert.c (working copy)
@@ -95,7 +95,8 @@ convert (tree type, tree expr)
if (code == VOID_TYPE)
return fold_build1_loc (input_location, CONVERT_EXPR, type, e);
if (code == BOOLEAN_TYPE)
- return truthvalue_conversion (e);
+ return fold_build1_loc (input_location, NOP_EXPR, type,
+ truthvalue_conversion (e));
if (code == INTEGER_TYPE)
return fold (convert_to_integer (type, e));
if (code == POINTER_TYPE || code == REFERENCE_TYPE)