From 83ccb994e30364c0703d7b8c15817d56b42da2e6 Mon Sep 17 00:00:00 2001
From: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com>
Date: Wed, 7 Apr 2021 14:11:41 +0530
Subject: [PATCH] Remove dynamic exception specification
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Tomasz Kłoczko reported that the build fails, while compiling
with GCC 11:

In file included from src/vpdretriever.cpp:25:
./src/libvpd-2/vpdretriever.hpp:62:33: error: ISO C++17 does not allow dynamic exception specifications
   62 |                                 throw( VpdException& );
      |                                 ^~~~~
./src/libvpd-2/vpdretriever.hpp:74:33: error: ISO C++17 does not allow dynamic exception specifications
   74 |                                 throw( VpdException& );
      |                                 ^~~~~
src/vpdretriever.cpp:50:37: error: ISO C++17 does not allow dynamic exception specifications
   50 |                 string dbFileName ) throw( VpdException& )
      |                                     ^~~~~
src/vpdretriever.cpp:62:39: error: ISO C++17 does not allow dynamic exception specifications
   62 |         VpdRetriever::VpdRetriever( ) throw( VpdException& )
      |                                       ^~~~~
make: *** [Makefile:660: src/vpdretriever.lo] Error 1

As part of
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0003r5.html,
the dynamic exception specification have been removed. Remove the
throw specifier, to specify that the function might throw an exception.

Signed-off-by: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com>
Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
---
 src/libvpd-2/vpdretriever.hpp | 6 ++----
 src/vpdretriever.cpp          | 4 ++--
 2 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/src/libvpd-2/vpdretriever.hpp b/src/libvpd-2/vpdretriever.hpp
index 0d91ac4..1be2664 100644
--- a/src/libvpd-2/vpdretriever.hpp
+++ b/src/libvpd-2/vpdretriever.hpp
@@ -58,8 +58,7 @@ namespace lsvpd
 			 * @param dbFileName
 			 *   The file name for the VPD database.
 			 */
-			VpdRetriever( string envDir, string dbFileName )
-				throw( VpdException& );
+			VpdRetriever( string envDir, string dbFileName );
 			
 			/**
 			 * Builds A VpdRetriever object that can be used for reading the
@@ -70,8 +69,7 @@ namespace lsvpd
 			 * this constructor, there were serious underlying issues that
 			 * are not recoverable.  Uses the default dir and filename
 			 */
-			VpdRetriever( )
-				throw( VpdException& );
+			VpdRetriever( );
 			~VpdRetriever( );
 
 			/**
diff --git a/src/vpdretriever.cpp b/src/vpdretriever.cpp
index 9f7e7a0..470047e 100644
--- a/src/vpdretriever.cpp
+++ b/src/vpdretriever.cpp
@@ -47,7 +47,7 @@ namespace lsvpd
 	const string VpdRetriever::UDEV_NOTIFY_FILE ( "/run/run.vpdupdate" );
 
 	VpdRetriever::VpdRetriever( string envDir,
-		string dbFileName ) throw( VpdException& )
+		string dbFileName )
 	{
 		try {
 			db = new VpdDbEnv( envDir, dbFileName, true );
@@ -59,7 +59,7 @@ namespace lsvpd
 		}
 	}
 	
-	VpdRetriever::VpdRetriever( ) throw( VpdException& )
+	VpdRetriever::VpdRetriever( )
 	{
 		struct stat vpd_stat,udev_stat;
 		const string vpddb = VpdRetriever::DEFAULT_DIR + VpdRetriever::DEFAULT_FILE;
