From 5184ebccbaa79f78690d18fe042ba7e7aa5987c9 Mon Sep 17 00:00:00 2001 From: band-a-prend Date: Fri, 9 Aug 2019 03:24:54 +0300 Subject: [PATCH] Fix "catching polymorphic type" GCC 8 warnings MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The "catching polymorphic type" warnings appear during compilation with GCC 8: src/base/global.cpp: In function ‘void Cantera::setLogger(Cantera::Logger*)’: src/base/global.cpp:28:19: warning: catching polymorphic type ‘class std::bad_alloc’ by value [-Wcatch-value=] } catch (std::bad_alloc) { ^~~~~~~~~ src/equil/vcs_MultiPhaseEquil.cpp: In member function ‘int Cantera::vcs_MultiPhaseEquil::equilibrate_HP(doublereal, int, double, double, int, int, doublereal, int, int)’: src/equil/vcs_MultiPhaseEquil.cpp:228:31: warning: catching polymorphic type ‘class Cantera::CanteraError’ by value [-Wcatch-value=] } catch (CanteraError err) { ^~~ src/equil/vcs_MultiPhaseEquil.cpp: In member function ‘int Cantera::vcs_MultiPhaseEquil::equilibrate_SP(doublereal, double, double, int, int, doublereal, int, int)’: src/equil/vcs_MultiPhaseEquil.cpp:354:31: warning: catching polymorphic type ‘class Cantera::CanteraError’ by value [-Wcatch-value=] } catch (CanteraError err) { ^~~ This commit fix this warnings via caught by reference. --- src/base/global.cpp | 2 +- src/equil/vcs_MultiPhaseEquil.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/base/global.cpp b/src/base/global.cpp index 5a09a610e..3e6872a90 100644 --- a/src/base/global.cpp +++ b/src/base/global.cpp @@ -25,7 +25,7 @@ void setLogger(Logger* logwriter) { try { app()->setLogger(logwriter); - } catch (std::bad_alloc) { + } catch (const std::bad_alloc&) { logwriter->error("bad alloc thrown by app()"); } } diff --git a/src/equil/vcs_MultiPhaseEquil.cpp b/src/equil/vcs_MultiPhaseEquil.cpp index 2334f4dde..f72625369 100644 --- a/src/equil/vcs_MultiPhaseEquil.cpp +++ b/src/equil/vcs_MultiPhaseEquil.cpp @@ -225,7 +225,7 @@ int vcs_MultiPhaseEquil::equilibrate_HP(doublereal Htarget, Tnew = 0.5*Tnow; } m_mix->setTemperature(Tnew); - } catch (CanteraError err) { + } catch (const CanteraError& err) { if (!estimateEquil) { strt = -1; } else { @@ -351,7 +351,7 @@ int vcs_MultiPhaseEquil::equilibrate_SP(doublereal Starget, Tnew = 0.5*Tnow; } m_mix->setTemperature(Tnew); - } catch (CanteraError err) { + } catch (const CanteraError& err) { if (!estimateEquil) { strt = -1; } else {