It probably should just be changed to a print if it doesn't return.. something like

if (idx && res)
  {
    tracer.print (idx, "logical_combine produced");
    r.dump (dump_file);
    fputc ('\n', dump_file);
   }

Andrew

On 10/10/22 14:58, Aldy Hernandez wrote:
[Andrew, you OK with this?  I can't tell whether the trailer() call was
actually needed.]

logical_combine is calling tracer.trailer() one too many times causing
the second trailer() call to subtract a 0 indent by 2, yielding an
indent of SOMETHING_REALLY_BIG :).  You'd be surprised how many tools
can't handle incredibly long lines.

gcc/ChangeLog:

        * gimple-range-gori.cc (gori_compute::logical_combine): Avoid
        calling tracer.trailer().
---
  gcc/gimple-range-gori.cc | 10 +---------
  1 file changed, 1 insertion(+), 9 deletions(-)

diff --git a/gcc/gimple-range-gori.cc b/gcc/gimple-range-gori.cc
index b37d03cddda..469382aa477 100644
--- a/gcc/gimple-range-gori.cc
+++ b/gcc/gimple-range-gori.cc
@@ -798,20 +798,12 @@ gori_compute::logical_combine (vrange &r, enum tree_code 
code,
    // would be lost.
    if (!range_is_either_true_or_false (lhs))
      {
-      bool res;
        Value_Range r1 (r);
        if (logical_combine (r1, code, m_bool_zero, op1_true, op1_false,
                           op2_true, op2_false)
          && logical_combine (r, code, m_bool_one, op1_true, op1_false,
                              op2_true, op2_false))
-       {
-         r.union_ (r1);
-         res = true;
-       }
-      else
-       res = false;
-      if (idx)
-       tracer.trailer (idx, "logical_combine", res, NULL_TREE, r);
+       r.union_ (r1);
      }
switch (code)

Reply via email to