diff --git a/DDCore/src/Evaluator/Evaluator.cpp b/DDCore/src/Evaluator/Evaluator.cpp
index 2d3391a6231f6da5876589bd7368d1e3ed4dfeff..62c7c292b2f759a28d3df97c001b480d48bcef04 100644
--- a/DDCore/src/Evaluator/Evaluator.cpp
+++ b/DDCore/src/Evaluator/Evaluator.cpp
@@ -354,6 +354,7 @@ static int maker(int op, stack<double> & val)
     errno = 0;
     val.top() = pow(val1,val2);
     if (errno == 0) return EVAL::OK;
+    [[fallthrough]];
   default:
     return EVAL::ERROR_CALCULATION_ERROR;
   }
diff --git a/DDCore/src/FieldTypes.cpp b/DDCore/src/FieldTypes.cpp
index 52e52013c5e692745ce506270d9d2b0e7fbec263..34035d5c0fe80a61848c90fc3a6e0100fd86c240 100644
--- a/DDCore/src/FieldTypes.cpp
+++ b/DDCore/src/FieldTypes.cpp
@@ -101,15 +101,19 @@ void MultipoleField::fieldComponents(const double* pos, double* field) {
     case 4:      // Ocupole momentum
       by +=  coefficents[3] * (x2*x - 3.0*x*y2) + skews[3]*(y2*y - 3.0*x*y2);
       bx +=  coefficents[3] * (3.0*x2*y - y2*y) + skews[3]*(x2*x - 3.0*x*y2);
+      [[fallthrough]];
     case 3:      // Sextupole momentum:
       by += -coefficents[2] * (x2 - y2) + skews[2] * 2.0 * xy;
       bx +=  coefficents[2] * 2.0 * xy + skews[2] * (x2 - y2);
+      [[fallthrough]];
     case 2:      // Quadrupole momentum:
       bx += coefficents[1] * x - skews[1]*y;
       by += coefficents[1] * y + skews[1]*x;
+      [[fallthrough]];
     case 1:      // Dipole momentum:
       bx += skews[0];
       by += coefficents[0];
+      [[fallthrough]];
     case 0:      // Nothing, but still valid
       break;
     default:     // Error condition
diff --git a/DDCore/src/XML/tinyxmlparser_inl.h b/DDCore/src/XML/tinyxmlparser_inl.h
index 2e0e58a331856c598518cd255cbfe47f0b076668..922e6e9a50483cc4edf9617bd2bc1998f5f547d3 100644
--- a/DDCore/src/XML/tinyxmlparser_inl.h
+++ b/DDCore/src/XML/tinyxmlparser_inl.h
@@ -119,14 +119,17 @@ void TiXmlBase::ConvertUTF32ToUTF8( unsigned long input, char* output, int* leng
     --output;
     *output = (char)((input | BYTE_MARK) & BYTE_MASK);
     input >>= 6;
+    [[fallthrough]];
   case 3:
     --output;
     *output = (char)((input | BYTE_MARK) & BYTE_MASK);
     input >>= 6;
+    [[fallthrough]];
   case 2:
     --output;
     *output = (char)((input | BYTE_MARK) & BYTE_MASK);
     input >>= 6;
+    [[fallthrough]];
   case 1:
     --output;
     *output = (char)(input | FIRST_BYTE_MARK[*length]);
diff --git a/DDG4/include/DDG4/Geant4EventSeed.h b/DDG4/include/DDG4/Geant4EventSeed.h
index 4c4c704753300a7857579aa6f951a0f4239f0c36..c682920a35a5d57e3d0688c5bd5e160aae04f5c1 100644
--- a/DDG4/include/DDG4/Geant4EventSeed.h
+++ b/DDG4/include/DDG4/Geant4EventSeed.h
@@ -165,17 +165,17 @@ namespace DD4hep {
       c += length;
 
       switch ( len ) {
-      case 11: c += ( (unsigned)k[10] << 24 );
-      case 10: c += ( (unsigned)k[9] << 16 );
-      case 9 : c += ( (unsigned)k[8] << 8 );
+      case 11: c += ( (unsigned)k[10] << 24 ); [[fallthrough]];
+      case 10: c += ( (unsigned)k[9] << 16 ); [[fallthrough]];
+      case 9 : c += ( (unsigned)k[8] << 8 ); [[fallthrough]];
         /* First byte of c reserved for length */
-      case 8 : b += ( (unsigned)k[7] << 24 );
-      case 7 : b += ( (unsigned)k[6] << 16 );
-      case 6 : b += ( (unsigned)k[5] << 8 );
-      case 5 : b += k[4];
-      case 4 : a += ( (unsigned)k[3] << 24 );
-      case 3 : a += ( (unsigned)k[2] << 16 );
-      case 2 : a += ( (unsigned)k[1] << 8 );
+      case 8 : b += ( (unsigned)k[7] << 24 ); [[fallthrough]];
+      case 7 : b += ( (unsigned)k[6] << 16 ); [[fallthrough]];
+      case 6 : b += ( (unsigned)k[5] << 8 ); [[fallthrough]];
+      case 5 : b += k[4]; [[fallthrough]];
+      case 4 : a += ( (unsigned)k[3] << 24 ); [[fallthrough]];
+      case 3 : a += ( (unsigned)k[2] << 16 ); [[fallthrough]];
+      case 2 : a += ( (unsigned)k[1] << 8 ); [[fallthrough]];
       case 1 : a += k[0];
       }