diff --git a/libstdc++-v3/include/bits/shared_ptr_atomic.h b/libstdc++-v3/include/bits/shared_ptr_atomic.h
index 3f921d311d6..b56b8153a89 100644
--- a/libstdc++-v3/include/bits/shared_ptr_atomic.h
+++ b/libstdc++-v3/include/bits/shared_ptr_atomic.h
@@ -358,7 +358,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 #if __cplusplus >= 202002L
 # define __cpp_lib_atomic_shared_ptr 201711L
   template<typename _Tp>
-    class atomic;
+    struct atomic;
 
   /**
    * @addtogroup pointer_abstractions
@@ -376,7 +376,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     {
       using value_type = _Tp;
 
-      friend class atomic<_Tp>;
+      friend struct atomic<_Tp>;
 
       // An atomic version of __shared_count<> and __weak_count<>.
       // Stores a _Sp_counted_base<>* but uses the LSB as a lock.
@@ -610,7 +610,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     };
 
   template<typename _Tp>
-    class atomic<shared_ptr<_Tp>>
+    struct atomic<shared_ptr<_Tp>>
     {
     public:
       using value_type = shared_ptr<_Tp>;
@@ -733,7 +733,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     };
 
   template<typename _Tp>
-    class atomic<weak_ptr<_Tp>>
+    struct atomic<weak_ptr<_Tp>>
     {
     public:
       using value_type = weak_ptr<_Tp>;
diff --git a/libstdc++-v3/include/bits/stl_tree.h b/libstdc++-v3/include/bits/stl_tree.h
index 3c331fbc952..f870f3dfa53 100644
--- a/libstdc++-v3/include/bits/stl_tree.h
+++ b/libstdc++-v3/include/bits/stl_tree.h
@@ -1554,7 +1554,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	  = _Rb_tree<_Key, _Val, _KeyOfValue, _Compare2, _Alloc>;
 
       template<typename, typename>
-	friend class _Rb_tree_merge_helper;
+	friend struct _Rb_tree_merge_helper;
 
       /// Merge from a compatible container into one with unique keys.
       template<typename _Compare2>
diff --git a/libstdc++-v3/include/std/chrono b/libstdc++-v3/include/std/chrono
index 9b160488afa..e63d6c71b4a 100644
--- a/libstdc++-v3/include/std/chrono
+++ b/libstdc++-v3/include/std/chrono
@@ -2792,7 +2792,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
     private:
       friend const tzdb& reload_tzdb();
-      friend class tzdb_list::_Node;
+      friend struct tzdb_list::_Node;
 
       explicit time_zone_link(nullptr_t) { }
 
@@ -2896,7 +2896,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     private:
       explicit leap_second(seconds::rep __s) : _M_s(__s) { }
 
-      friend class tzdb_list::_Node;
+      friend struct tzdb_list::_Node;
 
       friend const tzdb& reload_tzdb();
 
@@ -2937,7 +2937,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     private:
       friend const tzdb& reload_tzdb();
       friend class time_zone;
-      friend class tzdb_list::_Node;
+      friend struct tzdb_list::_Node;
     };
 
     tzdb_list& get_tzdb_list();
diff --git a/libstdc++-v3/include/std/future b/libstdc++-v3/include/std/future
index b94ae0b679b..c46ead742c3 100644
--- a/libstdc++-v3/include/std/future
+++ b/libstdc++-v3/include/std/future
@@ -625,10 +625,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       class _Async_state_impl;
 
     template<typename _Signature>
-      class _Task_state_base;
+      struct _Task_state_base;
 
     template<typename _Fn, typename _Alloc, typename _Signature>
-      class _Task_state;
+      struct _Task_state;
 
     template<typename _Res_ptr, typename _Fn,
 	     typename _Res = typename _Res_ptr::element_type::result_type>
diff --git a/libstdc++-v3/include/std/scoped_allocator b/libstdc++-v3/include/std/scoped_allocator
index cb15c8cc7dd..8af432ada42 100644
--- a/libstdc++-v3/include/std/scoped_allocator
+++ b/libstdc++-v3/include/std/scoped_allocator
@@ -164,7 +164,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       { return _M_inner == __other._M_inner; }
 
     private:
-      template<typename...> friend class __inner_type_impl;
+      template<typename...> friend struct __inner_type_impl;
       template<typename, typename...> friend class scoped_allocator_adaptor;
 
       __type _M_inner;
@@ -186,7 +186,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
         friend class scoped_allocator_adaptor;
 
       template<typename...>
-        friend class __inner_type_impl;
+	friend struct __inner_type_impl;
 
       tuple<const _OuterAlloc&, const _InnerAllocs&...>
       _M_tie() const noexcept
diff --git a/libstdc++-v3/include/std/valarray b/libstdc++-v3/include/std/valarray
index 6bd23e0914b..f172db6c623 100644
--- a/libstdc++-v3/include/std/valarray
+++ b/libstdc++-v3/include/std/valarray
@@ -62,22 +62,22 @@ namespace __detail
         template<class, class> class _Meta1,
         template<class, class> class _Meta2,
         class _Dom1, class _Dom2>
-    class _BinClos;
+    struct _BinClos;
 
   template<template<class, class> class _Meta, class _Dom>
-    class _SClos;
+    struct _SClos;
 
   template<template<class, class> class _Meta, class _Dom>
-    class _GClos;
+    struct _GClos;
 
   template<template<class, class> class _Meta, class _Dom>
-    class _IClos;
+    struct _IClos;
 
   template<template<class, class> class _Meta, class _Dom>
-    class _ValFunClos;
+    struct _ValFunClos;
 
   template<template<class, class> class _Meta, class _Dom>
-    class _RefFunClos;
+    struct _RefFunClos;
 } // namespace __detail
 
   using __detail::_UnClos;
