diff --git a/PreCompiledHeaders.cmake b/PreCompiledHeaders.cmake
index 4f45b780cdb8b164bb42b7757e827572bbe41c3d..51da6c67bb6dbfcd20e753815f2ffb91e5b842cd 100644
--- a/PreCompiledHeaders.cmake
+++ b/PreCompiledHeaders.cmake
@@ -26,6 +26,7 @@ set(STL_INC
     <iomanip>
     <filesystem>
     <bit>
+    <cfloat>
 )
 
 set(EXT_INC PRIVATE
diff --git a/src/Lib/Ass/Syl.hh b/src/Lib/Ass/Syl.hh
index 91600b12b7ab75d8280888d6b8a9feffb69e09cf..920dba5ed139b58a04b95b96824e9719c2332205 100644
--- a/src/Lib/Ass/Syl.hh
+++ b/src/Lib/Ass/Syl.hh
@@ -26,9 +26,6 @@ public:
     explicit Syl(Line *const, const QString &,
                  ConstructMode mode = ConstructMode::ReadAssTags) noexcept;
 
-    Syl &operator=(const Syl &) = delete;
-    ~Syl() noexcept             = default;
-
     QString getContent() const noexcept;
     quint64 getDuration() const noexcept;
 
diff --git a/src/Lib/Script/CRTPLuaScriptObject/JobDeclaration.cc b/src/Lib/Script/CRTPLuaScriptObject/JobDeclaration.cc
index 008dfc4370339e63d44decbf3bc4f0b8e9464b71..e2337000cb0ed5b839cbd15a633bdf3462b0417b 100644
--- a/src/Lib/Script/CRTPLuaScriptObject/JobDeclaration.cc
+++ b/src/Lib/Script/CRTPLuaScriptObject/JobDeclaration.cc
@@ -40,8 +40,8 @@ JobDeclaration::setOptions(lua_State *L) noexcept
     IterateOverArray(L, 2, [&context, job, L]() noexcept -> bool {
         OptionDeclaration *opt = OptionDeclaration::CHECK(L, -1);
 
-        for (const auto &[name, value] : opt->options) {
-            err(context) << "\tregister option \"" << name << "\" with type \""
+        for (const auto &[regName, value] : opt->options) {
+            err(context) << "\tregister option \"" << regName << "\" with type \""
                          << value.getSignature() << "\"";
         }
 
diff --git a/src/PreCompiledHeaders.hh b/src/PreCompiledHeaders.hh
index 0335573ee4e50cdee43cdf94a87443d962dcb8aa..8d19501c2b40531e8a88fa9a65b58ea33d36b10a 100644
--- a/src/PreCompiledHeaders.hh
+++ b/src/PreCompiledHeaders.hh
@@ -27,6 +27,7 @@
 #include <iomanip>
 #include <filesystem>
 #include <bit>
+#include <cfloat>
 
 /* EXT_INC_PRIVATE */
 #include <mpv/client.h>
diff --git a/src/UI/DocumentViews/AssLinesView.hh b/src/UI/DocumentViews/AssLinesView.hh
index 77cccdb830181937c14321239fd2782fe7f457b1..38ff22586a65d205673f58c1061fc653a132cd70 100644
--- a/src/UI/DocumentViews/AssLinesView.hh
+++ b/src/UI/DocumentViews/AssLinesView.hh
@@ -44,7 +44,7 @@ private:
     void mouseMoveEvent(QMouseEvent *) noexcept override;
 
 protected slots:
-    virtual void selectionChanged(const QItemSelection &selected, const QItemSelection &deselected);
+    virtual void selectionChanged(const QItemSelection &selected, const QItemSelection &deselected) override;
 
 signals:
     void hoverIndexChanged(QModelIndex);
diff --git a/src/UI/DocumentViews/AudioVisualizer/TimingAxis.cc b/src/UI/DocumentViews/AudioVisualizer/TimingAxis.cc
index 1186dfddffa7ebd6b3b8df677d2432dd5741a394..779d014617f9b6e636d1e27ba8405a5d0482db13 100644
--- a/src/UI/DocumentViews/AudioVisualizer/TimingAxis.cc
+++ b/src/UI/DocumentViews/AudioVisualizer/TimingAxis.cc
@@ -72,7 +72,7 @@ TimingAxis::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWi
     if (minorTicks > 0) {
         for (int i = 0; i < audioLength; i += minorTicks) {
             int pos = getTimingParam()->posFromMs(i);
-            if (Q_LIKELY(fmod(i, majorTicks) != 0))
+            if (Q_LIKELY(fmod(i, majorTicks) < DBL_EPSILON))
                 painter->drawLine(pos, 0, pos, -minorTicksHeight);
         }
     }
diff --git a/src/UI/DocumentViews/AudioVisualizer/TimingCursor.hh b/src/UI/DocumentViews/AudioVisualizer/TimingCursor.hh
index 130f2b99db958559bed0e08639bf7ff06eed7a28..a9e2c7ca5a6472c644d3952f810305100736176d 100644
--- a/src/UI/DocumentViews/AudioVisualizer/TimingCursor.hh
+++ b/src/UI/DocumentViews/AudioVisualizer/TimingCursor.hh
@@ -12,7 +12,6 @@ public:
     void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override;
 
 private:
-    int height;
     QString cursorTime;
     // FIXME
     // Forced to define a "max-width" for the text,
diff --git a/src/UI/DocumentViews/AudioVisualizer/TimingLine.cc b/src/UI/DocumentViews/AudioVisualizer/TimingLine.cc
index 10df7f489732c959b024810096b136c59e27f846..4cee9bedbbaedc51a1d431cbf3f187471d446eed 100644
--- a/src/UI/DocumentViews/AudioVisualizer/TimingLine.cc
+++ b/src/UI/DocumentViews/AudioVisualizer/TimingLine.cc
@@ -41,7 +41,7 @@ TimingLine::sepEnterPress(int sepIndex)
 void
 TimingLine::sepExitPress(int sepIndex)
 {
-    if (tempOffset) {
+    if (qAbs(tempOffset) <= DBL_EPSILON) {
         prepareGeometryChange();
         if (sepIndex == 0) {
             moveBy(tempOffset, 0);
diff --git a/src/UI/DocumentViews/AudioVisualizer/TimingParams.hh b/src/UI/DocumentViews/AudioVisualizer/TimingParams.hh
index b2103f304b68355292ae9e9d218324d10792fc40..332d5b92d0842ed18d5a21e30966b531d493ae66 100644
--- a/src/UI/DocumentViews/AudioVisualizer/TimingParams.hh
+++ b/src/UI/DocumentViews/AudioVisualizer/TimingParams.hh
@@ -58,31 +58,31 @@ public:
     {
         m_minorTicks = t;
         m_majorTicks = T;
-    };
-    inline void setAxisHeight(int x) { m_axisHeight = x; };
-    inline void setAudioHeight(int x) { m_audioHeight = x; };
+    }
+    inline void setAxisHeight(int x) { m_axisHeight = x; }
+    inline void setAudioHeight(int x) { m_audioHeight = x; }
     inline void setAudioWidth(int x)
     {
         m_audioWidth = int(x * m_audioWidthScale);
         updateRatios();
-    };
+    }
     inline void setAudioLength(int x)
     {
         m_audioLength = x;
         updateRatios();
-    };
+    }
 
-    inline int axisHeight() { return m_axisHeight; };
-    inline int audioHeight() { return m_audioHeight; };
-    inline int audioWidth() { return m_audioWidth; };
-    inline int audioLength() { return m_audioLength; };
+    inline int axisHeight() { return m_axisHeight; }
+    inline int audioHeight() { return m_audioHeight; }
+    inline int audioWidth() { return m_audioWidth; }
+    inline int audioLength() { return m_audioLength; }
 
     inline void setAudioWidthScale(int s)
     {
         m_audioWidthScale = 1 + 0.01 * s;
         setAudioWidth(m_audioWidth);
         updateRatios();
-    };
+    }
 
     template <typename T> T posFromMs(T t) noexcept {
         return T(t * m_wl);
diff --git a/src/UI/DocumentViews/AudioVisualizer/TimingSeparator.hh b/src/UI/DocumentViews/AudioVisualizer/TimingSeparator.hh
index 498cafd824666235394ddd1e35a1b8fda10ed063..ca3fa9559363d156cd9e0c0a4565e08af37eb7d4 100644
--- a/src/UI/DocumentViews/AudioVisualizer/TimingSeparator.hh
+++ b/src/UI/DocumentViews/AudioVisualizer/TimingSeparator.hh
@@ -33,8 +33,8 @@ signals:
 
 protected:
     QVariant itemChange(GraphicsItemChange change, const QVariant &value) noexcept override;
-    void mousePressEvent(QGraphicsSceneMouseEvent *event);
-    void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
+    void mousePressEvent(QGraphicsSceneMouseEvent *event) override;
+    void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override;
 
 public:
     void silentlySetPos(qreal, qreal);
diff --git a/src/UI/ScriptDocumentView.hh b/src/UI/ScriptDocumentView.hh
index 0971fc19a3503c55d88d32393fe62cfc083d0569..d4b0de0f910cadda4677d847454c09c685932d8f 100644
--- a/src/UI/ScriptDocumentView.hh
+++ b/src/UI/ScriptDocumentView.hh
@@ -35,7 +35,7 @@ public:
     QIcon getDocumentTabIcon() const noexcept override;
     AbstractDocument *getDocument() const noexcept override;
 
-    void loadViews() noexcept override{};
+    void loadViews() noexcept override {}
 
     void setUseFakeVimEditor(bool yes) noexcept;