add clang directives to avoid warnings 48/16848/1
authorAngelo Mantellini <[email protected]>
Thu, 17 Jan 2019 09:57:04 +0000 (10:57 +0100)
committerAngelo Mantellini <[email protected]>
Thu, 17 Jan 2019 09:57:04 +0000 (10:57 +0100)
Change-Id: I1ed298176ad1403ed089177a3cce4264f028bbbd
Signed-off-by: Angelo Mantellini <[email protected]>
libparc/parc/algol/parc_Object.h
libparc/parc/security/parc_CertificateFactory.c
libparc/parc/security/parc_PublicKeySigner.c
libparc/parc/security/parc_X509Certificate.c

index b1a4855..ac7e965 100644 (file)
@@ -598,7 +598,33 @@ const PARCObjectDescriptor *parcObject_SetDescriptor(PARCObject *object, const P
  * The new `PARCObjectDescriptor` uses the existing `PARCObjectDescriptor` as the super-type of the new descriptor.
  */
 
+#ifdef __clang__
 #define parcObject_Extends(_subtype, _superType, ...) \
+    _Pragma("GCC diagnostic push") \
+    _Pragma("GCC diagnostic ignored \"-Winitializer-overrides\"") \
+    parcObjectDescriptor_Declaration(_subtype) = { \
+        .super           = &parcObject_DescriptorName(_superType), \
+        .name            = #_subtype, \
+        .objectSize      = 0, \
+        .objectAlignment = 0, \
+        .destroy         = NULL,    \
+        .destructor      = NULL, \
+        .release         = NULL,   \
+        .copy            = NULL,   \
+        .toString        = NULL,   \
+        .equals          = NULL,   \
+        .compare         = NULL,   \
+        .hashCode        = NULL,   \
+        .toJSON          = NULL,   \
+        .display         = NULL,   \
+        .isLockable      = true, \
+        .typeState       = NULL, \
+        __VA_ARGS__  \
+    }; \
+    _Pragma("GCC diagnostic pop") \
+    const PARCObjectDescriptor parcObject_DescriptorName(_subtype)
+#else
+    #define parcObject_Extends(_subtype, _superType, ...) \
     _Pragma("GCC diagnostic ignored \"-Woverride-init\"") \
     parcObjectDescriptor_Declaration(_subtype) = { \
         .super           = &parcObject_DescriptorName(_superType), \
@@ -621,6 +647,7 @@ const PARCObjectDescriptor *parcObject_SetDescriptor(PARCObject *object, const P
     }; \
     _Pragma("GCC diagnostic warning \"-Woverride-init\"") \
     const PARCObjectDescriptor parcObject_DescriptorName(_subtype)
+#endif
 
 /**
  * Define a new PARC Object implementation, by composing a new PARC Object Descriptor referencing an old one.
index 52cef4a..c737e42 100644 (file)
@@ -91,6 +91,8 @@ parcCertificateFactory_CreateSelfSignedCertificate(PARCCertificateFactory *facto
         case PARCSigningAlgorithm_ECDSA:
           certificate = parcX509Certificate_CreateSelfSignedCertificate(privateKey, subjectName, (int) keyLength, valdityDays, PARCKeyType_EC);
           break;
+        default:
+          break;
       }
 
         // This may fail.
index 0a029ca..1297611 100644 (file)
@@ -213,7 +213,7 @@ static inline int _SignDigestECDSA(const PARCCryptoHash *digestToSign, PARCBuffe
                           ec_key);
     parcAssertTrue(result == 1, "Got error from ECDSA_sign: %d", result);
     EC_KEY_free(ec_key);
-
+    return result;
 }
 
 static PARCSignature *
@@ -307,6 +307,8 @@ _GetSignatureSize(PARCPublicKeySigner *signer)
         EVP_PKEY_free(privateKey);
         break;
       }
+    default:
+      break;
   }
   parcBuffer_Release(&privateKeyBuffer);
 
index 497cff9..2c964ae 100644 (file)
@@ -609,6 +609,8 @@ parcX509Certificate_CreateSelfSignedCertificate(PARCBuffer **privateKeyBuffer, c
       return _createSelfSignedCertificate_RSA(privateKeyBuffer, subjectName, keyLength, validityDays);
     case PARCKeyType_EC:
       return _createSelfSignedCertificate_EC(privateKeyBuffer, subjectName, keyLength, validityDays);
+    default:
+      break;
   }
 
   return NULL;