]> git.ipfire.org Git - people/ms/gcc.git/commitdiff
gccrs: fix some clang warnings
authorMarc Poulhiès <dkm@kataplop.net>
Sat, 17 Dec 2022 15:23:05 +0000 (16:23 +0100)
committerPhilip Herron <philip.herron@embecosm.com>
Fri, 10 Mar 2023 12:45:46 +0000 (12:45 +0000)
This fixes some extra warnings reported by clang.

gcc/rust/ChangeLog:
PR rust/108111
* ast/rust-ast-full-decls.h (StructPatternElements): Declare as a
class.
* ast/rust-item.h (EnumItem): Mark several method as being
overrides.
* ast/rust-pattern.h (StructPattern::get_locus): Add override.
* lex/rust-lex.h (BufferInputSource): Use reference_wrapper
instead of bare reference.
(TokenSource::get): Add method to implement the reference_wrapper
interface.
* typecheck/rust-tyty.h (TypeBoundPredicate): Add empty dtor.
* util/rust-buffered-queue.h (peek): Source token stream is now
using a reference_wrapper, use .get()

Signed-off-by: Marc Poulhiès <dkm@kataplop.net>
gcc/rust/ast/rust-ast-full-decls.h
gcc/rust/ast/rust-item.h
gcc/rust/ast/rust-pattern.h
gcc/rust/lex/rust-lex.h
gcc/rust/typecheck/rust-tyty.h
gcc/rust/util/rust-buffered-queue.h

index eafc82f482037aa3039e4b5d42d4541ccc93f3b0..fee174b5cf6abc3944145ff83d189b5849a8b515 100644 (file)
@@ -240,7 +240,7 @@ class StructPatternField;
 class StructPatternFieldTuplePat;
 class StructPatternFieldIdentPat;
 class StructPatternFieldIdent;
-struct StructPatternElements;
+class StructPatternElements;
 class StructPattern;
 class TupleStructItems;
 class TupleStructItemsNoRange;
index 065ca1ed58acbb386c24946bfc6eba6695a06d56..2646c526503ceeced80456ea21e7a3ae34f9d455 100644 (file)
@@ -2210,18 +2210,18 @@ public:
     return std::unique_ptr<EnumItem> (clone_item_impl ());
   }
 
-  virtual std::string as_string () const;
+  virtual std::string as_string () const override;
 
   // not pure virtual as not abstract
-  virtual void accept_vis (ASTVisitor &vis);
+  virtual void accept_vis (ASTVisitor &vis) override;
 
-  Location get_locus () const { return locus; }
+  Location get_locus () const override { return locus; }
 
   Identifier get_identifier () const { return variant_name; }
 
   // Based on idea that name is never empty.
-  void mark_for_strip () { variant_name = ""; }
-  bool is_marked_for_strip () const { return variant_name.empty (); }
+  void mark_for_strip () override { variant_name = ""; }
+  bool is_marked_for_strip () const override { return variant_name.empty (); }
 
 protected:
   EnumItem *clone_item_impl () const override { return new EnumItem (*this); }
index 0cc8425264063b779e659d2da03a50cd3ec12620..079c7a9eae4d8bb11eaff43821d908a1c307b0d2 100644 (file)
@@ -919,7 +919,7 @@ public:
    * is empty). */
   bool has_struct_pattern_elems () const { return !elems.is_empty (); }
 
-  Location get_locus () const { return path.get_locus (); }
+  Location get_locus () const override { return path.get_locus (); }
 
   void accept_vis (ASTVisitor &vis) override;
 
index 50424713df9a090ff0ee1e548188d2139eff9f6c..14008397154a5f4f4595b5a2eca344ac0ff52a8e 100644 (file)
@@ -277,7 +277,7 @@ private:
   // InputSource input_source;
   // Input file queue.
   std::unique_ptr<InputSource> raw_input_source;
-  buffered_queue<int, InputSource &> input_queue;
+  buffered_queue<int, std::reference_wrapper<InputSource>> input_queue;
 
   // Token source wrapper thing.
   struct TokenSource
@@ -288,6 +288,9 @@ private:
     // Create a new TokenSource with given lexer.
     TokenSource (Lexer *parLexer) : lexer (parLexer) {}
 
+    // Used to mimic std::reference_wrapper that is used for InputSource.
+    TokenSource &get () { return *this; }
+
     // Overload operator () to build token in lexer.
     TokenPtr next () { return lexer->build_token (); }
   };
index b729437f73dcf00f7ba7dc5276f4d56cc30af795..7cd8673ea731e4ceef51c379bb26d74cf5375dc2 100644 (file)
@@ -387,6 +387,8 @@ public:
 
   TypeBoundPredicate (const TypeBoundPredicate &other);
 
+  virtual ~TypeBoundPredicate (){};
+
   TypeBoundPredicate &operator= (const TypeBoundPredicate &other);
 
   static TypeBoundPredicate error ();
index 20dd768ced3be9f16ab04849e14ea9b82270b709..c3c30c664c02ef54ccb79ec75d7261a333c2976e 100644 (file)
@@ -102,7 +102,7 @@ public:
        /* iterate through buffer and invoke operator () on source on values
         * past original end */
        for (int i = 0; i < num_items_to_read; i++)
-         buffer[end + i] = source.next ();
+         buffer[end + i] = source.get ().next ();
 
        // move end based on additional items added
        end += num_items_to_read;