[gcc r14-7490] gccrs: libproc_macro: Drop function shall take a mutable

Arthur Cohen cohenarthur@gcc.gnu.org
Tue Jan 16 17:38:25 GMT 2024


https://gcc.gnu.org/g:a2605b5a49d109370a21ba57c545cecc8cd9694d

commit r14-7490-ga2605b5a49d109370a21ba57c545cecc8cd9694d
Author: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
Date:   Fri Apr 7 13:52:04 2023 +0200

    gccrs: libproc_macro: Drop function shall take a mutable
    
    The rust API requires a mut reference, hence having a mutable pointer
    seems to match better. Furthermore the implementation is now modifying
    the struct in order to set the size to 0 instead of simply freeing the
    data, this will allow us to easily identify mistaken manual call to this
    function.
    
    libgrust/ChangeLog:
    
            * libproc_macro/rust/bridge/literal.rs: Make the
            pointer mutable.
    
    Signed-off-by: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>

Diff:
---
 libgrust/libproc_macro/rust/bridge/literal.rs | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libgrust/libproc_macro/rust/bridge/literal.rs b/libgrust/libproc_macro/rust/bridge/literal.rs
index 080cc1b21d8..740ed1fccac 100644
--- a/libgrust/libproc_macro/rust/bridge/literal.rs
+++ b/libgrust/libproc_macro/rust/bridge/literal.rs
@@ -6,7 +6,7 @@ use std::str::FromStr;
 use LexError;
 
 extern "C" {
-    fn Literal__drop(literal: *const Literal);
+    fn Literal__drop(literal: *mut Literal);
     fn Literal__string(str: *const c_uchar, len: u64) -> Literal;
     fn Literal__byte_string(bytes: *const u8, len: u64) -> Literal;
     fn Literal__from_string(str: *const c_uchar, len: u64, lit: *mut Literal) -> bool;
@@ -230,7 +230,7 @@ impl Drop for Literal {
     fn drop(&mut self) {
         match self {
             Literal::String { .. } | Literal::ByteString { .. } => unsafe {
-                Literal__drop(self as *const Literal)
+                Literal__drop(self as *mut Literal)
             },
             _ => (),
         }


More information about the Gcc-cvs mailing list