From 825b0bd7829a4e21d7323d1a1cb4a1a27e03e5f6 Mon Sep 17 00:00:00 2001 From: Pasukhin Dmitry Date: Fri, 2 Jan 2026 14:34:45 +0000 Subject: [PATCH] Coding - Fix GCC warnings (#975) - Removed unnecessary reference qualifiers (`&`) from `gp_Dir` variable declarations in geometric evaluation classes - Initialized previously uninitialized variables (`DuvBuf`, `anFDOpenMode`) to prevent undefined behavior - Removed redundant `Standard_EXPORT` from deleted copy constructors - Added explicit base class initialization in `EnumeratedThread` copy constructor - Replaced C-style cast with `reinterpret_cast` in `Quantity_ColorRGBA` for type safety --- .../NCollection/NCollection_BaseSequence.hxx | 2 +- .../TKernel/OSD/OSD_File.cxx | 12 +++++------ .../TKernel/OSD/OSD_ThreadPool.hxx | 3 ++- .../TKernel/Quantity/Quantity_ColorRGBA.hxx | 4 ++-- .../TKGeomAlgo/IntImp/IntImp_Int2S.gxx | 2 +- .../BRepClass3d/BRepClass3d_SolidExplorer.hxx | 2 +- .../GeomGridEval/GeomGridEval_Ellipse.cxx | 20 +++++++++---------- .../GeomGridEval/GeomGridEval_Hyperbola.cxx | 20 +++++++++---------- .../TKG3d/GeomGridEval/GeomGridEval_Line.hxx | 4 ++-- .../GeomGridEval/GeomGridEval_Parabola.cxx | 16 +++++++-------- .../TKG3d/GeomGridEval/GeomGridEval_Plane.hxx | 16 +++++++-------- 11 files changed, 51 insertions(+), 50 deletions(-) diff --git a/src/FoundationClasses/TKernel/NCollection/NCollection_BaseSequence.hxx b/src/FoundationClasses/TKernel/NCollection/NCollection_BaseSequence.hxx index c6d6eb5eed..8a0106e509 100644 --- a/src/FoundationClasses/TKernel/NCollection/NCollection_BaseSequence.hxx +++ b/src/FoundationClasses/TKernel/NCollection/NCollection_BaseSequence.hxx @@ -155,7 +155,7 @@ protected: private: // Methods PRIVATE // - Standard_EXPORT NCollection_BaseSequence(const NCollection_BaseSequence& Other) = delete; + NCollection_BaseSequence(const NCollection_BaseSequence& Other) = delete; void Nullify() noexcept { diff --git a/src/FoundationClasses/TKernel/OSD/OSD_File.cxx b/src/FoundationClasses/TKernel/OSD/OSD_File.cxx index a22389604b..0a89e85613 100644 --- a/src/FoundationClasses/TKernel/OSD/OSD_File.cxx +++ b/src/FoundationClasses/TKernel/OSD/OSD_File.cxx @@ -490,8 +490,8 @@ void OSD_File::Build(const OSD_OpenMode theMode, const OSD_Protection& theProtec throw Standard_ProgramError("OSD_File::Build(): no name was given"); } - const char* anFDOpenMode; - int anOpenMode = O_CREAT | O_TRUNC; + const char* anFDOpenMode = nullptr; + int anOpenMode = O_CREAT | O_TRUNC; switch (theMode) { case OSD_ReadOnly: @@ -572,8 +572,8 @@ void OSD_File::Append(const OSD_OpenMode theMode, const OSD_Protection& theProte throw Standard_ProgramError("OSD_File::Append(): no name was given"); } - const char* anFDOpenMode; - int anOpenMode = O_APPEND; + const char* anFDOpenMode = nullptr; + int anOpenMode = O_APPEND; switch (theMode) { case OSD_ReadOnly: @@ -647,8 +647,8 @@ void OSD_File::Open(const OSD_OpenMode theMode, const OSD_Protection& theProtect throw Standard_ProgramError("OSD_File::Open(): no name was given"); } - const char* anFDOpenMode; - int anOpenMode = 0; + const char* anFDOpenMode = nullptr; + int anOpenMode = 0; switch (theMode) { case OSD_ReadOnly: diff --git a/src/FoundationClasses/TKernel/OSD/OSD_ThreadPool.hxx b/src/FoundationClasses/TKernel/OSD/OSD_ThreadPool.hxx index b6ba2e08ee..e8084f1244 100644 --- a/src/FoundationClasses/TKernel/OSD/OSD_ThreadPool.hxx +++ b/src/FoundationClasses/TKernel/OSD/OSD_ThreadPool.hxx @@ -143,7 +143,8 @@ protected: public: //! Copy constructor. EnumeratedThread(const EnumeratedThread& theCopy) - : myPool(nullptr), + : OSD_Thread(theCopy), + myPool(nullptr), myJob(nullptr), myWakeEvent(false), myIdleEvent(false), diff --git a/src/FoundationClasses/TKernel/Quantity/Quantity_ColorRGBA.hxx b/src/FoundationClasses/TKernel/Quantity/Quantity_ColorRGBA.hxx index 0b8b291a0e..8208d05a59 100644 --- a/src/FoundationClasses/TKernel/Quantity/Quantity_ColorRGBA.hxx +++ b/src/FoundationClasses/TKernel/Quantity/Quantity_ColorRGBA.hxx @@ -78,9 +78,9 @@ public: constexpr void SetAlpha(const float theAlpha) noexcept { myAlpha = theAlpha; } //! Return the color as vector of 4 float elements. - constexpr operator const NCollection_Vec4&() const noexcept + operator const NCollection_Vec4&() const noexcept { - return *(const NCollection_Vec4*)this; + return *reinterpret_cast*>(this); } //! Returns true if the distance between colors is greater than Epsilon(). diff --git a/src/ModelingAlgorithms/TKGeomAlgo/IntImp/IntImp_Int2S.gxx b/src/ModelingAlgorithms/TKGeomAlgo/IntImp/IntImp_Int2S.gxx index 30149fae39..de07e7b1dc 100644 --- a/src/ModelingAlgorithms/TKGeomAlgo/IntImp/IntImp_Int2S.gxx +++ b/src/ModelingAlgorithms/TKGeomAlgo/IntImp/IntImp_Int2S.gxx @@ -128,7 +128,7 @@ IntImp_ConstIsoparametric IntImp_Int2S::Perform(const NCollection_Array1 gp_Vec DPUV[4]; gp_Pnt P1, P2; double Epsuv[4]; - double DuvBuf[4]; + double DuvBuf[4] = {}; NCollection_Array1 Duv(DuvBuf[0], 1, 4); double UVd[4], UVf[4]; IntImp_ConstIsoparametric ChoixIso[4]; diff --git a/src/ModelingAlgorithms/TKTopAlgo/BRepClass3d/BRepClass3d_SolidExplorer.hxx b/src/ModelingAlgorithms/TKTopAlgo/BRepClass3d/BRepClass3d_SolidExplorer.hxx index 15614fc0fe..ff3de91743 100644 --- a/src/ModelingAlgorithms/TKTopAlgo/BRepClass3d/BRepClass3d_SolidExplorer.hxx +++ b/src/ModelingAlgorithms/TKTopAlgo/BRepClass3d/BRepClass3d_SolidExplorer.hxx @@ -184,7 +184,7 @@ public: Standard_EXPORT void Destroy(); private: - Standard_EXPORT BRepClass3d_SolidExplorer(const BRepClass3d_SolidExplorer& Oth) = delete; + BRepClass3d_SolidExplorer(const BRepClass3d_SolidExplorer& Oth) = delete; protected: Standard_EXPORT TopAbs_State ClassifyUVPoint(const IntCurvesFace_Intersector& theIntersector, diff --git a/src/ModelingData/TKG3d/GeomGridEval/GeomGridEval_Ellipse.cxx b/src/ModelingData/TKG3d/GeomGridEval/GeomGridEval_Ellipse.cxx index 156660362e..14966b6d31 100644 --- a/src/ModelingData/TKG3d/GeomGridEval/GeomGridEval_Ellipse.cxx +++ b/src/ModelingData/TKG3d/GeomGridEval/GeomGridEval_Ellipse.cxx @@ -32,8 +32,8 @@ NCollection_Array1 GeomGridEval_Ellipse::EvaluateGrid( const gp_Elips& anElips = myGeom->Elips(); const gp_Pnt& aCenter = anElips.Location(); - const gp_Dir& aXDir = anElips.XAxis().Direction(); - const gp_Dir& aYDir = anElips.YAxis().Direction(); + const gp_Dir aXDir = anElips.XAxis().Direction(); + const gp_Dir aYDir = anElips.YAxis().Direction(); const double aMajR = anElips.MajorRadius(); const double aMinR = anElips.MinorRadius(); @@ -77,8 +77,8 @@ NCollection_Array1 GeomGridEval_Ellipse::EvaluateGridD1( const gp_Elips& anElips = myGeom->Elips(); const gp_Pnt& aCenter = anElips.Location(); - const gp_Dir& aXDir = anElips.XAxis().Direction(); - const gp_Dir& aYDir = anElips.YAxis().Direction(); + const gp_Dir aXDir = anElips.XAxis().Direction(); + const gp_Dir aYDir = anElips.YAxis().Direction(); const double aMajR = anElips.MajorRadius(); const double aMinR = anElips.MinorRadius(); @@ -127,8 +127,8 @@ NCollection_Array1 GeomGridEval_Ellipse::EvaluateGridD2( const gp_Elips& anElips = myGeom->Elips(); const gp_Pnt& aCenter = anElips.Location(); - const gp_Dir& aXDir = anElips.XAxis().Direction(); - const gp_Dir& aYDir = anElips.YAxis().Direction(); + const gp_Dir aXDir = anElips.XAxis().Direction(); + const gp_Dir aYDir = anElips.YAxis().Direction(); const double aMajR = anElips.MajorRadius(); const double aMinR = anElips.MinorRadius(); @@ -181,8 +181,8 @@ NCollection_Array1 GeomGridEval_Ellipse::EvaluateGridD3( const gp_Elips& anElips = myGeom->Elips(); const gp_Pnt& aCenter = anElips.Location(); - const gp_Dir& aXDir = anElips.XAxis().Direction(); - const gp_Dir& aYDir = anElips.YAxis().Direction(); + const gp_Dir aXDir = anElips.XAxis().Direction(); + const gp_Dir aYDir = anElips.YAxis().Direction(); const double aMajR = anElips.MajorRadius(); const double aMinR = anElips.MinorRadius(); @@ -239,8 +239,8 @@ NCollection_Array1 GeomGridEval_Ellipse::EvaluateGridDN( NCollection_Array1 aResult(1, aNb); const gp_Elips& anElips = myGeom->Elips(); - const gp_Dir& aXDir = anElips.XAxis().Direction(); - const gp_Dir& aYDir = anElips.YAxis().Direction(); + const gp_Dir aXDir = anElips.XAxis().Direction(); + const gp_Dir aYDir = anElips.YAxis().Direction(); const double aMajR = anElips.MajorRadius(); const double aMinR = anElips.MinorRadius(); diff --git a/src/ModelingData/TKG3d/GeomGridEval/GeomGridEval_Hyperbola.cxx b/src/ModelingData/TKG3d/GeomGridEval/GeomGridEval_Hyperbola.cxx index dd04cbf69b..0a67abc1de 100644 --- a/src/ModelingData/TKG3d/GeomGridEval/GeomGridEval_Hyperbola.cxx +++ b/src/ModelingData/TKG3d/GeomGridEval/GeomGridEval_Hyperbola.cxx @@ -32,8 +32,8 @@ NCollection_Array1 GeomGridEval_Hyperbola::EvaluateGrid( const gp_Hypr& aHypr = myGeom->Hypr(); const gp_Pnt& aCenter = aHypr.Location(); - const gp_Dir& aXDir = aHypr.XAxis().Direction(); - const gp_Dir& aYDir = aHypr.YAxis().Direction(); + const gp_Dir aXDir = aHypr.XAxis().Direction(); + const gp_Dir aYDir = aHypr.YAxis().Direction(); const double aMajR = aHypr.MajorRadius(); const double aMinR = aHypr.MinorRadius(); @@ -77,8 +77,8 @@ NCollection_Array1 GeomGridEval_Hyperbola::EvaluateGridD1 const gp_Hypr& aHypr = myGeom->Hypr(); const gp_Pnt& aCenter = aHypr.Location(); - const gp_Dir& aXDir = aHypr.XAxis().Direction(); - const gp_Dir& aYDir = aHypr.YAxis().Direction(); + const gp_Dir aXDir = aHypr.XAxis().Direction(); + const gp_Dir aYDir = aHypr.YAxis().Direction(); const double aMajR = aHypr.MajorRadius(); const double aMinR = aHypr.MinorRadius(); @@ -127,8 +127,8 @@ NCollection_Array1 GeomGridEval_Hyperbola::EvaluateGridD2 const gp_Hypr& aHypr = myGeom->Hypr(); const gp_Pnt& aCenter = aHypr.Location(); - const gp_Dir& aXDir = aHypr.XAxis().Direction(); - const gp_Dir& aYDir = aHypr.YAxis().Direction(); + const gp_Dir aXDir = aHypr.XAxis().Direction(); + const gp_Dir aYDir = aHypr.YAxis().Direction(); const double aMajR = aHypr.MajorRadius(); const double aMinR = aHypr.MinorRadius(); @@ -181,8 +181,8 @@ NCollection_Array1 GeomGridEval_Hyperbola::EvaluateGridD3 const gp_Hypr& aHypr = myGeom->Hypr(); const gp_Pnt& aCenter = aHypr.Location(); - const gp_Dir& aXDir = aHypr.XAxis().Direction(); - const gp_Dir& aYDir = aHypr.YAxis().Direction(); + const gp_Dir aXDir = aHypr.XAxis().Direction(); + const gp_Dir aYDir = aHypr.YAxis().Direction(); const double aMajR = aHypr.MajorRadius(); const double aMinR = aHypr.MinorRadius(); @@ -239,8 +239,8 @@ NCollection_Array1 GeomGridEval_Hyperbola::EvaluateGridDN( NCollection_Array1 aResult(1, aNb); const gp_Hypr& aHypr = myGeom->Hypr(); - const gp_Dir& aXDir = aHypr.XAxis().Direction(); - const gp_Dir& aYDir = aHypr.YAxis().Direction(); + const gp_Dir aXDir = aHypr.XAxis().Direction(); + const gp_Dir aYDir = aHypr.YAxis().Direction(); const double aMajR = aHypr.MajorRadius(); const double aMinR = aHypr.MinorRadius(); diff --git a/src/ModelingData/TKG3d/GeomGridEval/GeomGridEval_Line.hxx b/src/ModelingData/TKG3d/GeomGridEval/GeomGridEval_Line.hxx index 3150095b96..d193b2b235 100644 --- a/src/ModelingData/TKG3d/GeomGridEval/GeomGridEval_Line.hxx +++ b/src/ModelingData/TKG3d/GeomGridEval/GeomGridEval_Line.hxx @@ -220,8 +220,8 @@ public: if (theN == 1) { // D1 is constant for a line (the direction) - const gp_Dir& aDir = myGeom->Lin().Direction(); - const gp_Vec aD1(aDir.X(), aDir.Y(), aDir.Z()); + const gp_Dir aDir = myGeom->Lin().Direction(); + const gp_Vec aD1(aDir.X(), aDir.Y(), aDir.Z()); for (int i = 1; i <= theParams.Size(); ++i) { aResult.SetValue(i, aD1); diff --git a/src/ModelingData/TKG3d/GeomGridEval/GeomGridEval_Parabola.cxx b/src/ModelingData/TKG3d/GeomGridEval/GeomGridEval_Parabola.cxx index 71c617d5c8..c3af88b319 100644 --- a/src/ModelingData/TKG3d/GeomGridEval/GeomGridEval_Parabola.cxx +++ b/src/ModelingData/TKG3d/GeomGridEval/GeomGridEval_Parabola.cxx @@ -32,8 +32,8 @@ NCollection_Array1 GeomGridEval_Parabola::EvaluateGrid( const gp_Parab& aParab = myGeom->Parab(); const gp_Pnt& aCenter = aParab.Location(); - const gp_Dir& aXDir = aParab.XAxis().Direction(); - const gp_Dir& aYDir = aParab.YAxis().Direction(); + const gp_Dir aXDir = aParab.XAxis().Direction(); + const gp_Dir aYDir = aParab.YAxis().Direction(); const double aFocal = aParab.Focal(); const double aCX = aCenter.X(); @@ -78,8 +78,8 @@ NCollection_Array1 GeomGridEval_Parabola::EvaluateGridD1( const gp_Parab& aParab = myGeom->Parab(); const gp_Pnt& aCenter = aParab.Location(); - const gp_Dir& aXDir = aParab.XAxis().Direction(); - const gp_Dir& aYDir = aParab.YAxis().Direction(); + const gp_Dir aXDir = aParab.XAxis().Direction(); + const gp_Dir aYDir = aParab.YAxis().Direction(); const double aFocal = aParab.Focal(); const double aCX = aCenter.X(); @@ -129,8 +129,8 @@ NCollection_Array1 GeomGridEval_Parabola::EvaluateGridD2( const gp_Parab& aParab = myGeom->Parab(); const gp_Pnt& aCenter = aParab.Location(); - const gp_Dir& aXDir = aParab.XAxis().Direction(); - const gp_Dir& aYDir = aParab.YAxis().Direction(); + const gp_Dir aXDir = aParab.XAxis().Direction(); + const gp_Dir aYDir = aParab.YAxis().Direction(); const double aFocal = aParab.Focal(); const double aCX = aCenter.X(); @@ -186,8 +186,8 @@ NCollection_Array1 GeomGridEval_Parabola::EvaluateGridD3( const gp_Parab& aParab = myGeom->Parab(); const gp_Pnt& aCenter = aParab.Location(); - const gp_Dir& aXDir = aParab.XAxis().Direction(); - const gp_Dir& aYDir = aParab.YAxis().Direction(); + const gp_Dir aXDir = aParab.XAxis().Direction(); + const gp_Dir aYDir = aParab.YAxis().Direction(); const double aFocal = aParab.Focal(); const double aCX = aCenter.X(); diff --git a/src/ModelingData/TKG3d/GeomGridEval/GeomGridEval_Plane.hxx b/src/ModelingData/TKG3d/GeomGridEval/GeomGridEval_Plane.hxx index 434843dc32..700376059c 100644 --- a/src/ModelingData/TKG3d/GeomGridEval/GeomGridEval_Plane.hxx +++ b/src/ModelingData/TKG3d/GeomGridEval/GeomGridEval_Plane.hxx @@ -297,14 +297,14 @@ public: if (theNU == 1 && theNV == 0) { // D1U = XDir - const gp_Dir& aXDir = myGeom->Pln().Position().XDirection(); - aDerivative = gp_Vec(aXDir.X(), aXDir.Y(), aXDir.Z()); + const gp_Dir aXDir = myGeom->Pln().Position().XDirection(); + aDerivative = gp_Vec(aXDir.X(), aXDir.Y(), aXDir.Z()); } else if (theNU == 0 && theNV == 1) { // D1V = YDir - const gp_Dir& aYDir = myGeom->Pln().Position().YDirection(); - aDerivative = gp_Vec(aYDir.X(), aYDir.Y(), aYDir.Z()); + const gp_Dir aYDir = myGeom->Pln().Position().YDirection(); + aDerivative = gp_Vec(aYDir.X(), aYDir.Y(), aYDir.Z()); } // All other derivatives are zero @@ -530,13 +530,13 @@ public: if (theNU == 1 && theNV == 0) { - const gp_Dir& aXDir = myGeom->Pln().Position().XDirection(); - aDerivative = gp_Vec(aXDir.X(), aXDir.Y(), aXDir.Z()); + const gp_Dir aXDir = myGeom->Pln().Position().XDirection(); + aDerivative = gp_Vec(aXDir.X(), aXDir.Y(), aXDir.Z()); } else if (theNU == 0 && theNV == 1) { - const gp_Dir& aYDir = myGeom->Pln().Position().YDirection(); - aDerivative = gp_Vec(aYDir.X(), aYDir.Y(), aYDir.Z()); + const gp_Dir aYDir = myGeom->Pln().Position().YDirection(); + aDerivative = gp_Vec(aYDir.X(), aYDir.Y(), aYDir.Z()); } for (int i = 1; i <= aNbPoints; ++i)