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

commit aa395781afdcf06cac36dec414e90c741ec5a00b
Author: jjasmine <tanghocle...@gmail.com>
Date:   Sat Mar 9 17:16:34 2024 -0500

    Store visibility properly in ExternalTypeItem
    
    Fix issue 2897
    
    gcc/rust/ChangeLog:
    
            * hir/rust-ast-lower-extern.h: Add translate_visiblity
            * hir/tree/rust-hir-item.h: Fix constructor of ExternalTypeItem

Diff:
---
 gcc/rust/hir/rust-ast-lower-extern.h | 4 +++-
 gcc/rust/hir/tree/rust-hir-item.h    | 4 ++--
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/gcc/rust/hir/rust-ast-lower-extern.h 
b/gcc/rust/hir/rust-ast-lower-extern.h
index e92acdc44a1f..bd889e244b01 100644
--- a/gcc/rust/hir/rust-ast-lower-extern.h
+++ b/gcc/rust/hir/rust-ast-lower-extern.h
@@ -133,8 +133,10 @@ public:
                                   mappings->get_next_hir_id (crate_num),
                                   mappings->get_next_localdef_id (crate_num));
 
+    HIR::Visibility vis = translate_visibility (type.get_visibility ());
+
     translated = new HIR::ExternalTypeItem (mapping, type.get_identifier (),
-                                           type.get_locus ());
+                                           vis, type.get_locus ());
   }
 
 private:
diff --git a/gcc/rust/hir/tree/rust-hir-item.h 
b/gcc/rust/hir/tree/rust-hir-item.h
index 3bd0102d4dcf..7e0c8c6ffca9 100644
--- a/gcc/rust/hir/tree/rust-hir-item.h
+++ b/gcc/rust/hir/tree/rust-hir-item.h
@@ -3154,9 +3154,9 @@ class ExternalTypeItem : public ExternalItem
 {
 public:
   ExternalTypeItem (Analysis::NodeMapping mappings, Identifier item_name,
-                   location_t locus)
+                   Visibility vis, location_t locus)
     : ExternalItem (std::move (mappings), std::move (item_name),
-                   Visibility (Visibility::PRIVATE),
+                   Visibility (std::move (vis)),
                    /* FIXME: Is that correct? */
                    {}, locus)
   {}

Reply via email to