[poppler] fofi/FoFiIdentifier.cc fofi/FoFiTrueType.h fofi/FoFiType1C.h fofi/FoFiType1.h .gitlab-ci.yml glib/poppler-cached-file-loader.h glib/poppler-input-stream.h goo/JpegWriter.h goo/NetPBMWriter.h goo/PNGWriter.h goo/TiffWriter.h poppler/Annot.h poppler/CairoFontEngine.h poppler/CairoOutputDev.h poppler/CurlCachedFile.h poppler/DCTStream.h poppler/Decrypt.h poppler/FlateEncoder.h poppler/Form.h poppler/Function.h poppler/GfxFont.h poppler/GfxState.h poppler/JBIG2Stream.cc poppler/JBIG2Stream.h poppler/JPEG2000Stream.h poppler/Link.h poppler/MarkedContentOutputDev.h poppler/PreScanOutputDev.h poppler/PSOutputDev.cc poppler/PSOutputDev.h poppler/SecurityHandler.h poppler/SplashOutputDev.cc poppler/SplashOutputDev.h poppler/Stream.h poppler/TextOutputDev.cc poppler/TextOutputDev.h qt5/demos qt5/src qt5/tests splash/SplashFTFontFile.h splash/SplashFTFont.h splash/SplashPattern.h test/gtk-test.cc utils/HtmlOutputDev.h utils/ImageOutputDev.h utils/pdftohtml.cc

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Dec 2 18:43:20 UTC 2019


 .gitlab-ci.yml                               |    2 -
 fofi/FoFiIdentifier.cc                       |    6 +--
 fofi/FoFiTrueType.h                          |    2 -
 fofi/FoFiType1.h                             |    2 -
 fofi/FoFiType1C.h                            |    2 -
 glib/poppler-cached-file-loader.h            |    2 -
 glib/poppler-input-stream.h                  |    2 -
 goo/JpegWriter.h                             |    2 -
 goo/NetPBMWriter.h                           |    2 -
 goo/PNGWriter.h                              |    2 -
 goo/TiffWriter.h                             |    2 -
 poppler/Annot.h                              |   38 +++++++++++-----------
 poppler/CairoFontEngine.h                    |    4 +-
 poppler/CairoOutputDev.h                     |    4 +-
 poppler/CurlCachedFile.h                     |    2 -
 poppler/DCTStream.h                          |    2 -
 poppler/Decrypt.h                            |    6 +--
 poppler/FlateEncoder.h                       |    2 -
 poppler/Form.h                               |   12 +++----
 poppler/Function.h                           |   10 ++---
 poppler/GfxFont.h                            |    4 +-
 poppler/GfxState.h                           |   38 +++++++++++-----------
 poppler/JBIG2Stream.cc                       |    8 ++--
 poppler/JBIG2Stream.h                        |    2 -
 poppler/JPEG2000Stream.h                     |    2 -
 poppler/Link.h                               |   24 +++++++-------
 poppler/MarkedContentOutputDev.h             |    2 -
 poppler/PSOutputDev.cc                       |    2 -
 poppler/PSOutputDev.h                        |    2 -
 poppler/PreScanOutputDev.h                   |    2 -
 poppler/SecurityHandler.h                    |    2 -
 poppler/SplashOutputDev.cc                   |    2 -
 poppler/SplashOutputDev.h                    |   12 +++----
 poppler/Stream.h                             |   46 +++++++++++++--------------
 poppler/TextOutputDev.cc                     |    6 +--
 poppler/TextOutputDev.h                      |    2 -
 qt5/demos/abstractinfodock.h                 |    2 -
 qt5/demos/embeddedfiles.h                    |    2 -
 qt5/demos/fonts.h                            |    2 -
 qt5/demos/info.h                             |    2 -
 qt5/demos/metadata.h                         |    2 -
 qt5/demos/navigationtoolbar.h                |    2 -
 qt5/demos/optcontent.h                       |    2 -
 qt5/demos/pageview.h                         |    2 -
 qt5/demos/permissions.h                      |    2 -
 qt5/demos/thumbnails.h                       |    2 -
 qt5/demos/toc.cpp                            |    2 -
 qt5/demos/toc.h                              |    2 -
 qt5/demos/viewer.h                           |    2 -
 qt5/src/ArthurOutputDev.h                    |    2 -
 qt5/src/poppler-annotation.cc                |   12 +++----
 qt5/src/poppler-annotation.h                 |   28 ++++++++--------
 qt5/src/poppler-form.h                       |    8 ++--
 qt5/src/poppler-link-extractor-private.h     |    2 -
 qt5/src/poppler-link.cc                      |    4 +-
 qt5/src/poppler-link.h                       |   20 +++++------
 qt5/src/poppler-optcontent.h                 |    2 -
 qt5/src/poppler-qiodeviceoutstream-private.h |    2 -
 qt5/src/poppler-qt5.h                        |    4 +-
 qt5/tests/test-password-qt5.cpp              |    2 -
 qt5/tests/test-poppler-qt5.cpp               |    2 -
 splash/SplashFTFont.h                        |    2 -
 splash/SplashFTFontFile.h                    |    2 -
 splash/SplashPattern.h                       |    2 -
 test/gtk-test.cc                             |    2 -
 utils/HtmlOutputDev.h                        |    2 -
 utils/ImageOutputDev.h                       |    2 -
 utils/pdftohtml.cc                           |    2 -
 68 files changed, 195 insertions(+), 195 deletions(-)

New commits:
commit 53a4fbbbbbcb5d2a48a140b70af9d3177ebe02c2
Author: Albert Astals Cid <aacid at kde.org>
Date:   Mon Dec 2 19:36:51 2019 +0100

    Enable modernize-use-override
    
    not claiming copyright for this since it's a mechanical change

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index edbeff67..dcd63b19 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -40,7 +40,7 @@ build_clang_libcpp:
   script:
     - git clone --branch ${CI_COMMIT_REF_NAME} --depth 1 ${TEST_DATA_URL} test-data || git clone --depth 1 ${UPSTREAM_TEST_DATA_URL} test-data
     - mkdir -p build && cd build
-    - CC=clang CXX=clang++ cmake -G Ninja -DCMAKE_CXX_FLAGS=-stdlib=libc++ -DTESTDATADIR=$PWD/../test-data -DCMAKE_CXX_CLANG_TIDY="clang-tidy;-header-filter=.;-checks=-*,performance-*,,bugprone-*,readability-inconsistent-declaration-parameter-name,readability-string-compare,modernize-deprecated-headers,modernize-make-unique,modernize-make-shared,-bugprone-narrowing-conversions,-bugprone-macro-parentheses,-bugprone-suspicious-string-compare,-bugprone-incorrect-roundings,-bugprone-undefined-memory-manipulation;-warnings-as-errors=*" ..
+    - CC=clang CXX=clang++ cmake -G Ninja -DCMAKE_CXX_FLAGS=-stdlib=libc++ -DTESTDATADIR=$PWD/../test-data -DCMAKE_CXX_CLANG_TIDY="clang-tidy;-header-filter=.;-checks=-*,performance-*,,bugprone-*,readability-inconsistent-declaration-parameter-name,readability-string-compare,modernize-deprecated-headers,modernize-make-unique,modernize-make-shared,modernize-use-override,-bugprone-narrowing-conversions,-bugprone-macro-parentheses,-bugprone-suspicious-string-compare,-bugprone-incorrect-roundings,-bugprone-undefined-memory-manipulation;-warnings-as-errors=*" ..
     - ninja
     - ctest --output-on-failure
 
diff --git a/fofi/FoFiIdentifier.cc b/fofi/FoFiIdentifier.cc
index 4f5e8ce7..d70d3cae 100644
--- a/fofi/FoFiIdentifier.cc
+++ b/fofi/FoFiIdentifier.cc
@@ -72,7 +72,7 @@ class MemReader: public Reader {
 public:
 
   static MemReader *make(const char *bufA, int lenA);
-  ~MemReader();
+  ~MemReader() override;
   int getByte(int pos) override;
   bool getU16BE(int pos, int *val) override;
   bool getU32BE(int pos, unsigned int *val) override;
@@ -167,7 +167,7 @@ class FileReader: public Reader {
 public:
 
   static FileReader *make(const char *fileName);
-  ~FileReader();
+  ~FileReader() override;
   int getByte(int pos) override;
   bool getU16BE(int pos, int *val) override;
   bool getU32BE(int pos, unsigned int *val) override;
@@ -290,7 +290,7 @@ class StreamReader: public Reader {
 public:
 
   static StreamReader *make(int (*getCharA)(void *data), void *dataA);
-  ~StreamReader();
+  ~StreamReader() override;
   int getByte(int pos) override;
   bool getU16BE(int pos, int *val) override;
   bool getU32BE(int pos, unsigned int *val) override;
diff --git a/fofi/FoFiTrueType.h b/fofi/FoFiTrueType.h
index c14a831b..d3246be2 100644
--- a/fofi/FoFiTrueType.h
+++ b/fofi/FoFiTrueType.h
@@ -50,7 +50,7 @@ public:
   // Create a FoFiTrueType object from a file on disk.
   static FoFiTrueType *load(const char *fileName, int faceIndexA=0);
 
-  ~FoFiTrueType();
+  ~FoFiTrueType() override;
 
   // Returns true if this an OpenType font containing CFF data, false
   // if it's a TrueType font (or OpenType font with TrueType data).
diff --git a/fofi/FoFiType1.h b/fofi/FoFiType1.h
index b8d3a439..b541d4fb 100644
--- a/fofi/FoFiType1.h
+++ b/fofi/FoFiType1.h
@@ -38,7 +38,7 @@ public:
   // Create a FoFiType1 object from a file on disk.
   static FoFiType1 *load(const char *fileName);
 
-  ~FoFiType1();
+  ~FoFiType1() override;
 
   // Return the font name.
   const char *getName();
diff --git a/fofi/FoFiType1C.h b/fofi/FoFiType1C.h
index ff69651a..5449dcd0 100644
--- a/fofi/FoFiType1C.h
+++ b/fofi/FoFiType1C.h
@@ -149,7 +149,7 @@ public:
   // Create a FoFiType1C object from a file on disk.
   static FoFiType1C *load(const char *fileName);
 
-  virtual ~FoFiType1C();
+  ~FoFiType1C() override;
 
   // Return the font name.
   const char *getName() const;
diff --git a/glib/poppler-cached-file-loader.h b/glib/poppler-cached-file-loader.h
index 4eb26db3..b1eceb5a 100644
--- a/glib/poppler-cached-file-loader.h
+++ b/glib/poppler-cached-file-loader.h
@@ -27,7 +27,7 @@
 class PopplerCachedFileLoader: public CachedFileLoader {
 public:
   PopplerCachedFileLoader(GInputStream* inputStreamA, GCancellable *cancellableA, goffset lengthA = -1);
-  ~PopplerCachedFileLoader();
+  ~PopplerCachedFileLoader() override;
   size_t init(GooString *url, CachedFile* cachedFile) override;
   int load(const std::vector<ByteRange> &ranges, CachedFileWriter *writer) override;
 
diff --git a/glib/poppler-input-stream.h b/glib/poppler-input-stream.h
index 7484e516..799d752e 100644
--- a/glib/poppler-input-stream.h
+++ b/glib/poppler-input-stream.h
@@ -33,7 +33,7 @@ public:
 
   PopplerInputStream(GInputStream *inputStream, GCancellable *cancellableA,
                      Goffset startA, bool limitedA, Goffset lengthA, Object &&dictA);
-  ~PopplerInputStream();
+  ~PopplerInputStream() override;
   BaseStream *copy() override;
   Stream *makeSubStream(Goffset start, bool limited,
                         Goffset lengthA, Object &&dictA) override;
diff --git a/goo/JpegWriter.h b/goo/JpegWriter.h
index 40de0ec2..b2ce2541 100644
--- a/goo/JpegWriter.h
+++ b/goo/JpegWriter.h
@@ -38,7 +38,7 @@ public:
 
   JpegWriter(int quality, bool progressive, Format format = RGB);
   JpegWriter(Format format = RGB);
-  ~JpegWriter();
+  ~JpegWriter() override;
 
   void setQuality(int quality);
   void setProgressive(bool progressive);
diff --git a/goo/NetPBMWriter.h b/goo/NetPBMWriter.h
index ffdd7e17..36000839 100644
--- a/goo/NetPBMWriter.h
+++ b/goo/NetPBMWriter.h
@@ -34,7 +34,7 @@ public:
   enum Format { RGB, MONOCHROME };
 
   NetPBMWriter(Format formatA = RGB);
-  ~NetPBMWriter() {};
+  ~NetPBMWriter() override {};
 
   bool init(FILE *f, int width, int height, int hDPI, int vDPI) override;
 
diff --git a/goo/PNGWriter.h b/goo/PNGWriter.h
index 93f54369..0e0153e3 100644
--- a/goo/PNGWriter.h
+++ b/goo/PNGWriter.h
@@ -37,7 +37,7 @@ public:
   enum Format { RGB, RGBA, GRAY, MONOCHROME, RGB48 };
 
   PNGWriter(Format format = RGB);
-  ~PNGWriter();
+  ~PNGWriter() override;
 
   void setICCProfile(const char *name, unsigned char *data, int size);
   void setSRGBProfile();
diff --git a/goo/TiffWriter.h b/goo/TiffWriter.h
index 9126e884..b0f5ae5b 100644
--- a/goo/TiffWriter.h
+++ b/goo/TiffWriter.h
@@ -36,7 +36,7 @@ public:
   enum Format { RGB, RGBA_PREMULTIPLIED, GRAY, MONOCHROME, CMYK, RGB48 };
 
   TiffWriter(Format format = RGB);
-  ~TiffWriter();
+  ~TiffWriter() override;
 
   void setCompressionString(const char *compressionStringArg);
 
diff --git a/poppler/Annot.h b/poppler/Annot.h
index 9014f7ac..2f0a8290 100644
--- a/poppler/Annot.h
+++ b/poppler/Annot.h
@@ -784,7 +784,7 @@ class AnnotPopup: public Annot {
 public:
   AnnotPopup(PDFDoc *docA, PDFRectangle *rect);
   AnnotPopup(PDFDoc *docA, Object &&dictObject, const Object *obj);
-  ~AnnotPopup();
+  ~AnnotPopup() override;
 
   bool hasParent() const { return parentRef != Ref::INVALID(); }
   void setParent(Annot *parentA);
@@ -811,7 +811,7 @@ public:
 
   AnnotMarkup(PDFDoc *docA, PDFRectangle *rect);
   AnnotMarkup(PDFDoc *docA, Object &&dictObject, const Object *obj);
-  ~AnnotMarkup();
+  ~AnnotMarkup() override;
 
   // getters
   const GooString *getLabel() const { return label.get(); }
@@ -872,7 +872,7 @@ public:
 
   AnnotText(PDFDoc *docA, PDFRectangle *rect);
   AnnotText(PDFDoc *docA, Object &&dictObject, const Object *obj);
-  ~AnnotText();
+  ~AnnotText() override;
 
   void draw(Gfx *gfx, bool printing) override;
 
@@ -905,7 +905,7 @@ class AnnotMovie: public Annot {
  public:
   AnnotMovie(PDFDoc *docA, PDFRectangle *rect, Movie *movieA);
   AnnotMovie(PDFDoc *docA, Object &&dictObject, const Object *obj);
-  ~AnnotMovie();
+  ~AnnotMovie() override;
 
   void draw(Gfx *gfx, bool printing) override;
 
@@ -929,7 +929,7 @@ class AnnotScreen: public Annot {
 
   AnnotScreen(PDFDoc *docA, PDFRectangle *rect);
   AnnotScreen(PDFDoc *docA, Object &&dictObject, const Object *obj);
-  ~AnnotScreen();
+  ~AnnotScreen() override;
 
   const GooString* getTitle() const { return title.get(); }
 
@@ -965,7 +965,7 @@ public:
 
   AnnotLink(PDFDoc *docA, PDFRectangle *rect);
   AnnotLink(PDFDoc *docA, Object &&dictObject, const Object *obj);
-  ~AnnotLink();
+  ~AnnotLink() override;
 
   void draw(Gfx *gfx, bool printing) override;
 
@@ -1008,7 +1008,7 @@ public:
 
   AnnotFreeText(PDFDoc *docA, PDFRectangle *rect, const DefaultAppearance &da);
   AnnotFreeText(PDFDoc *docA, Object &&dictObject, const Object *obj);
-  ~AnnotFreeText();
+  ~AnnotFreeText() override;
 
   void draw(Gfx *gfx, bool printing) override;
   Object getAppearanceResDict() override;
@@ -1071,7 +1071,7 @@ public:
 
   AnnotLine(PDFDoc *docA, PDFRectangle *rect);
   AnnotLine(PDFDoc *docA, Object &&dictObject, const Object *obj);
-  ~AnnotLine();
+  ~AnnotLine() override;
 
   void draw(Gfx *gfx, bool printing) override;
   Object getAppearanceResDict() override;
@@ -1138,7 +1138,7 @@ public:
 
   AnnotTextMarkup(PDFDoc *docA, PDFRectangle *rect, AnnotSubtype subType);
   AnnotTextMarkup(PDFDoc *docA, Object &&dictObject, const Object *obj);
-  ~AnnotTextMarkup();
+  ~AnnotTextMarkup() override;
 
   void draw(Gfx *gfx, bool printing) override;
 
@@ -1165,7 +1165,7 @@ public:
 
   AnnotStamp(PDFDoc *docA, PDFRectangle *rect);
   AnnotStamp(PDFDoc *docA, Object &&dictObject, const Object *obj);
-  ~AnnotStamp();
+  ~AnnotStamp() override;
 
   void setIcon(GooString *new_icon);
 
@@ -1188,7 +1188,7 @@ public:
 
   AnnotGeometry(PDFDoc *docA, PDFRectangle *rect, AnnotSubtype subType);
   AnnotGeometry(PDFDoc *docA, Object &&dictObject, const Object *obj);
-  ~AnnotGeometry();
+  ~AnnotGeometry() override;
 
   void draw(Gfx *gfx, bool printing) override;
 
@@ -1224,7 +1224,7 @@ public:
 
   AnnotPolygon(PDFDoc *docA, PDFRectangle *rect, AnnotSubtype subType);
   AnnotPolygon(PDFDoc *docA, Object &&dictObject, const Object *obj);
-  ~AnnotPolygon();
+  ~AnnotPolygon() override;
 
   void draw(Gfx *gfx, bool printing) override;
   void generatePolyLineAppearance(AnnotAppearanceBuilder* appearBuilder);
@@ -1274,7 +1274,7 @@ public:
 
   AnnotCaret(PDFDoc *docA, PDFRectangle *rect);
   AnnotCaret(PDFDoc *docA, Object &&dictObject, const Object *obj);
-  ~AnnotCaret();
+  ~AnnotCaret() override;
 
   void setSymbol(AnnotCaretSymbol new_symbol);
 
@@ -1299,7 +1299,7 @@ public:
 
   AnnotInk(PDFDoc *docA, PDFRectangle *rect);
   AnnotInk(PDFDoc *docA, Object &&dictObject, const Object *obj);
-  ~AnnotInk();
+  ~AnnotInk() override;
 
   void draw(Gfx *gfx, bool printing) override;
 
@@ -1334,7 +1334,7 @@ public:
 
   AnnotFileAttachment(PDFDoc *docA, PDFRectangle *rect, GooString *filename);
   AnnotFileAttachment(PDFDoc *docA, Object &&dictObject, const Object *obj);
-  ~AnnotFileAttachment();
+  ~AnnotFileAttachment() override;
 
   void draw(Gfx *gfx, bool printing) override;
 
@@ -1362,7 +1362,7 @@ public:
 
   AnnotSound(PDFDoc *docA, PDFRectangle *rect, Sound *soundA);
   AnnotSound(PDFDoc *docA, Object &&dictObject, const Object *obj);
-  ~AnnotSound();
+  ~AnnotSound() override;
 
   void draw(Gfx *gfx, bool printing) override;
 
@@ -1397,7 +1397,7 @@ public:
 
   AnnotWidget(PDFDoc *docA, Object &&dictObject, const Object *obj);
   AnnotWidget(PDFDoc *docA, Object *dictObject, Object *obj, FormField *fieldA);
-  ~AnnotWidget();
+  ~AnnotWidget() override;
 
   void draw(Gfx *gfx, bool printing) override;
 
@@ -1478,7 +1478,7 @@ public:
 
   Annot3D(PDFDoc *docA, PDFRectangle *rect);
   Annot3D(PDFDoc *docA, Object &&dictObject, const Object *obj);
-  ~Annot3D();
+  ~Annot3D() override;
 
   // getters
 
@@ -1658,7 +1658,7 @@ public:
 
   AnnotRichMedia(PDFDoc *docA, PDFRectangle *rect);
   AnnotRichMedia(PDFDoc *docA, Object &&dictObject, const Object *obj);
-  ~AnnotRichMedia();
+  ~AnnotRichMedia() override;
 
   Content* getContent() const;
 
diff --git a/poppler/CairoFontEngine.h b/poppler/CairoFontEngine.h
index ecdb2f42..0a9ce8be 100644
--- a/poppler/CairoFontEngine.h
+++ b/poppler/CairoFontEngine.h
@@ -74,7 +74,7 @@ protected:
 class CairoFreeTypeFont : public CairoFont {
 public:
   static CairoFreeTypeFont *create(GfxFont *gfxFont, XRef *xref, FT_Library lib, bool useCIDs);
-  ~CairoFreeTypeFont();
+  ~CairoFreeTypeFont() override;
 
 private:
   CairoFreeTypeFont(Ref ref, cairo_font_face_t *cairo_font_face,
@@ -88,7 +88,7 @@ public:
   static CairoType3Font *create(GfxFont *gfxFont, PDFDoc *doc,
 				CairoFontEngine *fontEngine,
 				bool printing, XRef *xref);
-  ~CairoType3Font();
+  ~CairoType3Font() override;
 
   bool matches(Ref &other, bool printing) override;
 
diff --git a/poppler/CairoOutputDev.h b/poppler/CairoOutputDev.h
index 9e6f497c..9da5322b 100644
--- a/poppler/CairoOutputDev.h
+++ b/poppler/CairoOutputDev.h
@@ -91,7 +91,7 @@ public:
   CairoOutputDev();
 
   // Destructor.
-  virtual ~CairoOutputDev();
+  ~CairoOutputDev() override;
 
   //----- get info about output device
 
@@ -383,7 +383,7 @@ public:
   CairoImageOutputDev();
 
   // Destructor.
-  virtual ~CairoImageOutputDev();
+  ~CairoImageOutputDev() override;
 
   //----- get info about output device
 
diff --git a/poppler/CurlCachedFile.h b/poppler/CurlCachedFile.h
index 80e69727..2f9c91fb 100644
--- a/poppler/CurlCachedFile.h
+++ b/poppler/CurlCachedFile.h
@@ -24,7 +24,7 @@ class CurlCachedFileLoader : public CachedFileLoader {
 public:
 
   CurlCachedFileLoader();
-  ~CurlCachedFileLoader();
+  ~CurlCachedFileLoader() override;
   size_t init(GooString *url, CachedFile* cachedFile) override;
   int load(const std::vector<ByteRange> &ranges, CachedFileWriter *writer) override;
 
diff --git a/poppler/DCTStream.h b/poppler/DCTStream.h
index aa0a0231..0ba65f47 100644
--- a/poppler/DCTStream.h
+++ b/poppler/DCTStream.h
@@ -56,7 +56,7 @@ class DCTStream: public FilterStream {
 public:
 
   DCTStream(Stream *strA, int colorXformA, Dict *dict, int recursion);
-  ~DCTStream();
+  ~DCTStream() override;
   StreamKind getKind() const override { return strDCT; }
   void reset() override;
   int getChar() override;
diff --git a/poppler/Decrypt.h b/poppler/Decrypt.h
index ad68af83..d26d5c2c 100644
--- a/poppler/Decrypt.h
+++ b/poppler/Decrypt.h
@@ -100,7 +100,7 @@ public:
 
   BaseCryptStream(Stream *strA, const unsigned char *fileKey, CryptAlgorithm algoA,
                   int keyLength, Ref ref);
-  ~BaseCryptStream();
+  ~BaseCryptStream() override;
   StreamKind getKind() const override { return strCrypt; }
   void reset() override;
   int getChar() override;
@@ -134,7 +134,7 @@ public:
 
   EncryptStream(Stream *strA, const unsigned char *fileKey, CryptAlgorithm algoA,
                 int keyLength, Ref ref);
-  ~EncryptStream();
+  ~EncryptStream() override;
   void reset() override;
   int lookChar() override;
 };
@@ -144,7 +144,7 @@ public:
 
   DecryptStream(Stream *strA, const unsigned char *fileKey, CryptAlgorithm algoA,
                 int keyLength, Ref ref);
-  ~DecryptStream();
+  ~DecryptStream() override;
   void reset() override;
   int lookChar() override;
 };
diff --git a/poppler/FlateEncoder.h b/poppler/FlateEncoder.h
index 1e79c2cf..5a63e63c 100644
--- a/poppler/FlateEncoder.h
+++ b/poppler/FlateEncoder.h
@@ -41,7 +41,7 @@ class FlateEncoder: public FilterStream {
 public:
 
   FlateEncoder(Stream *strA);
-  ~FlateEncoder();
+  ~FlateEncoder() override;
   StreamKind getKind() const override { return strWeird; }
   void reset() override;
   int getChar() override
diff --git a/poppler/Form.h b/poppler/Form.h
index 3929f33a..5473c584 100644
--- a/poppler/Form.h
+++ b/poppler/Form.h
@@ -166,7 +166,7 @@ protected:
 class FormWidgetButton: public FormWidget {
 public:
   FormWidgetButton(PDFDoc *docA, Object *dictObj, unsigned num, Ref ref, FormField *p);
-  ~FormWidgetButton ();
+  ~FormWidgetButton () override;
 
   FormButtonType getButtonType() const;
   
@@ -223,7 +223,7 @@ protected:
 class FormWidgetChoice: public FormWidget {
 public:
   FormWidgetChoice(PDFDoc *docA, Object *dictObj, unsigned num, Ref ref, FormField *p);
-  ~FormWidgetChoice();
+  ~FormWidgetChoice() override;
 
   int getNumChoices() const;
   //return the display name of the i-th choice (UTF16BE)
@@ -386,7 +386,7 @@ public:
 
   void print(int indent) override;
 
-  ~FormFieldButton();
+  ~FormFieldButton() override;
 protected:
   void updateState(const char *state);
 
@@ -413,7 +413,7 @@ public:
   const GooString* getAppearanceContent () const { return internalContent ? internalContent : content; }
   void setContentCopy (const GooString* new_content);
   void setAppearanceContentCopy (const GooString* new_content);
-  ~FormFieldText();
+  ~FormFieldText() override;
 
   bool isMultiline () const { return multiline; }
   bool isPassword () const { return password; }
@@ -457,7 +457,7 @@ class FormFieldChoice: public FormField {
 public:
   FormFieldChoice(PDFDoc *docA, Object &&aobj, const Ref ref, FormField *parent, std::set<int> *usedParents);
 
-  ~FormFieldChoice();
+  ~FormFieldChoice() override;
 
   int getNumChoices() const { return numChoices; }
   const GooString* getChoice(int i) const { return choices ? choices[i].optionName : nullptr; }
@@ -528,7 +528,7 @@ public:
   // Use -1 for now as validationTime
   SignatureInfo *validateSignature(bool doVerifyCert, bool forceRevalidation, time_t validationTime);
 
-  ~FormFieldSignature();
+  ~FormFieldSignature() override;
   Object* getByteRange() { return &byte_range; }
   const GooString* getSignature() const { return signature; }
 
diff --git a/poppler/Function.h b/poppler/Function.h
index 7aaee936..e46d9830 100644
--- a/poppler/Function.h
+++ b/poppler/Function.h
@@ -106,7 +106,7 @@ class IdentityFunction: public Function {
 public:
 
   IdentityFunction();
-  ~IdentityFunction();
+  ~IdentityFunction() override;
   Function *copy() const override { return new IdentityFunction(); }
   int getType() const override { return -1; }
   void transform(const double *in, double *out) const override;
@@ -123,7 +123,7 @@ class SampledFunction: public Function {
 public:
 
   SampledFunction(Object *funcObj, Dict *dict);
-  ~SampledFunction();
+  ~SampledFunction() override;
   Function *copy() const override { return new SampledFunction(this); }
   int getType() const override { return 0; }
   void transform(const double *in, double *out) const override;
@@ -167,7 +167,7 @@ class ExponentialFunction: public Function {
 public:
 
   ExponentialFunction(Object *funcObj, Dict *dict);
-  ~ExponentialFunction();
+  ~ExponentialFunction() override;
   Function *copy() const override { return new ExponentialFunction(this); }
   int getType() const override { return 2; }
   void transform(const double *in, double *out) const override;
@@ -196,7 +196,7 @@ class StitchingFunction: public Function {
 public:
 
   StitchingFunction(Object *funcObj, Dict *dict, std::set<int> *usedParents);
-  ~StitchingFunction();
+  ~StitchingFunction() override;
   Function *copy() const override { return new StitchingFunction(this); }
   int getType() const override { return 3; }
   void transform(const double *in, double *out) const override;
@@ -228,7 +228,7 @@ class PostScriptFunction: public Function {
 public:
 
   PostScriptFunction(Object *funcObj, Dict *dict);
-  ~PostScriptFunction();
+  ~PostScriptFunction() override;
   Function *copy() const override { return new PostScriptFunction(this); }
   int getType() const override { return 4; }
   void transform(const double *in, double *out) const override;
diff --git a/poppler/GfxFont.h b/poppler/GfxFont.h
index 1ae9ac5d..e328f3dd 100644
--- a/poppler/GfxFont.h
+++ b/poppler/GfxFont.h
@@ -360,7 +360,7 @@ public:
   Dict *getResources();
 
 private:
-  ~Gfx8BitFont();
+  ~Gfx8BitFont() override;
 
   const Base14FontMapEntry *base14;	// for Base-14 fonts only; NULL otherwise
   char *enc[256];		// char code --> char name
@@ -411,7 +411,7 @@ public:
   double getWidth(char* s, int len) const;
 
 private:
-  ~GfxCIDFont();
+  ~GfxCIDFont() override;
 
   int mapCodeToGID(FoFiTrueType *ff, int cmapi,
     Unicode unicode, bool wmode);
diff --git a/poppler/GfxState.h b/poppler/GfxState.h
index e57b8749..0e054632 100644
--- a/poppler/GfxState.h
+++ b/poppler/GfxState.h
@@ -298,7 +298,7 @@ class GfxDeviceGrayColorSpace: public GfxColorSpace {
 public:
 
   GfxDeviceGrayColorSpace();
-  ~GfxDeviceGrayColorSpace();
+  ~GfxDeviceGrayColorSpace() override;
   GfxColorSpace *copy() override;
   GfxColorSpaceMode getMode() const override { return csDeviceGray; }
 
@@ -332,7 +332,7 @@ class GfxCalGrayColorSpace: public GfxColorSpace {
 public:
 
   GfxCalGrayColorSpace();
-  ~GfxCalGrayColorSpace();
+  ~GfxCalGrayColorSpace() override;
   GfxColorSpace *copy() override;
   GfxColorSpaceMode getMode() const override { return csCalGray; }
 
@@ -376,7 +376,7 @@ class GfxDeviceRGBColorSpace: public GfxColorSpace {
 public:
 
   GfxDeviceRGBColorSpace();
-  ~GfxDeviceRGBColorSpace();
+  ~GfxDeviceRGBColorSpace() override;
   GfxColorSpace *copy() override;
   GfxColorSpaceMode getMode() const override { return csDeviceRGB; }
 
@@ -410,7 +410,7 @@ class GfxCalRGBColorSpace: public GfxColorSpace {
 public:
 
   GfxCalRGBColorSpace();
-  ~GfxCalRGBColorSpace();
+  ~GfxCalRGBColorSpace() override;
   GfxColorSpace *copy() override;
   GfxColorSpaceMode getMode() const override { return csCalRGB; }
 
@@ -458,7 +458,7 @@ class GfxDeviceCMYKColorSpace: public GfxColorSpace {
 public:
 
   GfxDeviceCMYKColorSpace();
-  ~GfxDeviceCMYKColorSpace();
+  ~GfxDeviceCMYKColorSpace() override;
   GfxColorSpace *copy() override;
   GfxColorSpaceMode getMode() const override { return csDeviceCMYK; }
 
@@ -489,7 +489,7 @@ class GfxLabColorSpace: public GfxColorSpace {
 public:
 
   GfxLabColorSpace();
-  ~GfxLabColorSpace();
+  ~GfxLabColorSpace() override;
   GfxColorSpace *copy() override;
   GfxColorSpaceMode getMode() const override { return csLab; }
 
@@ -539,7 +539,7 @@ class GfxICCBasedColorSpace: public GfxColorSpace {
 public:
 
   GfxICCBasedColorSpace(int nCompsA, GfxColorSpace *altA);
-  ~GfxICCBasedColorSpace();
+  ~GfxICCBasedColorSpace() override;
   GfxColorSpace *copy() override;
   GfxColorSpaceMode getMode() const override { return csICCBased; }
 
@@ -590,7 +590,7 @@ class GfxIndexedColorSpace: public GfxColorSpace {
 public:
 
   GfxIndexedColorSpace(GfxColorSpace *baseA, int indexHighA);
-  ~GfxIndexedColorSpace();
+  ~GfxIndexedColorSpace() override;
   GfxColorSpace *copy() override;
   GfxColorSpaceMode getMode() const override { return csIndexed; }
 
@@ -643,7 +643,7 @@ public:
 
   GfxSeparationColorSpace(GooString *nameA, GfxColorSpace *altA,
 			  Function *funcA);
-  ~GfxSeparationColorSpace();
+  ~GfxSeparationColorSpace() override;
   GfxColorSpace *copy() override;
   GfxColorSpaceMode getMode() const override { return csSeparation; }
 
@@ -688,7 +688,7 @@ public:
 
   GfxDeviceNColorSpace(int nCompsA, std::vector<std::string> &&namesA,
 		       GfxColorSpace *alt, Function *func, std::vector<GfxSeparationColorSpace*> *sepsCS);
-  ~GfxDeviceNColorSpace();
+  ~GfxDeviceNColorSpace() override;
   GfxColorSpace *copy() override;
   GfxColorSpaceMode getMode() const override { return csDeviceN; }
 
@@ -734,7 +734,7 @@ class GfxPatternColorSpace: public GfxColorSpace {
 public:
 
   GfxPatternColorSpace(GfxColorSpace *underA);
-  ~GfxPatternColorSpace();
+  ~GfxPatternColorSpace() override;
   GfxColorSpace *copy() override;
   GfxColorSpaceMode getMode() const override { return csPattern; }
 
@@ -793,7 +793,7 @@ class GfxTilingPattern: public GfxPattern {
 public:
 
   static GfxTilingPattern *parse(Object *patObj, int patternRefNum);
-  ~GfxTilingPattern();
+  ~GfxTilingPattern() override;
 
   GfxPattern *copy() override;
 
@@ -831,7 +831,7 @@ class GfxShadingPattern: public GfxPattern {
 public:
 
   static GfxShadingPattern *parse(GfxResources *res, Object *patObj, OutputDev *out, GfxState *state, int patternRefNum);
-  ~GfxShadingPattern();
+  ~GfxShadingPattern() override;
 
   GfxPattern *copy() override;
 
@@ -903,7 +903,7 @@ public:
 		       Function **funcsA, int nFuncsA,
 		       bool extend0A, bool extend1A);
   GfxUnivariateShading(GfxUnivariateShading *shading);
-  ~GfxUnivariateShading();
+  ~GfxUnivariateShading() override;
 
   double getDomain0() const { return t0; }
   double getDomain1() const { return t1; }
@@ -950,7 +950,7 @@ public:
 		     const double *matrixA,
 		     Function **funcsA, int nFuncsA);
   GfxFunctionShading(GfxFunctionShading *shading);
-  ~GfxFunctionShading();
+  ~GfxFunctionShading() override;
 
   static GfxFunctionShading *parse(GfxResources *res, Dict *dict, OutputDev *out, GfxState *state);
 
@@ -984,7 +984,7 @@ public:
 		  Function **funcsA, int nFuncsA,
 		  bool extend0A, bool extend1A);
   GfxAxialShading(GfxAxialShading *shading);
-  ~GfxAxialShading();
+  ~GfxAxialShading() override;
 
   static GfxAxialShading *parse(GfxResources *res, Dict *dict, OutputDev *out, GfxState *state);
 
@@ -1017,7 +1017,7 @@ public:
 		   Function **funcsA, int nFuncsA,
 		   bool extend0A, bool extend1A);
   GfxRadialShading(GfxRadialShading *shading);
-  ~GfxRadialShading();
+  ~GfxRadialShading() override;
 
   static GfxRadialShading *parse(GfxResources *res, Dict *dict, OutputDev *out, GfxState *state);
 
@@ -1055,7 +1055,7 @@ public:
 			    int (*trianglesA)[3], int nTrianglesA,
 			    Function **funcsA, int nFuncsA);
   GfxGouraudTriangleShading(GfxGouraudTriangleShading *shading);
-  ~GfxGouraudTriangleShading();
+  ~GfxGouraudTriangleShading() override;
 
   static GfxGouraudTriangleShading *parse(GfxResources *res, int typeA, Dict *dict, Stream *str, OutputDev *out, GfxState *state);
 
@@ -1141,7 +1141,7 @@ public:
   GfxPatchMeshShading(int typeA, GfxPatch *patchesA, int nPatchesA,
 		      Function **funcsA, int nFuncsA);
   GfxPatchMeshShading(GfxPatchMeshShading *shading);
-  ~GfxPatchMeshShading();
+  ~GfxPatchMeshShading() override;
 
   static GfxPatchMeshShading *parse(GfxResources *res, int typeA, Dict *dict, Stream *str, OutputDev *out, GfxState *state);
 
diff --git a/poppler/JBIG2Stream.cc b/poppler/JBIG2Stream.cc
index de2c726f..47114dfa 100644
--- a/poppler/JBIG2Stream.cc
+++ b/poppler/JBIG2Stream.cc
@@ -683,7 +683,7 @@ class JBIG2Bitmap: public JBIG2Segment {
 public:
 
   JBIG2Bitmap(unsigned int segNumA, int wA, int hA);
-  ~JBIG2Bitmap();
+  ~JBIG2Bitmap() override;
   JBIG2SegmentType getType() override { return jbig2SegBitmap; }
   JBIG2Bitmap *copy() { return new JBIG2Bitmap(0, this); }
   JBIG2Bitmap *getSlice(unsigned int x, unsigned int y, unsigned int wA, unsigned int hA);
@@ -1059,7 +1059,7 @@ class JBIG2SymbolDict: public JBIG2Segment {
 public:
 
   JBIG2SymbolDict(unsigned int segNumA, unsigned int sizeA);
-  ~JBIG2SymbolDict();
+  ~JBIG2SymbolDict() override;
   JBIG2SegmentType getType() override { return jbig2SegSymbolDict; }
   unsigned int getSize() { return size; }
   void setBitmap(unsigned int idx, JBIG2Bitmap *bitmap) { bitmaps[idx] = bitmap; }
@@ -1120,7 +1120,7 @@ class JBIG2PatternDict: public JBIG2Segment {
 public:
 
   JBIG2PatternDict(unsigned int segNumA, unsigned int sizeA);
-  ~JBIG2PatternDict();
+  ~JBIG2PatternDict() override;
   JBIG2SegmentType getType() override { return jbig2SegPatternDict; }
   unsigned int getSize() { return size; }
   void setBitmap(unsigned int idx, JBIG2Bitmap *bitmap) { if (likely(idx < size)) bitmaps[idx] = bitmap; }
@@ -1161,7 +1161,7 @@ class JBIG2CodeTable: public JBIG2Segment {
 public:
 
   JBIG2CodeTable(unsigned int segNumA, JBIG2HuffmanTable *tableA);
-  ~JBIG2CodeTable();
+  ~JBIG2CodeTable() override;
   JBIG2SegmentType getType() override { return jbig2SegCodeTable; }
   JBIG2HuffmanTable *getHuffTable() { return table; }
 
diff --git a/poppler/JBIG2Stream.h b/poppler/JBIG2Stream.h
index 781a5047..665d780b 100644
--- a/poppler/JBIG2Stream.h
+++ b/poppler/JBIG2Stream.h
@@ -46,7 +46,7 @@ class JBIG2Stream: public FilterStream {
 public:
 
   JBIG2Stream(Stream *strA, Object &&globalsStreamA, Object *globalsStreamRefA);
-  ~JBIG2Stream();
+  ~JBIG2Stream() override;
   StreamKind getKind() const override { return strJBIG2; }
   void reset() override;
   void close() override;
diff --git a/poppler/JPEG2000Stream.h b/poppler/JPEG2000Stream.h
index b11abee0..8b8300e6 100644
--- a/poppler/JPEG2000Stream.h
+++ b/poppler/JPEG2000Stream.h
@@ -27,7 +27,7 @@ class JPXStream: public FilterStream {
 public:
 
   JPXStream(Stream *strA);
-  ~JPXStream();
+  ~JPXStream() override;
   StreamKind getKind() const override { return strJPX; }
   void reset() override;
   void close() override;
diff --git a/poppler/Link.h b/poppler/Link.h
index 59ecd4e4..14665a29 100644
--- a/poppler/Link.h
+++ b/poppler/Link.h
@@ -168,7 +168,7 @@ public:
   LinkGoTo(const Object *destObj);
 
   // Destructor.
-  ~LinkGoTo();
+  ~LinkGoTo() override;
 
   // Was the LinkGoTo created successfully?
   bool isOk() const override { return dest || namedDest; }
@@ -198,7 +198,7 @@ public:
   LinkGoToR(Object *fileSpecObj, Object *destObj);
 
   // Destructor.
-  ~LinkGoToR();
+  ~LinkGoToR() override;
 
   // Was the LinkGoToR created successfully?
   bool isOk() const override { return fileName && (dest || namedDest); }
@@ -229,7 +229,7 @@ public:
   LinkLaunch(const Object *actionObj);
 
   // Destructor.
-  ~LinkLaunch();
+  ~LinkLaunch() override;
 
   // Was the LinkLaunch created successfully?
   bool isOk() const override { return fileName != nullptr; }
@@ -256,7 +256,7 @@ public:
   LinkURI(const Object *uriObj, const GooString *baseURI);
 
   // Destructor.
-  ~LinkURI();
+  ~LinkURI() override;
 
   // Was the LinkURI created successfully?
   bool isOk() const override { return uri != nullptr; }
@@ -280,7 +280,7 @@ public:
   // Build a LinkNamed given the action name.
   LinkNamed(const Object *nameObj);
 
-  ~LinkNamed();
+  ~LinkNamed() override;
 
   bool isOk() const override { return name != nullptr; }
 
@@ -308,7 +308,7 @@ public:
   };
 
   LinkMovie(const Object *obj);
-  ~LinkMovie();
+  ~LinkMovie() override;
 
   bool isOk() const override { return hasAnnotRef() || hasAnnotTitle(); }
   LinkActionKind getKind() const override { return actionMovie; }
@@ -351,7 +351,7 @@ public:
 
   LinkRendition(const Object *Obj);
 
-  ~LinkRendition();
+  ~LinkRendition() override;
 
   bool isOk() const override { return true; }
 
@@ -389,7 +389,7 @@ public:
 
   LinkSound(const Object *soundObj);
 
-  ~LinkSound();
+  ~LinkSound() override;
 
   bool isOk() const override { return sound != nullptr; }
 
@@ -420,7 +420,7 @@ public:
   // Build a LinkJavaScript given the action name.
   LinkJavaScript(Object *jsObj);
 
-  ~LinkJavaScript();
+  ~LinkJavaScript() override;
 
   bool isOk() const override { return js != nullptr; }
 
@@ -441,7 +441,7 @@ class LinkOCGState: public LinkAction {
 public:
   LinkOCGState(const Object *obj);
 
-  ~LinkOCGState();
+  ~LinkOCGState() override;
 
   bool isOk() const override { return stateList != nullptr; }
 
@@ -473,7 +473,7 @@ class LinkHide: public LinkAction {
 public:
   LinkHide(const Object *hideObj);
 
-  ~LinkHide();
+  ~LinkHide() override;
 
   bool isOk() const override { return targetName != nullptr; }
   LinkActionKind getKind() const override { return actionHide; }
@@ -509,7 +509,7 @@ public:
   LinkUnknown(const char *actionA);
 
   // Destructor.
-  ~LinkUnknown();
+  ~LinkUnknown() override;
 
   // Was the LinkUnknown create successfully?
   bool isOk() const override { return action != nullptr; }
diff --git a/poppler/MarkedContentOutputDev.h b/poppler/MarkedContentOutputDev.h
index 43edccad..829a850f 100644
--- a/poppler/MarkedContentOutputDev.h
+++ b/poppler/MarkedContentOutputDev.h
@@ -89,7 +89,7 @@ typedef std::vector<TextSpan> TextSpanArray;
 class MarkedContentOutputDev: public OutputDev {
 public:
   MarkedContentOutputDev(int mcidA);
-  virtual ~MarkedContentOutputDev();
+  ~MarkedContentOutputDev() override;
 
   virtual bool isOk() { return true; }
   bool upsideDown() override { return true; }
diff --git a/poppler/PSOutputDev.cc b/poppler/PSOutputDev.cc
index 511a6ebb..4f3ce1c1 100644
--- a/poppler/PSOutputDev.cc
+++ b/poppler/PSOutputDev.cc
@@ -989,7 +989,7 @@ public:
 
   DeviceNRecoder(Stream *strA, int widthA, int heightA,
 		 GfxImageColorMap *colorMapA);
-  ~DeviceNRecoder();
+  ~DeviceNRecoder() override;
   StreamKind getKind() const override { return strWeird; }
   void reset() override;
   int getChar() override
diff --git a/poppler/PSOutputDev.h b/poppler/PSOutputDev.h
index 6939bb1d..5114a1d6 100644
--- a/poppler/PSOutputDev.h
+++ b/poppler/PSOutputDev.h
@@ -128,7 +128,7 @@ public:
 	      void *customCodeCbkDataA = nullptr);
 
   // Destructor -- writes the trailer and closes the file.
-  virtual ~PSOutputDev();
+  ~PSOutputDev() override;
 
   // Check if file was successfully created.
   virtual bool isOk() { return ok; }
diff --git a/poppler/PreScanOutputDev.h b/poppler/PreScanOutputDev.h
index d65ddf91..60649f71 100644
--- a/poppler/PreScanOutputDev.h
+++ b/poppler/PreScanOutputDev.h
@@ -43,7 +43,7 @@ public:
   PreScanOutputDev(PDFDoc *docA);
 
   // Destructor.
-  ~PreScanOutputDev();
+  ~PreScanOutputDev() override;
 
   //----- get info about output device
 
diff --git a/poppler/SecurityHandler.h b/poppler/SecurityHandler.h
index c8a4cafa..17d6bfea 100644
--- a/poppler/SecurityHandler.h
+++ b/poppler/SecurityHandler.h
@@ -105,7 +105,7 @@ class StandardSecurityHandler: public SecurityHandler {
 public:
 
   StandardSecurityHandler(PDFDoc *docA, Object *encryptDictA);
-  ~StandardSecurityHandler();
+  ~StandardSecurityHandler() override;
 
   bool isUnencrypted() override;
   void *makeAuthData(const GooString *ownerPassword,
diff --git a/poppler/SplashOutputDev.cc b/poppler/SplashOutputDev.cc
index 86e895a9..02c76786 100644
--- a/poppler/SplashOutputDev.cc
+++ b/poppler/SplashOutputDev.cc
@@ -1084,7 +1084,7 @@ public:
 
   SplashOutFontFileID(const Ref *rA) { r = *rA; }
 
-  ~SplashOutFontFileID() {}
+  ~SplashOutFontFileID() override {}
 
   bool matches(SplashFontFileID *id) override {
     return ((SplashOutFontFileID *)id)->r == r;
diff --git a/poppler/SplashOutputDev.h b/poppler/SplashOutputDev.h
index 7a64fe41..22a4627b 100644
--- a/poppler/SplashOutputDev.h
+++ b/poppler/SplashOutputDev.h
@@ -62,7 +62,7 @@ public:
 
   SplashPattern *copy() override { return new SplashFunctionPattern(colorMode, state, (GfxFunctionShading *) shading); }
 
-  ~SplashFunctionPattern();
+  ~SplashFunctionPattern() override;
 
   bool testPosition(int x, int y) override { return true; }
 
@@ -88,7 +88,7 @@ public:
 
   SplashUnivariatePattern(SplashColorMode colorMode, GfxState *state, GfxUnivariateShading *shading);
 
-  ~SplashUnivariatePattern();
+  ~SplashUnivariatePattern() override;
 
   bool getColor(int x, int y, SplashColorPtr c) override;
 
@@ -118,7 +118,7 @@ public:
 
   SplashPattern *copy() override { return new SplashAxialPattern(colorMode, state, (GfxAxialShading *) shading); }
 
-  ~SplashAxialPattern();
+  ~SplashAxialPattern() override;
 
   bool getParameter(double xc, double yc, double *t) override;
 
@@ -135,7 +135,7 @@ public:
 
   SplashPattern *copy() override { return new SplashGouraudPattern(bDirectColorTranslation, state, shading); }
 
-  ~SplashGouraudPattern();
+  ~SplashGouraudPattern() override;
 
   bool getColor(int x, int y, SplashColorPtr c) override { return false; }
 
@@ -169,7 +169,7 @@ public:
 
   SplashPattern *copy() override { return new SplashRadialPattern(colorMode, state, (GfxRadialShading *) shading); }
 
-  ~SplashRadialPattern();
+  ~SplashRadialPattern() override;
 
   bool getParameter(double xs, double ys, double *t) override;
 
@@ -198,7 +198,7 @@ public:
 		  bool overprintPreviewA = globalParams->getOverprintPreview());
 
   // Destructor.
-  ~SplashOutputDev();
+  ~SplashOutputDev() override;
 
   //----- get info about output device
 
diff --git a/poppler/Stream.h b/poppler/Stream.h
index dcfd3a26..46f2b375 100644
--- a/poppler/Stream.h
+++ b/poppler/Stream.h
@@ -276,7 +276,7 @@ class FileOutStream : public OutStream {
 public:
   FileOutStream (FILE* fa, Goffset startA);
 
-  ~FileOutStream ();
+  ~FileOutStream () override;
 
   void close() override;
 
@@ -303,7 +303,7 @@ public:
 
     // TODO Mirar si puedo hacer que dictA sea un puntero
   BaseStream(Object &&dictA, Goffset lengthA);
-  ~BaseStream();
+  ~BaseStream() override;
   virtual BaseStream *copy() = 0;
   virtual Stream *makeSubStream(Goffset start, bool limited,
 				Goffset length, Object &&dict) = 0;
@@ -336,7 +336,7 @@ class FilterStream: public Stream {
 public:
 
   FilterStream(Stream *strA);
-  ~FilterStream();
+  ~FilterStream() override;
   void close() override;
   Goffset getPos() override { return str->getPos(); }
   void setPos(Goffset pos, int dir = 0) override;
@@ -452,7 +452,7 @@ public:
 
   FileStream(GooFile* fileA, Goffset startA, bool limitedA,
 	     Goffset lengthA, Object &&dictA);
-  ~FileStream();
+  ~FileStream() override;
   BaseStream *copy() override;
   Stream *makeSubStream(Goffset startA, bool limitedA,
 				Goffset lengthA, Object &&dictA) override;
@@ -527,7 +527,7 @@ public:
 
   CachedFileStream(CachedFile *ccA, Goffset startA, bool limitedA,
 	     Goffset lengthA, Object &&dictA);
-  ~CachedFileStream();
+  ~CachedFileStream() override;
   BaseStream *copy() override;
   Stream *makeSubStream(Goffset startA, bool limitedA,
 				Goffset lengthA, Object &&dictA) override;
@@ -680,7 +680,7 @@ public:
    : BaseMemStream(bufA, startA, lengthA, std::move(dictA))
    { }
 
-  ~AutoFreeMemStream()
+  ~AutoFreeMemStream() override
     { gfree(buf); }
 };
 
@@ -699,7 +699,7 @@ class EmbedStream: public BaseStream {
 public:
 
   EmbedStream(Stream *strA, Object &&dictA, bool limitedA, Goffset lengthA, bool reusableA = false);
-  ~EmbedStream();
+  ~EmbedStream() override;
   BaseStream *copy() override;
   Stream *makeSubStream(Goffset start, bool limitedA,
 				Goffset lengthA, Object &&dictA) override;
@@ -743,7 +743,7 @@ class ASCIIHexStream: public FilterStream {
 public:
 
   ASCIIHexStream(Stream *strA);
-  ~ASCIIHexStream();
+  ~ASCIIHexStream() override;
   StreamKind getKind() const override { return strASCIIHex; }
   void reset() override;
   int getChar() override
@@ -766,7 +766,7 @@ class ASCII85Stream: public FilterStream {
 public:
 
   ASCII85Stream(Stream *strA);
-  ~ASCII85Stream();
+  ~ASCII85Stream() override;
   StreamKind getKind() const override { return strASCII85; }
   void reset() override;
   int getChar() override
@@ -792,7 +792,7 @@ public:
 
   LZWStream(Stream *strA, int predictor, int columns, int colors,
 	    int bits, int earlyA);
-  ~LZWStream();
+  ~LZWStream() override;
   StreamKind getKind() const override { return strLZW; }
   void reset() override;
   int getChar() override;
@@ -851,7 +851,7 @@ class RunLengthStream: public FilterStream {
 public:
 
   RunLengthStream(Stream *strA);
-  ~RunLengthStream();
+  ~RunLengthStream() override;
   StreamKind getKind() const override { return strRunLength; }
   void reset() override;
   int getChar() override
@@ -886,7 +886,7 @@ public:
   CCITTFaxStream(Stream *strA, int encodingA, bool endOfLineA,
 		 bool byteAlignA, int columnsA, int rowsA,
 		 bool endOfBlockA, bool blackA, int damagedRowsBeforeErrorA);
-  ~CCITTFaxStream();
+  ~CCITTFaxStream() override;
   StreamKind getKind() const override { return strCCITTFax; }
   void reset() override;
   int getChar() override
@@ -972,7 +972,7 @@ class DCTStream: public FilterStream {
 public:
 
   DCTStream(Stream *strA, int colorXformA, Dict *dict, int recursion);
-  virtual ~DCTStream();
+  ~DCTStream() override;
   StreamKind getKind() const override { return strDCT; }
   void reset() override;
   void close() override;
@@ -1080,7 +1080,7 @@ public:
 
   FlateStream(Stream *strA, int predictor, int columns,
 	      int colors, int bits);
-  ~FlateStream();
+  ~FlateStream() override;
   StreamKind getKind() const override { return strFlate; }
   void reset() override;
   int getChar() override;
@@ -1154,7 +1154,7 @@ class EOFStream: public FilterStream {
 public:
 
   EOFStream(Stream *strA);
-  ~EOFStream();
+  ~EOFStream() override;
   StreamKind getKind() const override { return strWeird; }
   void reset() override {}
   int getChar() override { return EOF; }
@@ -1171,7 +1171,7 @@ class BufStream: public FilterStream {
 public:
 
   BufStream(Stream *strA, int bufSizeA);
-  ~BufStream();
+  ~BufStream() override;
   StreamKind getKind() const override { return strWeird; }
   void reset() override;
   int getChar() override;
@@ -1196,7 +1196,7 @@ class FixedLengthEncoder: public FilterStream {
 public:
 
   FixedLengthEncoder(Stream *strA, int lengthA);
-  ~FixedLengthEncoder();
+  ~FixedLengthEncoder() override;
   StreamKind getKind() const override { return strWeird; }
   void reset() override;
   int getChar() override;
@@ -1219,7 +1219,7 @@ class ASCIIHexEncoder: public FilterStream {
 public:
 
   ASCIIHexEncoder(Stream *strA);
-  ~ASCIIHexEncoder();
+  ~ASCIIHexEncoder() override;
   StreamKind getKind() const override { return strWeird; }
   void reset() override;
   int getChar() override
@@ -1249,7 +1249,7 @@ class ASCII85Encoder: public FilterStream {
 public:
 
   ASCII85Encoder(Stream *strA);
-  ~ASCII85Encoder();
+  ~ASCII85Encoder() override;
   StreamKind getKind() const override { return strWeird; }
   void reset() override;
   int getChar() override
@@ -1279,7 +1279,7 @@ class RunLengthEncoder: public FilterStream {
 public:
 
   RunLengthEncoder(Stream *strA);
-  ~RunLengthEncoder();
+  ~RunLengthEncoder() override;
   StreamKind getKind() const override { return strWeird; }
   void reset() override;
   int getChar() override
@@ -1315,7 +1315,7 @@ class LZWEncoder: public FilterStream {
 public:
 
   LZWEncoder(Stream *strA);
-  ~LZWEncoder();
+  ~LZWEncoder() override;
   StreamKind getKind() const override { return strWeird; }
   void reset() override;
   int getChar() override;
@@ -1347,7 +1347,7 @@ class CMYKGrayEncoder: public FilterStream {
 public:
 
   CMYKGrayEncoder(Stream *strA);
-  ~CMYKGrayEncoder();
+  ~CMYKGrayEncoder() override;
   StreamKind getKind() const override { return strWeird; }
   void reset() override;
   int getChar() override
@@ -1376,7 +1376,7 @@ class RGBGrayEncoder: public FilterStream {
 public:
 
   RGBGrayEncoder(Stream *strA);
-  ~RGBGrayEncoder();
+  ~RGBGrayEncoder() override;
   StreamKind getKind() const override { return strWeird; }
   void reset() override;
   int getChar() override
diff --git a/poppler/TextOutputDev.cc b/poppler/TextOutputDev.cc
index fe9a6e7c..4622500a 100644
--- a/poppler/TextOutputDev.cc
+++ b/poppler/TextOutputDev.cc
@@ -4442,7 +4442,7 @@ TextSelectionVisitor::TextSelectionVisitor (TextPage *p)
 class TextSelectionDumper : public TextSelectionVisitor {
 public:
   TextSelectionDumper(TextPage *page);
-  ~TextSelectionDumper();
+  ~TextSelectionDumper() override;
 
   void visitBlock (TextBlock *block, 
 			   TextLine *begin,
@@ -4615,7 +4615,7 @@ std::vector<TextWordSelection*> **TextSelectionDumper::takeWordList(int *nLinesO
 class TextSelectionSizer : public TextSelectionVisitor {
 public:
   TextSelectionSizer(TextPage *page, double scale);
-  ~TextSelectionSizer() { }
+  ~TextSelectionSizer() override { }
 
   void visitBlock (TextBlock *block,
 			   TextLine *begin,
@@ -4676,7 +4676,7 @@ public:
 		       OutputDev *out,
 		       const GfxColor *box_color,
 		       const GfxColor *glyph_color);
-  ~TextSelectionPainter();
+  ~TextSelectionPainter() override;
 
   void visitBlock (TextBlock *block,
 			   TextLine *begin,
diff --git a/poppler/TextOutputDev.h b/poppler/TextOutputDev.h
index 5b901c26..51e397f5 100644
--- a/poppler/TextOutputDev.h
+++ b/poppler/TextOutputDev.h
@@ -791,7 +791,7 @@ public:
 		bool rawOrderA, bool discardDiagA = false);
 
   // Destructor.
-  ~TextOutputDev();
+  ~TextOutputDev() override;
 
   // Check if file was successfully created.
   virtual bool isOk() { return ok; }
diff --git a/qt5/demos/abstractinfodock.h b/qt5/demos/abstractinfodock.h
index 8ed26a1c..557fca7e 100644
--- a/qt5/demos/abstractinfodock.h
+++ b/qt5/demos/abstractinfodock.h
@@ -29,7 +29,7 @@ class AbstractInfoDock : public QDockWidget, public DocumentObserver
 
 public:
     AbstractInfoDock(QWidget *parent = nullptr);
-    ~AbstractInfoDock();
+    ~AbstractInfoDock() override;
 
     void documentLoaded() override;
     void documentClosed() override;
diff --git a/qt5/demos/embeddedfiles.h b/qt5/demos/embeddedfiles.h
index c9aa7af8..7ddb6b1e 100644
--- a/qt5/demos/embeddedfiles.h
+++ b/qt5/demos/embeddedfiles.h
@@ -29,7 +29,7 @@ class EmbeddedFilesDock : public AbstractInfoDock
 
 public:
     EmbeddedFilesDock(QWidget *parent = nullptr);
-    ~EmbeddedFilesDock();
+    ~EmbeddedFilesDock() override;
 
     void documentLoaded() override;
     void documentClosed() override;
diff --git a/qt5/demos/fonts.h b/qt5/demos/fonts.h
index 00b0a281..e056e01b 100644
--- a/qt5/demos/fonts.h
+++ b/qt5/demos/fonts.h
@@ -29,7 +29,7 @@ class FontsDock : public AbstractInfoDock
 
 public:
     FontsDock(QWidget *parent = nullptr);
-    ~FontsDock();
+    ~FontsDock() override;
 
     void documentClosed() override;
 
diff --git a/qt5/demos/info.h b/qt5/demos/info.h
index 7a2aae0f..d964a9f4 100644
--- a/qt5/demos/info.h
+++ b/qt5/demos/info.h
@@ -29,7 +29,7 @@ class InfoDock : public AbstractInfoDock
 
 public:
     InfoDock(QWidget *parent = nullptr);
-    ~InfoDock();
+    ~InfoDock() override;
 
     void documentClosed() override;
 
diff --git a/qt5/demos/metadata.h b/qt5/demos/metadata.h
index a47f3b48..f5dc391d 100644
--- a/qt5/demos/metadata.h
+++ b/qt5/demos/metadata.h
@@ -29,7 +29,7 @@ class MetadataDock : public AbstractInfoDock
 
 public:
     MetadataDock(QWidget *parent = nullptr);
-    ~MetadataDock();
+    ~MetadataDock() override;
 
     void documentClosed() override;
 
diff --git a/qt5/demos/navigationtoolbar.h b/qt5/demos/navigationtoolbar.h
index 0e87daee..0f63e649 100644
--- a/qt5/demos/navigationtoolbar.h
+++ b/qt5/demos/navigationtoolbar.h
@@ -34,7 +34,7 @@ class NavigationToolBar : public QToolBar, public DocumentObserver
 
 public:
     NavigationToolBar(QWidget *parent = nullptr);
-    ~NavigationToolBar();
+    ~NavigationToolBar() override;
 
     void documentLoaded() override;
     void documentClosed() override;
diff --git a/qt5/demos/optcontent.h b/qt5/demos/optcontent.h
index bc8419c1..7764a42b 100644
--- a/qt5/demos/optcontent.h
+++ b/qt5/demos/optcontent.h
@@ -29,7 +29,7 @@ class OptContentDock : public AbstractInfoDock
 
 public:
     OptContentDock(QWidget *parent = nullptr);
-    ~OptContentDock();
+    ~OptContentDock() override;
 
     void documentLoaded() override;
     void documentClosed() override;
diff --git a/qt5/demos/pageview.h b/qt5/demos/pageview.h
index 7640d2a2..9149ec0d 100644
--- a/qt5/demos/pageview.h
+++ b/qt5/demos/pageview.h
@@ -32,7 +32,7 @@ class PageView : public QScrollArea, public DocumentObserver
 
 public:
     PageView(QWidget *parent = nullptr);
-    ~PageView();
+    ~PageView() override;
 
     void documentLoaded() override;
     void documentClosed() override;
diff --git a/qt5/demos/permissions.h b/qt5/demos/permissions.h
index 46aa1879..9c5072b8 100644
--- a/qt5/demos/permissions.h
+++ b/qt5/demos/permissions.h
@@ -29,7 +29,7 @@ class PermissionsDock : public AbstractInfoDock
 
 public:
     PermissionsDock(QWidget *parent = nullptr);
-    ~PermissionsDock();
+    ~PermissionsDock() override;
 
     void documentClosed() override;
 
diff --git a/qt5/demos/thumbnails.h b/qt5/demos/thumbnails.h
index b2e4d0ab..3eda6cf7 100644
--- a/qt5/demos/thumbnails.h
+++ b/qt5/demos/thumbnails.h
@@ -31,7 +31,7 @@ class ThumbnailsDock : public AbstractInfoDock
 
 public:
     ThumbnailsDock(QWidget *parent = nullptr);
-    ~ThumbnailsDock();
+    ~ThumbnailsDock() override;
 
     void documentClosed() override;
 
diff --git a/qt5/demos/toc.cpp b/qt5/demos/toc.cpp
index 1efdc16a..678aa438 100644
--- a/qt5/demos/toc.cpp
+++ b/qt5/demos/toc.cpp
@@ -61,7 +61,7 @@ class TocModel : public QAbstractItemModel
             }
         }
 
-        ~TocModel()
+        ~TocModel() override
         {
             qDeleteAll(m_topItems);
         }
diff --git a/qt5/demos/toc.h b/qt5/demos/toc.h
index d7f015ff..b6c77ba7 100644
--- a/qt5/demos/toc.h
+++ b/qt5/demos/toc.h
@@ -30,7 +30,7 @@ class TocDock : public AbstractInfoDock
 
 public:
     TocDock(QWidget *parent = nullptr);
-    ~TocDock();
+    ~TocDock() override;
 
     void documentClosed() override;
 
diff --git a/qt5/demos/viewer.h b/qt5/demos/viewer.h
index 343010f0..105b1bbe 100644
--- a/qt5/demos/viewer.h
+++ b/qt5/demos/viewer.h
@@ -37,7 +37,7 @@ class PdfViewer : public QMainWindow
 
 public:
     PdfViewer(QWidget *parent = nullptr);
-    ~PdfViewer();
+    ~PdfViewer() override;
 
     QSize sizeHint() const override;
 
diff --git a/qt5/src/ArthurOutputDev.h b/qt5/src/ArthurOutputDev.h
index 39228024..b6285775 100644
--- a/qt5/src/ArthurOutputDev.h
+++ b/qt5/src/ArthurOutputDev.h
@@ -69,7 +69,7 @@ public:
   ArthurOutputDev(QPainter *painter );
 
   // Destructor.
-  ~ArthurOutputDev();
+  ~ArthurOutputDev() override;
 
   void setFontHinting(FontHinting hinting) { m_fontHinting = hinting; }
 
diff --git a/qt5/src/poppler-annotation.cc b/qt5/src/poppler-annotation.cc
index bb5be98f..b09fc681 100644
--- a/qt5/src/poppler-annotation.cc
+++ b/qt5/src/poppler-annotation.cc
@@ -3691,7 +3691,7 @@ class LinkAnnotationPrivate : public AnnotationPrivate
 {
     public:
         LinkAnnotationPrivate();
-        ~LinkAnnotationPrivate();
+        ~LinkAnnotationPrivate() override;
         Annotation * makeAlias() override;
         Annot* createNativeAnnot(::Page *destPage, DocumentData *doc) override;
 
@@ -4170,7 +4170,7 @@ class FileAttachmentAnnotationPrivate : public AnnotationPrivate
 {
     public:
         FileAttachmentAnnotationPrivate();
-        ~FileAttachmentAnnotationPrivate();
+        ~FileAttachmentAnnotationPrivate() override;
         Annotation * makeAlias() override;
         Annot* createNativeAnnot(::Page *destPage, DocumentData *doc) override;
 
@@ -4274,7 +4274,7 @@ class SoundAnnotationPrivate : public AnnotationPrivate
 {
     public:
         SoundAnnotationPrivate();
-        ~SoundAnnotationPrivate();
+        ~SoundAnnotationPrivate() override;
         Annotation * makeAlias() override;
         Annot* createNativeAnnot(::Page *destPage, DocumentData *doc) override;
 
@@ -4378,7 +4378,7 @@ class MovieAnnotationPrivate : public AnnotationPrivate
 {
     public:
         MovieAnnotationPrivate();
-        ~MovieAnnotationPrivate();
+        ~MovieAnnotationPrivate() override;
         Annotation * makeAlias() override;
         Annot* createNativeAnnot(::Page *destPage, DocumentData *doc) override;
 
@@ -4482,7 +4482,7 @@ class ScreenAnnotationPrivate : public AnnotationPrivate
 {
     public:
         ScreenAnnotationPrivate();
-        ~ScreenAnnotationPrivate();
+        ~ScreenAnnotationPrivate() override;
         Annotation * makeAlias() override;
         Annot* createNativeAnnot(::Page *destPage, DocumentData *doc) override;
 
@@ -4983,7 +4983,7 @@ class RichMediaAnnotationPrivate : public AnnotationPrivate
         {
         }
 
-        ~RichMediaAnnotationPrivate()
+        ~RichMediaAnnotationPrivate() override
         {
             delete settings;
             delete content;
diff --git a/qt5/src/poppler-annotation.h b/qt5/src/poppler-annotation.h
index 3bc34b4d..d3f96ec8 100644
--- a/qt5/src/poppler-annotation.h
+++ b/qt5/src/poppler-annotation.h
@@ -454,7 +454,7 @@ class POPPLER_QT5_EXPORT TextAnnotation : public Annotation
     enum InplaceIntent { Unknown, Callout, TypeWriter };
 
     TextAnnotation( TextType type );
-    ~TextAnnotation();
+    ~TextAnnotation() override;
     SubType subType() const override;
 
     /**
@@ -531,7 +531,7 @@ class POPPLER_QT5_EXPORT LineAnnotation : public Annotation
 
     /// \since 0.20
     LineAnnotation( LineType type );
-    ~LineAnnotation();
+    ~LineAnnotation() override;
     SubType subType() const override;
 
     /// \since 0.20
@@ -586,7 +586,7 @@ class POPPLER_QT5_EXPORT GeomAnnotation : public Annotation
 
   public:
     GeomAnnotation();
-    ~GeomAnnotation();
+    ~GeomAnnotation() override;
     SubType subType() const override;
 
     // common enums
@@ -618,7 +618,7 @@ class POPPLER_QT5_EXPORT HighlightAnnotation : public Annotation
 
   public:
     HighlightAnnotation();
-    ~HighlightAnnotation();
+    ~HighlightAnnotation() override;
     SubType subType() const override;
 
     /**
@@ -685,7 +685,7 @@ class POPPLER_QT5_EXPORT StampAnnotation : public Annotation
 
   public:
     StampAnnotation();
-    ~StampAnnotation();
+    ~StampAnnotation() override;
     SubType subType() const override;
 
     /**
@@ -736,7 +736,7 @@ class POPPLER_QT5_EXPORT InkAnnotation : public Annotation
 
   public:
     InkAnnotation();
-    ~InkAnnotation();
+    ~InkAnnotation() override;
     SubType subType() const override;
 
     QList< QLinkedList<QPointF> > inkPaths() const;
@@ -756,7 +756,7 @@ class POPPLER_QT5_EXPORT LinkAnnotation : public Annotation
   friend class AnnotationPrivate;
 
   public:
-    ~LinkAnnotation();
+    ~LinkAnnotation() override;
     SubType subType() const override;
 
     // local enums
@@ -794,7 +794,7 @@ class POPPLER_QT5_EXPORT CaretAnnotation : public Annotation
 
   public:
     CaretAnnotation();
-    ~CaretAnnotation();
+    ~CaretAnnotation() override;
     SubType subType() const override;
 
     /**
@@ -825,7 +825,7 @@ class POPPLER_QT5_EXPORT FileAttachmentAnnotation : public Annotation
   friend class AnnotationPrivate;
 
   public:
-    ~FileAttachmentAnnotation();
+    ~FileAttachmentAnnotation() override;
     SubType subType() const override;
 
     /**
@@ -869,7 +869,7 @@ class POPPLER_QT5_EXPORT SoundAnnotation : public Annotation
   friend class AnnotationPrivate;
 
   public:
-    ~SoundAnnotation();
+    ~SoundAnnotation() override;
     SubType subType() const override;
 
     /**
@@ -913,7 +913,7 @@ class POPPLER_QT5_EXPORT MovieAnnotation : public Annotation
   friend class AnnotationPrivate;
 
   public:
-    ~MovieAnnotation();
+    ~MovieAnnotation() override;
     SubType subType() const override;
 
     /**
@@ -957,7 +957,7 @@ class POPPLER_QT5_EXPORT ScreenAnnotation : public Annotation
   friend class AnnotationPrivate;
 
   public:
-    ~ScreenAnnotation();
+    ~ScreenAnnotation() override;
 
     SubType subType() const override;
 
@@ -1014,7 +1014,7 @@ class POPPLER_QT5_EXPORT WidgetAnnotation : public Annotation
   friend class AnnotationPrivate;
 
   public:
-    ~WidgetAnnotation();
+    ~WidgetAnnotation() override;
 
     SubType subType() const override;
 
@@ -1046,7 +1046,7 @@ class POPPLER_QT5_EXPORT RichMediaAnnotation : public Annotation
   friend class AnnotationPrivate;
 
   public:
-    ~RichMediaAnnotation();
+    ~RichMediaAnnotation() override;
 
     SubType subType() const override;
 
diff --git a/qt5/src/poppler-form.h b/qt5/src/poppler-form.h
index 435cdfea..836ada37 100644
--- a/qt5/src/poppler-form.h
+++ b/qt5/src/poppler-form.h
@@ -235,7 +235,7 @@ namespace Poppler {
 	/// \cond PRIVATE
 	FormFieldButton(DocumentData *doc, ::Page *p, ::FormWidgetButton *w);
 	/// \endcond
-	~FormFieldButton();
+	~FormFieldButton() override;
 
 	FormType type() const override;
 
@@ -306,7 +306,7 @@ namespace Poppler {
 	/// \cond PRIVATE
 	FormFieldText(DocumentData *doc, ::Page *p, ::FormWidgetText *w);
 	/// \endcond
-	~FormFieldText();
+	~FormFieldText() override;
 
 	FormType type() const override;
 
@@ -395,7 +395,7 @@ namespace Poppler {
 	/// \cond PRIVATE
 	FormFieldChoice(DocumentData *doc, ::Page *p, ::FormWidgetChoice *w);
 	/// \endcond
-	~FormFieldChoice();
+	~FormFieldChoice() override;
 
 	FormType type() const override;
 
@@ -755,7 +755,7 @@ namespace Poppler {
 	/// \cond PRIVATE
 	FormFieldSignature(DocumentData *doc, ::Page *p, ::FormWidgetSignature *w);
 	/// \endcond
-	~FormFieldSignature();
+	~FormFieldSignature() override;
 
 	FormType type() const override;
 
diff --git a/qt5/src/poppler-link-extractor-private.h b/qt5/src/poppler-link-extractor-private.h
index f6995867..0d95d255 100644
--- a/qt5/src/poppler-link-extractor-private.h
+++ b/qt5/src/poppler-link-extractor-private.h
@@ -34,7 +34,7 @@ class LinkExtractorOutputDev : public OutputDev
 {
   public:
     LinkExtractorOutputDev(PageData *data);
-    ~LinkExtractorOutputDev();
+    ~LinkExtractorOutputDev() override;
 
     // inherited from OutputDev
     bool upsideDown() override { return false; }
diff --git a/qt5/src/poppler-link.cc b/qt5/src/poppler-link.cc
index 37233502..436cd4bb 100644
--- a/qt5/src/poppler-link.cc
+++ b/qt5/src/poppler-link.cc
@@ -126,7 +126,7 @@ class LinkSoundPrivate : public LinkPrivate
 {
 	public:
 		LinkSoundPrivate( const QRectF &area );
-		~LinkSoundPrivate();
+		~LinkSoundPrivate() override;
 
 		double volume;
 		bool sync : 1;
@@ -149,7 +149,7 @@ class LinkRenditionPrivate : public LinkPrivate
 {
 	public:
 		LinkRenditionPrivate( const QRectF &area, ::MediaRendition *rendition, ::LinkRendition::RenditionOperation operation, const QString &script, const Ref ref );
-		~LinkRenditionPrivate();
+		~LinkRenditionPrivate() override;
 
 		MediaRendition *rendition;
 		LinkRendition::RenditionAction action;
diff --git a/qt5/src/poppler-link.h b/qt5/src/poppler-link.h
index 7f52e203..93221846 100644
--- a/qt5/src/poppler-link.h
+++ b/qt5/src/poppler-link.h
@@ -264,7 +264,7 @@ class POPPLER_QT5_EXPORT LinkGoto : public Link
 		/**
 		 * Destructor.
 		 */
-		~LinkGoto();
+		~LinkGoto() override;
 
 		/**
 		 * Whether the destination is in an external document
@@ -319,7 +319,7 @@ class POPPLER_QT5_EXPORT LinkExecute : public Link
 		/**
 		 * Destructor.
 		 */
-		~LinkExecute();
+		~LinkExecute() override;
 		LinkType linkType() const override;
 
 	private:
@@ -353,7 +353,7 @@ class POPPLER_QT5_EXPORT LinkBrowse : public Link
 		/**
 		 * Destructor.
 		 */
-		~LinkBrowse();
+		~LinkBrowse() override;
 		LinkType linkType() const override;
 
 	private:
@@ -404,7 +404,7 @@ class POPPLER_QT5_EXPORT LinkAction : public Link
 		/**
 		 * Destructor.
 		 */
-		~LinkAction();
+		~LinkAction() override;
 		LinkType linkType() const override;
 
 	private:
@@ -425,7 +425,7 @@ class POPPLER_QT5_EXPORT LinkSound : public Link
 		/**
 		 * Destructor.
 		 */
-		~LinkSound();
+		~LinkSound() override;
 
 		LinkType linkType() const override;
 
@@ -502,7 +502,7 @@ class POPPLER_QT5_EXPORT LinkRendition : public Link
 		/**
 		 * Destructor.
 		 */
-		~LinkRendition();
+		~LinkRendition() override;
 
 		LinkType linkType() const override;
 
@@ -555,7 +555,7 @@ class POPPLER_QT5_EXPORT LinkJavaScript : public Link
 		/**
 		 * Destructor.
 		 */
-		~LinkJavaScript();
+		~LinkJavaScript() override;
 
 		LinkType linkType() const override;
 
@@ -601,7 +601,7 @@ class POPPLER_QT5_EXPORT LinkMovie : public Link
 		/**
 		 * Destructor.
 		 */
-		~LinkMovie();
+		~LinkMovie() override;
 		LinkType linkType() const override;
 		/**
 		 * Returns the operation to be performed on the movie.
@@ -632,7 +632,7 @@ class POPPLER_QT5_EXPORT LinkOCGState : public Link
 		/**
 		 * Destructor.
 		 */
-		~LinkOCGState();
+		~LinkOCGState() override;
 
 		LinkType linkType() const override;
 
@@ -656,7 +656,7 @@ class POPPLER_QT5_EXPORT LinkHide: public Link
 		/**
 		 * Destructor.
 		 */
-		~LinkHide();
+		~LinkHide() override;
 
 		LinkType linkType() const override;
 
diff --git a/qt5/src/poppler-optcontent.h b/qt5/src/poppler-optcontent.h
index 6e062464..b2c5d85a 100644
--- a/qt5/src/poppler-optcontent.h
+++ b/qt5/src/poppler-optcontent.h
@@ -53,7 +53,7 @@ namespace Poppler
     Q_OBJECT
 
     public:
-    ~OptContentModel();
+    ~OptContentModel() override;
 
     QModelIndex index(int row, int column, const QModelIndex &parent) const override;
     QModelIndex parent(const QModelIndex &child) const override;
diff --git a/qt5/src/poppler-qiodeviceoutstream-private.h b/qt5/src/poppler-qiodeviceoutstream-private.h
index 775344d9..0a4ccbb1 100644
--- a/qt5/src/poppler-qiodeviceoutstream-private.h
+++ b/qt5/src/poppler-qiodeviceoutstream-private.h
@@ -31,7 +31,7 @@ class QIODeviceOutStream : public OutStream
 {
   public:
     QIODeviceOutStream(QIODevice* device);
-    ~QIODeviceOutStream();
+    ~QIODeviceOutStream() override;
 
     void close() override;
     Goffset getPos() override;
diff --git a/qt5/src/poppler-qt5.h b/qt5/src/poppler-qt5.h
index 912ccdfd..c501f67f 100644
--- a/qt5/src/poppler-qt5.h
+++ b/qt5/src/poppler-qt5.h
@@ -1928,7 +1928,7 @@ height = dummy.height();
             /**
               Destructor.
             */
-            ~PSConverter();
+            ~PSConverter() override;
 
             /** Sets the list of pages to print. Mandatory. */
             void setPageList(const QList<int> &pageList);
@@ -2049,7 +2049,7 @@ height = dummy.height();
             /**
               Destructor.
             */
-            ~PDFConverter();
+            ~PDFConverter() override;
 
             /**
               Sets the options for the PDF export.
diff --git a/qt5/tests/test-password-qt5.cpp b/qt5/tests/test-password-qt5.cpp
index 9281407d..e7ea1f49 100644
--- a/qt5/tests/test-password-qt5.cpp
+++ b/qt5/tests/test-password-qt5.cpp
@@ -12,7 +12,7 @@ class PDFDisplay : public QWidget           // picture display widget
     Q_OBJECT
 public:
     PDFDisplay( Poppler::Document *d, QWidget *parent = nullptr );
-    ~PDFDisplay();
+    ~PDFDisplay() override;
 protected:
     void paintEvent( QPaintEvent * ) override;
     void keyPressEvent( QKeyEvent * ) override;
diff --git a/qt5/tests/test-poppler-qt5.cpp b/qt5/tests/test-poppler-qt5.cpp
index 91e4a276..301cb05b 100644
--- a/qt5/tests/test-poppler-qt5.cpp
+++ b/qt5/tests/test-poppler-qt5.cpp
@@ -16,7 +16,7 @@ class PDFDisplay : public QWidget           // picture display widget
     Q_OBJECT
 public:
     PDFDisplay( Poppler::Document *d, bool arthur, QWidget *parent = nullptr );
-    ~PDFDisplay();
+    ~PDFDisplay() override;
     void setShowTextRects(bool show);
     void display();
 protected:
diff --git a/splash/SplashFTFont.h b/splash/SplashFTFont.h
index b2c90c42..70e697f9 100644
--- a/splash/SplashFTFont.h
+++ b/splash/SplashFTFont.h
@@ -43,7 +43,7 @@ public:
   SplashFTFont(SplashFTFontFile *fontFileA, SplashCoord *matA,
 	       const SplashCoord *textMatA);
 
-  virtual ~SplashFTFont();
+  ~SplashFTFont() override;
 
   // Munge xFrac and yFrac before calling SplashFont::getGlyph.
   bool getGlyph(int c, int xFrac, int yFrac,
diff --git a/splash/SplashFTFontFile.h b/splash/SplashFTFontFile.h
index b2217004..141702a2 100644
--- a/splash/SplashFTFontFile.h
+++ b/splash/SplashFTFontFile.h
@@ -52,7 +52,7 @@ public:
 					  int codeToGIDLenA,
 					  int faceIndexA=0);
 
-  ~SplashFTFontFile();
+  ~SplashFTFontFile() override;
 
   // Create a new SplashFTFont, i.e., a scaled instance of this font
   // file.
diff --git a/splash/SplashPattern.h b/splash/SplashPattern.h
index 3304ae70..ce7eb446 100644
--- a/splash/SplashPattern.h
+++ b/splash/SplashPattern.h
@@ -68,7 +68,7 @@ public:
 
   SplashPattern *copy() override { return new SplashSolidColor(color); }
 
-  ~SplashSolidColor();
+  ~SplashSolidColor() override;
 
   bool getColor(int x, int y, SplashColorPtr c) override;
 
diff --git a/test/gtk-test.cc b/test/gtk-test.cc
index 288b0d3f..ead53477 100644
--- a/test/gtk-test.cc
+++ b/test/gtk-test.cc
@@ -46,7 +46,7 @@ public:
                      void (*redrawCbkA)(void *data),
                      void *redrawCbkDataA, SplashColor sc);
   
-  virtual ~GDKSplashOutputDev();
+  ~GDKSplashOutputDev() override;
 
   //----- initialization and control
 
diff --git a/utils/HtmlOutputDev.h b/utils/HtmlOutputDev.h
index 0a7882c4..219278a2 100644
--- a/utils/HtmlOutputDev.h
+++ b/utils/HtmlOutputDev.h
@@ -239,7 +239,7 @@ public:
 	  bool outline = 0);
 
   // Destructor.
-  virtual ~HtmlOutputDev();
+  ~HtmlOutputDev() override;
 
   // Check if file was successfully created.
   virtual bool isOk() { return ok; }
diff --git a/utils/ImageOutputDev.h b/utils/ImageOutputDev.h
index 29fc68ad..34c670fb 100644
--- a/utils/ImageOutputDev.h
+++ b/utils/ImageOutputDev.h
@@ -66,7 +66,7 @@ public:
   ImageOutputDev(char *fileRootA, bool pageNamesA, bool listImagesA);
 
   // Destructor.
-  virtual ~ImageOutputDev();
+  ~ImageOutputDev() override;
 
   // Use PNG format for output
   void enablePNG(bool png) { outputPNG = png; }
diff --git a/utils/pdftohtml.cc b/utils/pdftohtml.cc
index 1d57501a..cdb7964e 100644
--- a/utils/pdftohtml.cc
+++ b/utils/pdftohtml.cc
@@ -174,7 +174,7 @@ public:
         bool reverseVideoA, SplashColorPtr paperColorA,
         bool bitmapTopDownA = true) : SplashOutputDev(colorModeA,
             bitmapRowPadA, reverseVideoA, paperColorA, bitmapTopDownA) { }
-  virtual ~SplashOutputDevNoText() { }
+  ~SplashOutputDevNoText() override { }
   
   void drawChar(GfxState *state, double x, double y,
       double dx, double dy,


More information about the poppler mailing list