Decorator d;
Printf("%s", d.Warning());
- Printf("Shadow map of [%p, %p), %zu bytes:\n",
+ uptr start_x = reinterpret_cast<uptr>(x);
+ Printf("Shadow map [%p, %p) of [%p, %p), %zu bytes:\n",
reinterpret_cast<void *>(start), reinterpret_cast<void *>(end),
- end - start);
+ reinterpret_cast<void *>(start_x),
+ reinterpret_cast<void *>(start_x + end - start), end - start);
Printf("%s", d.Default());
while (s < e) {
// Line start.
if (pos % 16 == 0) {
for (int i = 0; i < 4; ++i) origin_ids[i] = -1;
- Printf("%p:", reinterpret_cast<void *>(s));
+ Printf("%p[%p]:", reinterpret_cast<void *>(s),
+ reinterpret_cast<void *>(start_x - start + s));
}
// Group start.
if (pos % 4 == 0) {
#ifdef POSITIVE
__msan_check_mem_is_initialized(p + 5, 20);
// CHECK: Uninitialized bytes in __msan_check_mem_is_initialized at offset 5 inside [0x{{.*}}, 20)
- // CHECK-VERBOSE: Shadow map of [0x{{.*}}, 0x{{.*}}), 20 bytes:
+ // CHECK-VERBOSE: Shadow map [0x{{.*}}, 0x{{.*}}) of [0x{{.*}}, 0x{{.*}}), 20 bytes:
// CHECK-VERBOSE: 0x{{.*}}: ..000000 0000ffff 00000000 00000000
// CHECK-VERBOSE: 0x{{.*}}: 00000000 00...... ........ ........
return 0;
}
-// CHECK: Shadow map of [0x{{.*}}, 0x{{.*}}), 1 bytes:
+// CHECK: Shadow map [0x{{.*}}, 0x{{.*}}) of [0x{{.*}}, 0x{{.*}}), 1 bytes:
// CHECK-NO-ORIGINS: 0x{{.*}}: ff...... ........ ........ ........
// CHECK-ORIGINS: 0x{{.*}}: ff...... ........ ........ ........ |A . . .|
// CHECK-ORIGINS: Origin A (origin_id {{.*}}):
-// CHECK: Shadow map of [0x{{.*}}, 0x{{.*}}), 1 bytes:
+// CHECK: Shadow map [0x{{.*}}, 0x{{.*}}) of [0x{{.*}}, 0x{{.*}}), 1 bytes:
// CHECK-NO-ORIGINS: 0x{{.*}}: ..ff.... ........ ........ ........
// CHECK-ORIGINS: 0x{{.*}}: ..ff.... ........ ........ ........ |A . . .|
// CHECK-ORIGINS: Origin A (origin_id {{.*}}):
-// CHECK: Shadow map of [0x{{.*}}, 0x{{.*}}), 1 bytes:
+// CHECK: Shadow map [0x{{.*}}, 0x{{.*}}) of [0x{{.*}}, 0x{{.*}}), 1 bytes:
// CHECK-NO-ORIGINS: 0x{{.*}}: ......ff ........ ........ ........
// CHECK-ORIGINS: 0x{{.*}}: ......ff ........ ........ ........ |A . . .|
// CHECK-ORIGINS: Origin A (origin_id {{.*}}):
-// CHECK: Shadow map of [0x{{.*}}, 0x{{.*}}), 1 bytes:
+// CHECK: Shadow map [0x{{.*}}, 0x{{.*}}) of [0x{{.*}}, 0x{{.*}}), 1 bytes:
// CHECK-NO-ORIGINS: 0x{{.*}}: ......ff ........ ........ ........
// CHECK-ORIGINS: 0x{{.*}}: ......ff ........ ........ ........ |A . . .|
// CHECK-ORIGINS: Origin A (origin_id {{.*}}):
-// CHECK: Shadow map of [0x{{.*}}, 0x{{.*}}), 0 bytes:
+// CHECK: Shadow map [0x{{.*}}, 0x{{.*}}) of [0x{{.*}}, 0x{{.*}}), 0 bytes:
-// CHECK: Shadow map of [0x{{.*}}, 0x{{.*}}), 3 bytes:
+// CHECK: Shadow map [0x{{.*}}, 0x{{.*}}) of [0x{{.*}}, 0x{{.*}}), 3 bytes:
// CHECK-NO-ORIGINS: 0x{{.*}}: 000000.. ........ ........ ........
// CHECK-ORIGINS: 0x{{.*}}: 000000.. ........ ........ ........ |. . . .|