diff --git a/CMakeLists.txt b/CMakeLists.txt
index b3deadaaf77ec9508dee29a4a6fa327a1673a464..abeb99cbdb66658e58fbc708fc52517f7d568c21 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -99,6 +99,9 @@ elseif (${CMAKE_CXX_COMPILER_ID} MATCHES "Clang")
     # is using this visibility setting.
     add_compile_options (-fvisibility=hidden)
     add_compile_options (-fvisibility-inlines-hidden)
+    add_compile_options (-Wno-deprecated-declarations)
+    add_compile_options (-Wno-deprecated-builtins)
+    add_compile_options (-Wno-deprecated-copy)
     if (ENABLE_OpenMP)
         if (CMAKE_HOST_APPLE)
             message(FATAL_ERROR "Apple Clang does not support OpenMP!")
diff --git a/optimizer/Expression/Parser/ast.hpp b/optimizer/Expression/Parser/ast.hpp
index d7b9d7c78af0868e2bca4d54bc92c5eb7d754d7d..0e6198874182f35248a3ed712bb9403abaa7448f 100644
--- a/optimizer/Expression/Parser/ast.hpp
+++ b/optimizer/Expression/Parser/ast.hpp
@@ -100,13 +100,13 @@ namespace client { namespace ast
         operand first;
         std::list<operation> rest;
     };
-
+#if 0
     // print functions for debugging
     inline std::ostream& operator<<(std::ostream& out, nil)
     {
         out << "nil"; return out;
     }
-
+#endif
     inline std::ostream& operator<<(std::ostream& out, identifier const& id)
     {
         out << id.name; return out;
diff --git a/src/Classic/AbsBeamline/Component.h b/src/Classic/AbsBeamline/Component.h
index c70d0a42e651194429cd00f3f5b1df47e5acffab..9126f0ba85b2317e48ea57cf0771c077cb4d78cd 100644
--- a/src/Classic/AbsBeamline/Component.h
+++ b/src/Classic/AbsBeamline/Component.h
@@ -159,7 +159,7 @@ public:
 
     virtual void getDimensions(double &zBegin, double &zEnd) const = 0;
 
-    virtual ElementType getType() const;
+    virtual ElementType getType() const override;
 
     /// Return design element.
     //  If this method returns a pointer to this component.
diff --git a/src/Classic/AbsBeamline/OutputPlane.h b/src/Classic/AbsBeamline/OutputPlane.h
index 28bc5a87d9c2768d232fc45e8b219a82e5e0f8f3..8b78a2519dd527f4b48677d4a0b2e03ff674c92c 100644
--- a/src/Classic/AbsBeamline/OutputPlane.h
+++ b/src/Classic/AbsBeamline/OutputPlane.h
@@ -185,14 +185,14 @@ public:
                   double& t, Vector_t& R, Vector_t& P);
 
     /** Returns empty field */
-    NullField& getField() {return nullfield_m;}
+    NullField& getField() override {return nullfield_m;}
     /** Returns empty field */
-    const NullField& getField() const {return nullfield_m;}
+    const NullField& getField() const override {return nullfield_m;}
 
     /** Returns empty geometry */
-    StraightGeometry& getGeometry() {return geom_m;}
+    StraightGeometry& getGeometry() override {return geom_m;}
     /** Returns empty geometry */
-    const StraightGeometry& getGeometry() const {return geom_m;}
+    const StraightGeometry& getGeometry() const override {return geom_m;}
     /** Make an RK4Step
      *  @li tstep: time step [s]
      *  @li chargeToMass: chargeToMass ratio [m^2/s^2/GV]
@@ -209,13 +209,13 @@ public:
     void operator=(const OutputPlane&) = delete;
     
     //ElementBase::ElementType getType() const;
-    ElementType getType() const;
+    ElementType getType() const override;
     void recentre(Vector_t R, Vector_t P);
 
 
 private:
     /// Initialise peakfinder file
-    virtual void doInitialise(PartBunchBase<double, 3>* /*bunch*/);
+    virtual void doInitialise(PartBunchBase<double, 3>* /*bunch*/) override;
 
     /// Record probe hits when bunch particles pass
     inline bool doPreCheck(PartBunchBase<double, 3> *bunch) override;
diff --git a/tests/classic_src/AbsBeamline/OutputPlaneTest.cpp b/tests/classic_src/AbsBeamline/OutputPlaneTest.cpp
index a0a6b80e389ca94795995146dbca97dc5dad33fe..ffce876dbf5b5e1bd2e508cd01481bda06eb5815 100644
--- a/tests/classic_src/AbsBeamline/OutputPlaneTest.cpp
+++ b/tests/classic_src/AbsBeamline/OutputPlaneTest.cpp
@@ -27,16 +27,16 @@
 class MockDipole : public Component {
 public:
     MockDipole(const std::string /*&name*/) : bfield_m(0, 1, 0), efield_m() {}
-    NullField &getField() {return nullfield_m;}
-    const NullField &getField() const {return nullfield_m;}
-    void accept(BeamlineVisitor& /*&visitor*/) const {}
-    void initialise(PartBunchBase<double, 3>* /*bunch*/, double& /*start*/, double& /*end*/) {}
-    void finalise() {}
-    bool bends() const {return true;}
-    void getDimensions(double& /*zBegin*/, double& /*zEnd*/) const {}
-    StraightGeometry& getGeometry() {return geom_m;}
-    const StraightGeometry& getGeometry() const {return geom_m;}
-    ElementBase* clone() const {return NULL;}
+    NullField &getField() override {return nullfield_m;}
+    const NullField &getField() const override {return nullfield_m;}
+    void accept(BeamlineVisitor& /*&visitor*/) const override {}
+    void initialise(PartBunchBase<double, 3>* /*bunch*/, double& /*start*/, double& /*end*/) override {}
+    void finalise() override {}
+    bool bends() const override {return true;}
+    void getDimensions(double& /*zBegin*/, double& /*zEnd*/) const override {}
+    StraightGeometry& getGeometry() override {return geom_m;}
+    const StraightGeometry& getGeometry() const override {return geom_m;}
+    ElementBase* clone() const override {return NULL;}
 
     void setField(Vector_t bfield, Vector_t efield) {bfield_m = bfield; efield_m = efield;}
 
diff --git a/tests/classic_src/AbsBeamline/ScalingFFAMagnetTest.cpp b/tests/classic_src/AbsBeamline/ScalingFFAMagnetTest.cpp
index 8b07e5808f41ce05542f7f883636087e8fc13bb5..74f3155e1161504b5137123c46f65db80d1138e8 100644
--- a/tests/classic_src/AbsBeamline/ScalingFFAMagnetTest.cpp
+++ b/tests/classic_src/AbsBeamline/ScalingFFAMagnetTest.cpp
@@ -67,7 +67,7 @@ public:
 
     Vector_t getB(Vector_t pos) {
         Vector_t mom, B, E;
-        double t;
+        double t = 0.0;
         sector_m->apply(pos, mom, t, E, B);
         return B;
     }