> The following uses ranger to try to simplify boolean expressions
> in simplify_using_initial_conditions as used by niter analysis.
> We also try to simplify niter expressions themselves, but we cannot
> use ranger directly for this.
> 
> Bootstrapped and tested on x86_64-unknown-linux-gnu, pushed.
> 
>       * tree-ssa-loop-niter.cc (simplify_using_initial_conditions):
>       Use the active ranger to simplify boolean expressions.

This causes Create_Binder_Output in osint-b.adb to be miscompiled when the Ada 
compiler is profiledbootstrapped at -O3.

         Flength := Findex2 - Findex1;

         if Maximum_File_Name_Length > 0 then

            --  Make room for the extra two characters in "b?"

            while Int (Flength) >
              Maximum_File_Name_Length - Nat (Bind_File_Prefix_Len)
            loop
               Findex2 := Findex2 - 1;
               Flength := Findex2 - Findex1;
            end loop;
         end if;

Flength is 8 after the first line, Maximum_File_Name_Length is INT_MAX and 
Bind_File_Prefix_Len is 2, but the entry condition of the loop is bypassed and
Flength ends up being set to INT_MAX - 2 unconditionally.  I'll try to devise 
a reduced testcase.

-- 
Eric Botcazou


Reply via email to