[IOT-2972] Extend linux error-on-warn to C++ 35/24035/7
authorGeorge Nash <george.nash@intel.com>
Tue, 6 Feb 2018 23:18:12 +0000 (15:18 -0800)
committerC.J. Collier <cjcollier@linuxfoundation.org>
Sat, 17 Feb 2018 03:02:48 +0000 (03:02 +0000)
-Werror, which causes warnings to be treated as errors,
is set in Linux build in CFLAGS, which applies only to
C builds. This moves the -Werror to CCFLAGS so it applies
to both C and C++.

This also fixes build warnings in C++ code a the same time.

OICMiddle/Server.cpp [-Werror=int-in-bool-context]
The logic `&&` was used when `&` should have been used in
the if statment

OCResource.cpp [-Werror=int-in-bool-context]
An enum constant was in a bool context. This was using
different logic if security was enabled vs. when it was
not enabled. The code was changed to use preprocessor
macros instead of the value of OC_SECURED in an if statment.

NSProvider.h and NSProvider.cpp: [-Werror=deprecated]
Throw expresions have been deprecated since C++11. They
were replaced with `nothrow`.

See: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3051.html

Since IoTivity's C++ implementation must support C++11
no effort has been made to keep the code backwards compatible
with compilers that do not support the `nothrow` keyword.

CoapHttpParser.c: [-Werror]
This is generated from the Curl code.
When the `CURLINFO_PRIVATE` option is used with the
`curl_easy_getinfo` function the expected argument type is `char **`.
The documentation says it is used like a `void **` but for historic
reasons a `char **` is expected.

To fix the warning a simple type cast is used.

Change-Id: Ia24e1c6df01d39923cbfb6705d0dc0af7d4f3870
Signed-off-by: George Nash <george.nash@intel.com>
build_common/linux/SConscript
examples/OICMiddle/Server.cpp
extlibs/libcoap/SConscript
extlibs/yaml/SConscript
plugins/samples/linux/IotivityandZigbeeClient.c
resource/src/OCResource.cpp
service/coap-http-proxy/src/CoapHttpParser.c
service/notification/cpp-wrapper/consumer/inc/NSProvider.h
service/notification/cpp-wrapper/consumer/src/NSProvider.cpp

index 2c7c47f..1c3bb8b 100644 (file)
@@ -59,7 +59,7 @@ if LooseVersion(gcc_ver) < LooseVersion('5.0'):
     env.AppendUnique(CCFLAGS=['-Wno-missing-braces'])
 
 if env.get('ERROR_ON_WARN'):
-    env.AppendUnique(CFLAGS=['-Werror'])
+    env.AppendUnique(CCFLAGS=['-Werror'])
 
 # Set arch flags that match best TARGET_ARCH variable
 if not env.get('WITH_ENV'):
index 6d1de84..5699644 100644 (file)
@@ -45,7 +45,7 @@ OCEntityHandlerResult MiddleServer::entityHandler(const std::shared_ptr<OCResour
     int requestFlag = request->getRequestHandlerFlag();
     bool responseNeeded = false;
 
-    if (requestFlag && RequestHandlerFlag::RequestFlag) {
+    if (requestFlag & RequestHandlerFlag::RequestFlag) {
         if (requestType == "PUT") {
             responseNeeded = true;
         } else if (requestType == "GET") {
@@ -55,7 +55,7 @@ OCEntityHandlerResult MiddleServer::entityHandler(const std::shared_ptr<OCResour
         }
     }
 
-    if (requestFlag && RequestHandlerFlag::ObserverFlag) {
+    if (requestFlag & RequestHandlerFlag::ObserverFlag) {
     }
 
     if (responseNeeded) {
index 3a18d94..be4b6d9 100644 (file)
@@ -129,7 +129,7 @@ if target_os in ['linux', 'tizen', 'android']:
 
 # Remove -Werror build flag when building the 'coap' library  it
 # is external code. see IOT-2539
-while '-Werror' in libcoap_env['CFLAGS']: libcoap_env['CFLAGS'].remove('-Werror')
+while '-Werror' in libcoap_env['CCFLAGS']: libcoap_env['CCFLAGS'].remove('-Werror')
 
 ######################################################################
 # Source files and Target(s)
index 86f5ae3..17457c5 100644 (file)
@@ -45,7 +45,7 @@ yaml_env.AppendUnique(LIBS=['pthread'])
 
 # Remove -Werror build flag when building the 'YamlParser' library  it
 # is external code. see IOT-2539
-while '-Werror' in yaml_env['CFLAGS']: yaml_env['CFLAGS'].remove('-Werror')
+while '-Werror' in yaml_env['CCFLAGS']: yaml_env['CCFLAGS'].remove('-Werror')
 
 
 yaml_env.AppendUnique(
index 6a91d04..c766d2f 100644 (file)
@@ -379,6 +379,7 @@ void processUserInput(int resourceNo, int testCase)
                 OIC_LOG(ERROR, TAG, "Error creating payload. Not sending POST request");
                 promptUser = true;
             }
+            break;
         }
 
         case TEST_OBSERVE:
index 0aae3ce..a6a487e 100644 (file)
@@ -224,15 +224,15 @@ std::string OCResource::setHost(const std::string& host)
 
     if (host.compare(0, sizeof(COAPS) - 1, COAPS) == 0)
     {
-        if (!OC_SECURE)
-        {
-            throw ResourceInitException(m_uri.empty(), m_resourceTypes.empty(),
-            m_interfaces.empty(), m_clientWrapper.expired(), false, false);
-        }
+#if defined(__WITH_DTLS__) || defined(__WITH_TLS__)
         prefix_len = sizeof(COAPS) - 1;
         m_devAddr.flags = static_cast<OCTransportFlags>(m_devAddr.flags | OC_SECURE);
         m_devAddr.adapter = OC_ADAPTER_IP;
         usingIpAddr = true;
+#else
+        throw ResourceInitException(m_uri.empty(), m_resourceTypes.empty(),
+        m_interfaces.empty(), m_clientWrapper.expired(), false, false);
+#endif
     }
     else if (host.compare(0, sizeof(COAP) - 1, COAP) == 0)
     {
@@ -248,15 +248,15 @@ std::string OCResource::setHost(const std::string& host)
     }
     else if (host.compare(0, sizeof(COAPS_TCP) - 1, COAPS_TCP) == 0)
     {
-        if (!OC_SECURE)
-        {
-            throw ResourceInitException(m_uri.empty(), m_resourceTypes.empty(),
-            m_interfaces.empty(), m_clientWrapper.expired(), false, false);
-        }
+#if defined(__WITH_DTLS__) || defined(__WITH_TLS__)
         prefix_len = sizeof(COAPS_TCP) - 1;
         m_devAddr.flags = static_cast<OCTransportFlags>(m_devAddr.flags | OC_SECURE);
         m_devAddr.adapter = OC_ADAPTER_TCP;
         usingIpAddr = true;
+#else
+        throw ResourceInitException(m_uri.empty(), m_resourceTypes.empty(),
+        m_interfaces.empty(), m_clientWrapper.expired(), false, false);
+#endif
     }
     else if (host.compare(0, sizeof(COAP_GATT) - 1, COAP_GATT) == 0)
     {
index 9eb469c..a8a085b 100644 (file)
@@ -273,7 +273,7 @@ static void *CHPParserExecuteMultiHandle(void* data)
                     char *contentType = NULL;
                     long responseCode;
 
-                    curl_easy_getinfo(easyHandle, CURLINFO_PRIVATE, &ptr);
+                    curl_easy_getinfo(easyHandle, CURLINFO_PRIVATE, (char**)&ptr);
                     curl_easy_getinfo(easyHandle, CURLINFO_EFFECTIVE_URL, &uri);
                     curl_easy_getinfo(easyHandle, CURLINFO_RESPONSE_CODE, &responseCode);
                     curl_easy_getinfo(easyHandle, CURLINFO_CONTENT_TYPE, &contentType);
index e6aa871..926a71f 100644 (file)
@@ -140,7 +140,7 @@ namespace OIC
                       *
                       * @return NSTopicsList  as pointer.
                       */
-                std::shared_ptr<NSTopicsList> getTopicList() const  throw (NSException);
+                std::shared_ptr<NSTopicsList> getTopicList() const noexcept(false);
 
                 /**
                      * Update Topic list that is wanted to be subscribed from provider
@@ -148,7 +148,7 @@ namespace OIC
                      * @param topicList - NSTopicsList of interested Topics.
                      * @return NSResult
                      */
-                NSResult updateTopicList(std::shared_ptr<NSTopicsList> topicList)  throw (NSException);
+                NSResult updateTopicList(std::shared_ptr<NSTopicsList> topicList) noexcept(false);
 
                 /**
                       * This method is for getting ProviderState from the Notification service provider.
@@ -162,7 +162,7 @@ namespace OIC
                       *
                       * @return subscribedState as NSProviderSubscribedState.
                       */
-                NSProviderSubscribedState getProviderSubscribedState() const  throw (NSException);
+                NSProviderSubscribedState getProviderSubscribedState() const noexcept(false);
 
                 /**
                       * This method is for requesting subscription of Notification service.
@@ -175,7 +175,7 @@ namespace OIC
                       *
                       * @return ::NS_OK or result code of NSResult
                       */
-                NSResult subscribe()  throw (NSException);
+                NSResult subscribe() noexcept(false);
 
                 /**
                       * Request to unsubscribe in order not to receive notification message from provider
@@ -185,13 +185,13 @@ namespace OIC
                       *
                       * @return ::NS_OK or result code of NSResult
                      */
-                NSResult unsubscribe()  throw (NSException);
+                NSResult unsubscribe() noexcept(false);
 
                 /**
                       * This method is for requesting subscription status from Provider of Notification service.
                       *
                       */
-                bool isSubscribed()  throw (NSException);
+                bool isSubscribed() noexcept(false);
 
                 /**
                       * This method is for Sending SyncInfo of Notification service.
@@ -200,7 +200,7 @@ namespace OIC
                       * @param type - NSSyncType of Notification service.
                       * @return ::NS_OK or result code of NSResult
                       */
-                NSResult sendSyncInfo(uint64_t messageId, NSSyncInfo::NSSyncType type)  throw (NSException);
+                NSResult sendSyncInfo(uint64_t messageId, NSSyncInfo::NSSyncType type) noexcept(false);
 
                 /**
                       * This method is for registering for listeners of Notification .
index 3478d30..ca2bb24 100644 (file)
@@ -103,7 +103,7 @@ namespace OIC
             return m_providerId;\r
         }\r
 \r
-        std::shared_ptr<NSTopicsList> NSProvider::getTopicList() const  throw (NSException)\r
+        std::shared_ptr<NSTopicsList> NSProvider::getTopicList() const noexcept(false)\r
         {\r
             NS_LOG(DEBUG, "getTopicList - IN");\r
             if (!isValid())\r
@@ -119,7 +119,7 @@ namespace OIC
             return topicList;\r
         }\r
 \r
-        NSResult NSProvider::updateTopicList(std::shared_ptr<NSTopicsList> topicList)  throw (NSException)\r
+        NSResult NSProvider::updateTopicList(std::shared_ptr<NSTopicsList> topicList) noexcept(false)\r
         {\r
             NS_LOG(DEBUG, "updateTopicList - IN");\r
             if (!isValid())\r
@@ -203,7 +203,7 @@ namespace OIC
             return m_state;\r
         }\r
 \r
-        NSProviderSubscribedState NSProvider::getProviderSubscribedState() const  throw (NSException)\r
+        NSProviderSubscribedState NSProvider::getProviderSubscribedState() const noexcept(false)\r
         {\r
             NS_LOG_V(DEBUG, "getProviderSubscribedState  state : %d", (int)m_subscribedState);\r
             if (!isValid())\r
@@ -213,7 +213,7 @@ namespace OIC
             return m_subscribedState;\r
         }\r
 \r
-        NSResult NSProvider::subscribe()  throw (NSException)\r
+        NSResult NSProvider::subscribe() noexcept(false)\r
         {\r
             NS_LOG(DEBUG, "Subscribe - IN");\r
             if (!isValid())\r
@@ -225,7 +225,7 @@ namespace OIC
             return result;\r
         }\r
 \r
-        NSResult NSProvider::unsubscribe()  throw (NSException)\r
+        NSResult NSProvider::unsubscribe() noexcept(false)\r
         {\r
             NS_LOG(DEBUG, "unsubscribe - IN");\r
             if (!isValid())\r
@@ -237,7 +237,7 @@ namespace OIC
             return result;\r
         }\r
 \r
-        bool NSProvider::isSubscribed()  throw (NSException)\r
+        bool NSProvider::isSubscribed() noexcept(false)\r
         {\r
             NS_LOG(DEBUG, "isSubscribed - IN");\r
             if (!isValid())\r
@@ -252,7 +252,7 @@ namespace OIC
             return false;\r
         }\r
 \r
-        NSResult NSProvider::sendSyncInfo(uint64_t messageId, NSSyncInfo::NSSyncType type)  throw (NSException)\r
+        NSResult NSProvider::sendSyncInfo(uint64_t messageId, NSSyncInfo::NSSyncType type) noexcept(false)\r
         {\r
             NS_LOG(DEBUG, "SendSyncInfo - IN");\r
             if (!isValid())\r