[gcc r14-7507] gccrs: libproc_macro: Add drop function to Literal struct

Arthur Cohen cohenarthur@gcc.gnu.org
Tue Jan 16 17:39:54 GMT 2024


https://gcc.gnu.org/g:2fa0bbc3ee6551e1cf67408ef2ce7673177303e7

commit r14-7507-g2fa0bbc3ee6551e1cf67408ef2ce7673177303e7
Author: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
Date:   Wed Apr 12 17:56:36 2023 +0200

    gccrs: libproc_macro: Add drop function to Literal struct
    
    Add a drop function to clean internal fields of a Literal struct.
    
    libgrust/ChangeLog:
    
            * libproc_macro/literal.cc (Literal__drop): Replace
            implementation by a call to Literal::drop.
            (Literal::drop): Add drop implementation.
            * libproc_macro/literal.h: Add function prototype.
    
    Signed-off-by: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>

Diff:
---
 libgrust/libproc_macro/literal.cc | 11 +++++++++--
 libgrust/libproc_macro/literal.h  |  2 ++
 2 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/libgrust/libproc_macro/literal.cc b/libgrust/libproc_macro/literal.cc
index aad7090d7ab..221c57a0da5 100644
--- a/libgrust/libproc_macro/literal.cc
+++ b/libgrust/libproc_macro/literal.cc
@@ -25,10 +25,9 @@
 #include <cstdlib>
 
 namespace Literal {
-extern "C" {
 
 void
-Literal__drop (Literal *lit)
+Literal::drop (Literal *lit)
 {
   switch (lit->tag)
     {
@@ -51,6 +50,14 @@ Literal__drop (Literal *lit)
     }
 }
 
+extern "C" {
+
+void
+Literal__drop (Literal *lit)
+{
+  Literal::drop (lit);
+}
+
 Literal
 Literal__string (const unsigned char *str, std::uint64_t len)
 {
diff --git a/libgrust/libproc_macro/literal.h b/libgrust/libproc_macro/literal.h
index b7894222105..2c61231e8b2 100644
--- a/libgrust/libproc_macro/literal.h
+++ b/libgrust/libproc_macro/literal.h
@@ -188,6 +188,8 @@ public:
 
   static Literal make_unsigned (UnsignedSuffixPayload p);
   static Literal make_signed (SignedSuffixPayload p);
+
+  static void drop (Literal *lit);
 };
 
 extern "C" {


More information about the Gcc-cvs mailing list