> 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