Update of bug #52335 (project groff):

                  Status:                    None => Need Info              

    _______________________________________________________

Follow-up Comment #3:

The following quiets the sized-deallocation warning, but the most obvious
solution (to me) causes a different warning.

Comments welcome.


diff --git a/src/libs/libgroff/new.cpp b/src/libs/libgroff/new.cpp
index 7a1a4730..dc2580f4 100644
--- a/src/libs/libgroff/new.cpp
+++ b/src/libs/libgroff/new.cpp
@@ -67,3 +67,22 @@ void operator delete(void *p)
     free(p);
 #endif /* COOKIE_BUG */
 }
+
+void operator delete(void *p,
+                    __attribute__((__unused__)) long unsigned int size)
+{
+  // It's ugly to duplicate the code from delete(void *) above, but if
+  // we don't, g++ 6.3 can't figure out we're calling through it to
+  // free().
+  //
+  // In function 'void operator delete(void*, long unsigned int)':
+  //   warning: deleting 'void*' is undefined [-Wdelete-incomplete]
+  //delete p;
+#ifdef COOKIE_BUG
+  if (p)
+    free((void *)((char *)p - 8));
+#else
+  if (p)
+    free(p);
+#endif /* COOKIE_BUG */
+}


    _______________________________________________________

Reply to this item at:

  <http://savannah.gnu.org/bugs/?52335>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.gnu.org/


_______________________________________________
bug-groff mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/bug-groff

Reply via email to