Cherry pick libsanitizer patch (https://reviews.llvm.org/D54856).
authorMartin Liska <mliska@suse.cz>
Thu, 27 Dec 2018 09:47:20 +0000 (10:47 +0100)
committerMartin Liska <marxin@gcc.gnu.org>
Thu, 27 Dec 2018 09:47:20 +0000 (09:47 +0000)
2018-12-27  Martin Liska  <mliska@suse.cz>

  PR sanitizer/86229
* asan/asan_errors.cc (ErrorAllocTypeMismatch::Print): Cherry
pick rL350085.
* asan/asan_errors.h (struct ErrorAllocTypeMismatch): Likewise.

From-SVN: r267432

libsanitizer/ChangeLog
libsanitizer/asan/asan_errors.cc
libsanitizer/asan/asan_errors.h

index c9e36bf8ef3a3958e75fda2be3874d39845af1ca..aa34be55cbcbc4f42927e96412603e294dca456b 100644 (file)
@@ -1,3 +1,10 @@
+2018-12-27  Martin Liska  <mliska@suse.cz>
+
+  PR sanitizer/86229
+       * asan/asan_errors.cc (ErrorAllocTypeMismatch::Print): Cherry
+       pick rL350085.
+       * asan/asan_errors.h (struct ErrorAllocTypeMismatch): Likewise.
+
 2018-11-09  Martin Liska  <mliska@suse.cz>
 
        * LOCAL_PATCHES: Include one local patch.
index b9d02a74a0dbc66965b9844105ae8d7ac34402b6..65941f65bf835aec665792e6288ad1fbaece7287 100644 (file)
@@ -123,9 +123,8 @@ void ErrorAllocTypeMismatch::Print() {
   Decorator d;
   Printf("%s", d.Error());
   Report("ERROR: AddressSanitizer: %s (%s vs %s) on %p\n",
-         scariness.GetDescription(),
-         alloc_names[alloc_type], dealloc_names[dealloc_type],
-         addr_description.addr);
+         scariness.GetDescription(), alloc_names[alloc_type],
+         dealloc_names[dealloc_type], addr_description.Address());
   Printf("%s", d.Default());
   CHECK_GT(dealloc_stack->size, 0);
   scariness.Print();
index 5ed15dc9817b4ca26a0e0cf9501bf59d1c721900..b155f2452af933b2f64dcdf38ecf245050ec8312 100644 (file)
@@ -108,8 +108,8 @@ struct ErrorFreeNotMalloced : ErrorBase {
 
 struct ErrorAllocTypeMismatch : ErrorBase {
   const BufferedStackTrace *dealloc_stack;
-  HeapAddressDescription addr_description;
   AllocType alloc_type, dealloc_type;
+  AddressDescription addr_description;
 
   ErrorAllocTypeMismatch() = default;  // (*)
   ErrorAllocTypeMismatch(u32 tid, BufferedStackTrace *stack, uptr addr,
@@ -117,9 +117,8 @@ struct ErrorAllocTypeMismatch : ErrorBase {
       : ErrorBase(tid, 10, "alloc-dealloc-mismatch"),
         dealloc_stack(stack),
         alloc_type(alloc_type_),
-        dealloc_type(dealloc_type_) {
-    GetHeapAddressInformation(addr, 1, &addr_description);
-  };
+        dealloc_type(dealloc_type_),
+        addr_description(addr, 1, false) {}
   void Print();
 };