diff --git a/src/BRepAlgo/BRepAlgo_DSAccess.cxx b/src/BRepAlgo/BRepAlgo_DSAccess.cxx
index 620365eb6c..ae103e3ac4 100644
--- a/src/BRepAlgo/BRepAlgo_DSAccess.cxx
+++ b/src/BRepAlgo/BRepAlgo_DSAccess.cxx
@@ -443,12 +443,12 @@ const TopTools_ListOfShape& BRepAlgo_DSAccess::SectionVertex
 (const TopoDS_Shape& F,
  const TopoDS_Shape& E)
 {
-  TopTools_ListOfShape Result;
-  Result.Clear();
-  if(F.ShapeType() != TopAbs_FACE) return myEmptyListOfShape;
-  if(E.ShapeType() != TopAbs_EDGE) return myEmptyListOfShape;
+  myListOfVertex.Clear();
+  if(F.ShapeType() != TopAbs_FACE || E.ShapeType() != TopAbs_EDGE)
+    return myListOfVertex;
   Standard_Integer iF = myHDS->Shape(F), iE = myHDS->Shape(E);
-  if((iF == 0) || (iE == 0)) return myEmptyListOfShape;
+  if((iF == 0) || (iE == 0))
+    return myListOfVertex;
 
   const TopOpeBRepDS_DataStructure& DS = myHDS->DS();
   const TopOpeBRepDS_ListOfInterference& LI = 
@@ -464,13 +464,12 @@ const TopTools_ListOfShape& BRepAlgo_DSAccess::SectionVertex
       goodKind  = I->GeometryType();
       goodIndex = I->Geometry();
       if(goodKind == TopOpeBRepDS_VERTEX)
-	Result.Append(myHDS->Shape(goodIndex));
+	myListOfVertex.Append(myHDS->Shape(goodIndex));
       else 
 	if (goodKind == TopOpeBRepDS_POINT)
-	  Result.Append(myHB->NewVertex(goodIndex));
+	  myListOfVertex.Append(myHB->NewVertex(goodIndex));
     }
   }
-  myListOfVertex = Result;
   return myListOfVertex;
 }
 
diff --git a/src/IntPatch/IntPatch_ImpImpIntersection_4.gxx b/src/IntPatch/IntPatch_ImpImpIntersection_4.gxx
index 02704fe8fb..6b05437b7a 100644
--- a/src/IntPatch/IntPatch_ImpImpIntersection_4.gxx
+++ b/src/IntPatch/IntPatch_ImpImpIntersection_4.gxx
@@ -2510,7 +2510,7 @@ Standard_Boolean IntCyCyTrim( const IntSurf_Quadric& theQuad1,
         anUexpect[i] = anUf;
       }
       
-      Standard_Real aCriticalDelta[aNbCritPointsMax];
+      Standard_Real aCriticalDelta[aNbCritPointsMax] = {0};
       for(Standard_Integer aCritPID = 0; aCritPID < aNbCritPoints; aCritPID++)
       { //We are not intersted in elements of aCriticalDelta array
         //if their index is greater than or equal to aNbCritPoints
diff --git a/src/IntTools/IntTools_EdgeEdge.cxx b/src/IntTools/IntTools_EdgeEdge.cxx
index d9474f0401..095fb507a2 100644
--- a/src/IntTools/IntTools_EdgeEdge.cxx
+++ b/src/IntTools/IntTools_EdgeEdge.cxx
@@ -1030,6 +1030,7 @@ Standard_Integer FindDistPC(const Standard_Real aT1A,
   //
   iC = bMaxDist ? 1 : -1;
   iErr = 0;
+  aT1max = aT2max = 0.; // silence GCC warning
   //
   aGS = 0.6180339887498948482045868343656;// =0.5*(1.+sqrt(5.))-1.;
   aA = aT1A;
diff --git a/src/Intf/Intf_Tool.cxx b/src/Intf/Intf_Tool.cxx
index 0b2a28bbaf..c776f2e3dc 100644
--- a/src/Intf/Intf_Tool.cxx
+++ b/src/Intf/Intf_Tool.cxx
@@ -975,39 +975,24 @@ Standard_Integer Intf_Tool::Inters3d(const gp_Hypr& theCurv,
     {
       if(parint[i] <= parint[j])
       {
-        Standard_Real aTemp = parint[i];
-        parint[i] = parint[j];
-        parint[j] = aTemp;
-
-        aTemp = zint[i];
-        zint[i] = zint[j];
-        zint[j] = aTemp;
-
-        aTemp = yint[i];
-        yint[i] = yint[j];
-        yint[j] = aTemp;
-
-        aTemp = xint[i];
-        xint[i] = xint[j];
-        xint[j] = aTemp;
-
-        aTemp = bord[i];
-        bord[i] = bord[j];
-        bord[j] = RealToInt(aTemp);
+	std::swap (parint[i], parint[j]);
+	std::swap (zint[i], zint[j]);
+	std::swap (yint[i], yint[j]);
+	std::swap (xint[i], xint[j]);
+	std::swap (bord[i], bord[j]);
       }
 
       if((i < nbpi - 1) && IsEqual(parint[i], parint[i+1]))
       {
-        for(Standard_Integer k = i + 1; k < aNbDiffPoints; k++)
-        {
-          parint[k-1] = parint[k];
-          zint[k-1] = zint[k];
-          yint[k-1] = yint[k];
-          xint[k-1] = xint[k];
-          bord[k-1] = bord[k];
-        }
-
         aNbDiffPoints--;
+        for(Standard_Integer k = i; k < aNbDiffPoints; k++)
+        {
+          parint[k] = parint[k+1];
+          zint[k] = zint[k+1];
+          yint[k] = yint[k+1];
+          xint[k] = xint[k+1];
+          bord[k] = bord[k+1];
+        }
       }
     }
   }
diff --git a/src/OSD/OSD_signal.cxx b/src/OSD/OSD_signal.cxx
index 49799165f6..6f7f009472 100644
--- a/src/OSD/OSD_signal.cxx
+++ b/src/OSD/OSD_signal.cxx
@@ -343,7 +343,8 @@ static void SegvHandler(const int theSignal,
     return;
   }
 #else
-  (void )theContext;
+  (void)theSignal; // silence GCC warnings
+  (void)theContext;
 #endif
 #ifdef linux
   if (fFltExceptions)
diff --git a/src/OpenGl/OpenGl_AspectFace.cxx b/src/OpenGl/OpenGl_AspectFace.cxx
index a4252161b8..0b290b5e6a 100644
--- a/src/OpenGl/OpenGl_AspectFace.cxx
+++ b/src/OpenGl/OpenGl_AspectFace.cxx
@@ -43,7 +43,8 @@ namespace
     {{ 1.0F, 1.0F, 1.0F, 1.0F }}, // diffuse color
     {{ 1.0F, 1.0F, 1.0F, 1.0F }}, // specular color
     {{ 1.0F, 1.0F, 1.0F, 1.0F }}, // emissive color
-    {{ 1.0F, 1.0F, 1.0F, 1.0F }}  // material color
+    {{ 1.0F, 1.0F, 1.0F, 1.0F }}, // material color
+    Graphic3d_BSDF()
   };
 
   static const TCollection_AsciiString THE_EMPTY_KEY;
diff --git a/src/OpenGl/OpenGl_AspectMarker.cxx b/src/OpenGl/OpenGl_AspectMarker.cxx
index bc3508bf7f..6227c16517 100644
--- a/src/OpenGl/OpenGl_AspectMarker.cxx
+++ b/src/OpenGl/OpenGl_AspectMarker.cxx
@@ -174,19 +174,19 @@ typedef PM_FONT_INFO* pm_font_info;
 static const PM_FONT_INFO arrPMFontInfo[][TEL_NO_OF_SIZES] =
 {
  // TOM_POINT - not used
- {{0},
-  {0},
-  {0},
-  {0},
-  {0},
-  {0},
-  {0},
-  {0},
-  {0},
-  {0},
-  {0},
-  {0},
-  {0}},
+ {{0, 0, 0},
+  {0, 0, 0},
+  {0, 0, 0},
+  {0, 0, 0},
+  {0, 0, 0},
+  {0, 0, 0},
+  {0, 0, 0},
+  {0, 0, 0},
+  {0, 0, 0},
+  {0, 0, 0},
+  {0, 0, 0},
+  {0, 0, 0},
+  {0, 0, 0}},
 
  // TOM_PLUS
  {{ 9.f,  9.f, PM_PLUS_10_OFT},
diff --git a/src/OpenGl/OpenGl_GraphicDriver.cxx b/src/OpenGl/OpenGl_GraphicDriver.cxx
index 545009d2b0..3881cfe58c 100644
--- a/src/OpenGl/OpenGl_GraphicDriver.cxx
+++ b/src/OpenGl/OpenGl_GraphicDriver.cxx
@@ -492,7 +492,8 @@ void OpenGl_GraphicDriver::TextSize (const Handle(Graphic3d_CView)& theView,
     { 1.F, 1.F, 1.F }, //ColorSubTitle
     0, //TextZoomable
     0.F, //TextAngle
-    (int)Font_FA_Regular //TextFontAspect
+    (int)Font_FA_Regular, //TextFontAspect
+    0 //ShaderProgram
   };
   aTextAspect.SetAspect(aDefaultContextText);
   TCollection_ExtendedString anExtText = theText;
diff --git a/src/OpenGl/OpenGl_Trihedron.cxx b/src/OpenGl/OpenGl_Trihedron.cxx
index e25d821d24..11c0178adb 100644
--- a/src/OpenGl/OpenGl_Trihedron.cxx
+++ b/src/OpenGl/OpenGl_Trihedron.cxx
@@ -197,7 +197,7 @@ void OpenGl_Trihedron::redraw (const Handle(OpenGl_Workspace)& theWorkspace) con
 
   // Set line aspect
   const OpenGl_AspectLine* aCurrentAspectLine = theWorkspace->AspectLine (Standard_True);
-  CALL_DEF_CONTEXTLINE aLineAspect = {1, 1, { 1.F, 1.F, 1.F },  aCurrentAspectLine->Type(), aCurrentAspectLine->Width()};
+  CALL_DEF_CONTEXTLINE aLineAspect = {1, 1, { 1.F, 1.F, 1.F },  aCurrentAspectLine->Type(), aCurrentAspectLine->Width(), 0};
   aLineAspect.Color.r = myZColor.r();
   aLineAspect.Color.g = myZColor.g();
   aLineAspect.Color.b = myZColor.b();
diff --git a/src/STEPConstruct/STEPConstruct_GDTProperty.cxx b/src/STEPConstruct/STEPConstruct_GDTProperty.cxx
index c777b29ba4..59cdd34577 100644
--- a/src/STEPConstruct/STEPConstruct_GDTProperty.cxx
+++ b/src/STEPConstruct/STEPConstruct_GDTProperty.cxx
@@ -166,9 +166,9 @@ void STEPConstruct_GDTProperty::GetDimModifiers(const Handle(StepRepr_CompoundRe
 //purpose  : 
 //=======================================================================
 void STEPConstruct_GDTProperty::GetDimClassOfTolerance(const Handle(StepShape_LimitsAndFits)& theLAF,
-                                   Standard_Boolean theHolle,
-                                   XCAFDimTolObjects_DimensionFormVariance theFV,
-                                   XCAFDimTolObjects_DimensionGrade theG)
+                                   Standard_Boolean& theHolle,
+                                   XCAFDimTolObjects_DimensionFormVariance& theFV,
+                                   XCAFDimTolObjects_DimensionGrade& theG)
 {
   Handle(TCollection_HAsciiString) aFormV = theLAF->FormVariance();
   Handle(TCollection_HAsciiString) aGrade = theLAF->Grade();
@@ -597,4 +597,4 @@ Standard_Boolean STEPConstruct_GDTProperty::GetTolValueType(const Handle(TCollec
       return Standard_True;
     }
     return Standard_False;
-}
\ No newline at end of file
+}
diff --git a/src/STEPConstruct/STEPConstruct_GDTProperty.hxx b/src/STEPConstruct/STEPConstruct_GDTProperty.hxx
index cd995eb43c..19204e2739 100644
--- a/src/STEPConstruct/STEPConstruct_GDTProperty.hxx
+++ b/src/STEPConstruct/STEPConstruct_GDTProperty.hxx
@@ -47,9 +47,9 @@ public:
                                               XCAFDimTolObjects_DimensionModifiersSequence& theModifiers);
 
   Standard_EXPORT static void GetDimClassOfTolerance(const Handle(StepShape_LimitsAndFits)& theLAF,
-                                                     Standard_Boolean theHolle,
-                                                     XCAFDimTolObjects_DimensionFormVariance theFV,
-                                                     XCAFDimTolObjects_DimensionGrade theG);
+                                                     Standard_Boolean& theHolle,
+                                                     XCAFDimTolObjects_DimensionFormVariance& theFV,
+                                                     XCAFDimTolObjects_DimensionGrade& theG);
 
   Standard_EXPORT static Standard_Boolean GetDimType(const Handle(TCollection_HAsciiString)& theName,
                                                      XCAFDimTolObjects_DimensionType& theType);