Range check error message: only print input once

Also, print the actual out-of-bounds values,
instead of just printing the input buffer.

Change-Id: Ia6b73d98e41c3285d8fd9f39963f9d556d2d95f7
diff --git a/av1/common/av1_inv_txfm1d.c b/av1/common/av1_inv_txfm1d.c
index 3399b7c..3bd8686 100644
--- a/av1/common/av1_inv_txfm1d.c
+++ b/av1/common/av1_inv_txfm1d.c
@@ -19,24 +19,40 @@
   const int64_t maxValue = (1LL << (bit - 1)) - 1;
   const int64_t minValue = -(1LL << (bit - 1));
 
+  int in_range = 1;
+
   for (int i = 0; i < size; ++i) {
     if (buf[i] < minValue || buf[i] > maxValue) {
-      fprintf(stderr, "Error: coeffs contain out-of-range values\n");
-      fprintf(stderr, "stage: %d\n", stage);
-      fprintf(stderr, "node: %d\n", i);
-      fprintf(stderr, "allowed range: [%" PRId64 ";%" PRId64 "]\n", minValue,
-              maxValue);
-      fprintf(stderr, "coeffs: ");
-
-      fprintf(stderr, "[");
-      for (int j = 0; j < size; j++) {
-        if (j > 0) fprintf(stderr, ", ");
-        fprintf(stderr, "%d", input[j]);
-      }
-      fprintf(stderr, "]\n");
-      assert(0);
+      in_range = 0;
     }
   }
+
+  if (!in_range) {
+    fprintf(stderr, "Error: coeffs contain out-of-range values\n");
+    fprintf(stderr, "stage: %d\n", stage);
+    fprintf(stderr, "allowed range: [%" PRId64 ";%" PRId64 "]\n", minValue,
+            maxValue);
+
+    fprintf(stderr, "coeffs: ");
+
+    fprintf(stderr, "[");
+    for (int j = 0; j < size; j++) {
+      if (j > 0) fprintf(stderr, ", ");
+      fprintf(stderr, "%d", input[j]);
+    }
+    fprintf(stderr, "]\n");
+
+    fprintf(stderr, "   buf: ");
+
+    fprintf(stderr, "[");
+    for (int j = 0; j < size; j++) {
+      if (j > 0) fprintf(stderr, ", ");
+      fprintf(stderr, "%d", buf[j]);
+    }
+    fprintf(stderr, "]\n\n");
+  }
+
+  assert(in_range);
 }
 
 #define range_check(stage, input, buf, size, bit) \