From a9cfaf13dacd31807d3f7fae21923859512f3544 Mon Sep 17 00:00:00 2001 From: Justin Traglia Date: Mon, 2 Oct 2023 14:11:19 -0500 Subject: [PATCH 1/3] Enable pedantic warnings --- src/Makefile | 2 +- src/test_c_kzg_4844.c | 12 ++++++------ src/tinytest.h | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/Makefile b/src/Makefile index 2d50fcc31..fdd939fde 100644 --- a/src/Makefile +++ b/src/Makefile @@ -25,7 +25,7 @@ FIELD_ELEMENTS_PER_BLOB ?= 4096 # The base compiler flags. More can be added on command line. CFLAGS += -I../inc CFLAGS += -DFIELD_ELEMENTS_PER_BLOB=$(FIELD_ELEMENTS_PER_BLOB) -CFLAGS += -O2 -Wall -Wextra +CFLAGS += -O2 -Wall -Wextra -Wpedantic # Cross-platform compilation settings. ifeq ($(PLATFORM),Windows) diff --git a/src/test_c_kzg_4844.c b/src/test_c_kzg_4844.c index 757105151..728c476cd 100644 --- a/src/test_c_kzg_4844.c +++ b/src/test_c_kzg_4844.c @@ -780,20 +780,20 @@ static void test_reverse_bits__succeeds_round_trip(void) { } static void test_reverse_bits__succeeds_all_bits_are_zero(void) { - uint32_t original = 0b00000000000000000000000000000000; - uint32_t reversed = 0b00000000000000000000000000000000; + uint32_t original = 0; + uint32_t reversed = 0; ASSERT_EQUALS(reverse_bits(original), reversed); } static void test_reverse_bits__succeeds_some_bits_are_one(void) { - uint32_t original = 0b10101000011111100000000000000010; - uint32_t reversed = 0b01000000000000000111111000010101; + uint32_t original = 2826829826; + uint32_t reversed = 1073774101; ASSERT_EQUALS(reverse_bits(original), reversed); } static void test_reverse_bits__succeeds_all_bits_are_one(void) { - uint32_t original = 0b11111111111111111111111111111111; - uint32_t reversed = 0b11111111111111111111111111111111; + uint32_t original = 4294967295; + uint32_t reversed = 4294967295; ASSERT_EQUALS(reverse_bits(original), reversed); } diff --git a/src/tinytest.h b/src/tinytest.h index 81b5f6ac3..d8445c824 100644 --- a/src/tinytest.h +++ b/src/tinytest.h @@ -71,7 +71,7 @@ const char* tt_current_expression = NULL; const char* tt_current_file = NULL; int tt_current_line = 0; -void tt_execute(const char* name, void (*test_function)()) +void tt_execute(const char* name, void (*test_function)(void)) { tt_current_test_failed = 0; test_function(); From 5d046d974231f0d1b749a3b69218cb247acbc975 Mon Sep 17 00:00:00 2001 From: Justin Traglia Date: Wed, 4 Oct 2023 07:29:21 -0500 Subject: [PATCH 2/3] Make same change in other places --- bindings/csharp/Makefile | 2 +- bindings/java/Makefile | 2 +- bindings/java/c_kzg_4844_jni.c | 15 ++++++++++++++- fuzz/Makefile | 2 +- 4 files changed, 17 insertions(+), 4 deletions(-) diff --git a/bindings/csharp/Makefile b/bindings/csharp/Makefile index accbcfcac..da1998fe4 100644 --- a/bindings/csharp/Makefile +++ b/bindings/csharp/Makefile @@ -39,7 +39,7 @@ FIELD_ELEMENTS_PER_BLOB ?= 4096 INCLUDE_DIRS = ../../src ../../blst/bindings TARGETS = ckzg.c ../../src/c_kzg_4844.c ../../blst/$(BLST_OBJ) -CFLAGS += -O2 -Wall -Wextra -shared +CFLAGS += -O2 -Wall -Wextra -Wpedantic -shared CFLAGS += -DFIELD_ELEMENTS_PER_BLOB=$(FIELD_ELEMENTS_PER_BLOB) CFLAGS += ${addprefix -I,${INCLUDE_DIRS}} BLST_BUILDSCRIPT_FLAGS += -D__BLST_PORTABLE__ diff --git a/bindings/java/Makefile b/bindings/java/Makefile index 9be2fd651..770b42693 100644 --- a/bindings/java/Makefile +++ b/bindings/java/Makefile @@ -61,7 +61,7 @@ all: build test benchmark .PHONY: build build: mkdir -p ${LIBRARY_FOLDER} - ${CLANG_EXECUTABLE} ${CC_FLAGS} ${CLANG_FLAGS} ${OPTIMIZATION_LEVEL} -Wall -Wno-missing-braces ${addprefix -I,${INCLUDE_DIRS}} -I"${JAVA_HOME}/include" -I"${JAVA_HOME}/include/${JNI_INCLUDE_FOLDER}" -DFIELD_ELEMENTS_PER_BLOB=${FIELD_ELEMENTS_PER_BLOB} -o ${LIBRARY_FOLDER}/${LIBRARY_RESOURCE} ${TARGETS} + ${CLANG_EXECUTABLE} ${CC_FLAGS} ${CLANG_FLAGS} ${OPTIMIZATION_LEVEL} -Wall -Wextra -Wpedantic -Werror -Wno-missing-braces ${addprefix -I,${INCLUDE_DIRS}} -I"${JAVA_HOME}/include" -I"${JAVA_HOME}/include/${JNI_INCLUDE_FOLDER}" -DFIELD_ELEMENTS_PER_BLOB=${FIELD_ELEMENTS_PER_BLOB} -o ${LIBRARY_FOLDER}/${LIBRARY_RESOURCE} ${TARGETS} .PHONY: test test: diff --git a/bindings/java/c_kzg_4844_jni.c b/bindings/java/c_kzg_4844_jni.c index 0ec695855..99a12f036 100644 --- a/bindings/java/c_kzg_4844_jni.c +++ b/bindings/java/c_kzg_4844_jni.c @@ -3,11 +3,13 @@ #include "c_kzg_4844_jni.h" #include "c_kzg_4844.h" +#define NOT_USED(x) (void)(x) + static const char *TRUSTED_SETUP_NOT_LOADED = "Trusted Setup is not loaded."; KZGSettings *settings; -void reset_trusted_setup() +void reset_trusted_setup(void) { if (settings) { @@ -58,11 +60,14 @@ KZGSettings *allocate_settings(JNIEnv *env) JNIEXPORT jint JNICALL Java_ethereum_ckzg4844_CKZG4844JNI_getFieldElementsPerBlob(JNIEnv *env, jclass thisCls) { + NOT_USED(env); + NOT_USED(thisCls); return (jint)FIELD_ELEMENTS_PER_BLOB; } JNIEXPORT void JNICALL Java_ethereum_ckzg4844_CKZG4844JNI_loadTrustedSetup__Ljava_lang_String_2(JNIEnv *env, jclass thisCls, jstring file) { + NOT_USED(thisCls); if (settings) { throw_exception(env, "Trusted Setup is already loaded. Free it before loading a new one."); @@ -98,6 +103,7 @@ JNIEXPORT void JNICALL Java_ethereum_ckzg4844_CKZG4844JNI_loadTrustedSetup__Ljav JNIEXPORT void JNICALL Java_ethereum_ckzg4844_CKZG4844JNI_loadTrustedSetup___3BJ_3BJ(JNIEnv *env, jclass thisCls, jbyteArray g1, jlong g1Count, jbyteArray g2, jlong g2Count) { + NOT_USED(thisCls); if (settings) { throw_exception(env, "Trusted Setup is already loaded. Free it before loading a new one."); @@ -142,6 +148,7 @@ JNIEXPORT void JNICALL Java_ethereum_ckzg4844_CKZG4844JNI_loadTrustedSetup___3BJ JNIEXPORT void JNICALL Java_ethereum_ckzg4844_CKZG4844JNI_freeTrustedSetup(JNIEnv *env, jclass thisCls) { + NOT_USED(thisCls); if (settings == NULL) { throw_exception(env, TRUSTED_SETUP_NOT_LOADED); @@ -152,6 +159,7 @@ JNIEXPORT void JNICALL Java_ethereum_ckzg4844_CKZG4844JNI_freeTrustedSetup(JNIEn JNIEXPORT jbyteArray JNICALL Java_ethereum_ckzg4844_CKZG4844JNI_blobToKzgCommitment(JNIEnv *env, jclass thisCls, jbyteArray blob) { + NOT_USED(thisCls); if (settings == NULL) { throw_exception(env, TRUSTED_SETUP_NOT_LOADED); @@ -185,6 +193,7 @@ JNIEXPORT jbyteArray JNICALL Java_ethereum_ckzg4844_CKZG4844JNI_blobToKzgCommitm JNIEXPORT jobject JNICALL Java_ethereum_ckzg4844_CKZG4844JNI_computeKzgProof(JNIEnv *env, jclass thisCls, jbyteArray blob, jbyteArray z_bytes) { + NOT_USED(thisCls); if (settings == NULL) { throw_exception(env, TRUSTED_SETUP_NOT_LOADED); @@ -254,6 +263,7 @@ JNIEXPORT jobject JNICALL Java_ethereum_ckzg4844_CKZG4844JNI_computeKzgProof(JNI JNIEXPORT jbyteArray JNICALL Java_ethereum_ckzg4844_CKZG4844JNI_computeBlobKzgProof(JNIEnv *env, jclass thisCls, jbyteArray blob, jbyteArray commitment_bytes) { + NOT_USED(thisCls); if (settings == NULL) { throw_exception(env, TRUSTED_SETUP_NOT_LOADED); @@ -297,6 +307,7 @@ JNIEXPORT jbyteArray JNICALL Java_ethereum_ckzg4844_CKZG4844JNI_computeBlobKzgPr JNIEXPORT jboolean JNICALL Java_ethereum_ckzg4844_CKZG4844JNI_verifyKzgProof(JNIEnv *env, jclass thisCls, jbyteArray commitment_bytes, jbyteArray z_bytes, jbyteArray y_bytes, jbyteArray proof_bytes) { + NOT_USED(thisCls); if (settings == NULL) { throw_exception(env, TRUSTED_SETUP_NOT_LOADED); @@ -355,6 +366,7 @@ JNIEXPORT jboolean JNICALL Java_ethereum_ckzg4844_CKZG4844JNI_verifyKzgProof(JNI JNIEXPORT jboolean JNICALL Java_ethereum_ckzg4844_CKZG4844JNI_verifyBlobKzgProof(JNIEnv *env, jclass thisCls, jbyteArray blob, jbyteArray commitment_bytes, jbyteArray proof_bytes) { + NOT_USED(thisCls); if (settings == NULL) { throw_exception(env, TRUSTED_SETUP_NOT_LOADED); @@ -404,6 +416,7 @@ JNIEXPORT jboolean JNICALL Java_ethereum_ckzg4844_CKZG4844JNI_verifyBlobKzgProof JNIEXPORT jboolean JNICALL Java_ethereum_ckzg4844_CKZG4844JNI_verifyBlobKzgProofBatch(JNIEnv *env, jclass thisCls, jbyteArray blobs, jbyteArray commitments_bytes, jbyteArray proofs_bytes, jlong count) { + NOT_USED(thisCls); if (settings == NULL) { throw_exception(env, TRUSTED_SETUP_NOT_LOADED); diff --git a/fuzz/Makefile b/fuzz/Makefile index 242ec2c07..1afd07f85 100644 --- a/fuzz/Makefile +++ b/fuzz/Makefile @@ -7,7 +7,7 @@ CC = clang FIELD_ELEMENTS_PER_BLOB ?= 4096 CFLAGS += -I../inc -CFLAGS += -Wall -Wextra -Werror -O0 +CFLAGS += -Wall -Wextra -Wpedantic -Werror -O0 CFLAGS += -DFIELD_ELEMENTS_PER_BLOB=$(FIELD_ELEMENTS_PER_BLOB) CFLAGS += -g -fsanitize=fuzzer From 30c7a1a849351163bd381f9a400bd49f5e95ed82 Mon Sep 17 00:00:00 2001 From: Justin Traglia Date: Wed, 4 Oct 2023 09:03:44 -0500 Subject: [PATCH 3/3] Disable some warnings in java bindings --- bindings/java/Makefile | 2 +- bindings/java/c_kzg_4844_jni.c | 13 ------------- 2 files changed, 1 insertion(+), 14 deletions(-) diff --git a/bindings/java/Makefile b/bindings/java/Makefile index 770b42693..ef571d273 100644 --- a/bindings/java/Makefile +++ b/bindings/java/Makefile @@ -61,7 +61,7 @@ all: build test benchmark .PHONY: build build: mkdir -p ${LIBRARY_FOLDER} - ${CLANG_EXECUTABLE} ${CC_FLAGS} ${CLANG_FLAGS} ${OPTIMIZATION_LEVEL} -Wall -Wextra -Wpedantic -Werror -Wno-missing-braces ${addprefix -I,${INCLUDE_DIRS}} -I"${JAVA_HOME}/include" -I"${JAVA_HOME}/include/${JNI_INCLUDE_FOLDER}" -DFIELD_ELEMENTS_PER_BLOB=${FIELD_ELEMENTS_PER_BLOB} -o ${LIBRARY_FOLDER}/${LIBRARY_RESOURCE} ${TARGETS} + ${CLANG_EXECUTABLE} ${CC_FLAGS} ${CLANG_FLAGS} ${OPTIMIZATION_LEVEL} -Wall -Wextra -Wpedantic -Werror -Wno-missing-braces -Wno-unused-parameter -Wno-format ${addprefix -I,${INCLUDE_DIRS}} -I"${JAVA_HOME}/include" -I"${JAVA_HOME}/include/${JNI_INCLUDE_FOLDER}" -DFIELD_ELEMENTS_PER_BLOB=${FIELD_ELEMENTS_PER_BLOB} -o ${LIBRARY_FOLDER}/${LIBRARY_RESOURCE} ${TARGETS} .PHONY: test test: diff --git a/bindings/java/c_kzg_4844_jni.c b/bindings/java/c_kzg_4844_jni.c index 99a12f036..e17ee6961 100644 --- a/bindings/java/c_kzg_4844_jni.c +++ b/bindings/java/c_kzg_4844_jni.c @@ -3,8 +3,6 @@ #include "c_kzg_4844_jni.h" #include "c_kzg_4844.h" -#define NOT_USED(x) (void)(x) - static const char *TRUSTED_SETUP_NOT_LOADED = "Trusted Setup is not loaded."; KZGSettings *settings; @@ -60,14 +58,11 @@ KZGSettings *allocate_settings(JNIEnv *env) JNIEXPORT jint JNICALL Java_ethereum_ckzg4844_CKZG4844JNI_getFieldElementsPerBlob(JNIEnv *env, jclass thisCls) { - NOT_USED(env); - NOT_USED(thisCls); return (jint)FIELD_ELEMENTS_PER_BLOB; } JNIEXPORT void JNICALL Java_ethereum_ckzg4844_CKZG4844JNI_loadTrustedSetup__Ljava_lang_String_2(JNIEnv *env, jclass thisCls, jstring file) { - NOT_USED(thisCls); if (settings) { throw_exception(env, "Trusted Setup is already loaded. Free it before loading a new one."); @@ -103,7 +98,6 @@ JNIEXPORT void JNICALL Java_ethereum_ckzg4844_CKZG4844JNI_loadTrustedSetup__Ljav JNIEXPORT void JNICALL Java_ethereum_ckzg4844_CKZG4844JNI_loadTrustedSetup___3BJ_3BJ(JNIEnv *env, jclass thisCls, jbyteArray g1, jlong g1Count, jbyteArray g2, jlong g2Count) { - NOT_USED(thisCls); if (settings) { throw_exception(env, "Trusted Setup is already loaded. Free it before loading a new one."); @@ -148,7 +142,6 @@ JNIEXPORT void JNICALL Java_ethereum_ckzg4844_CKZG4844JNI_loadTrustedSetup___3BJ JNIEXPORT void JNICALL Java_ethereum_ckzg4844_CKZG4844JNI_freeTrustedSetup(JNIEnv *env, jclass thisCls) { - NOT_USED(thisCls); if (settings == NULL) { throw_exception(env, TRUSTED_SETUP_NOT_LOADED); @@ -159,7 +152,6 @@ JNIEXPORT void JNICALL Java_ethereum_ckzg4844_CKZG4844JNI_freeTrustedSetup(JNIEn JNIEXPORT jbyteArray JNICALL Java_ethereum_ckzg4844_CKZG4844JNI_blobToKzgCommitment(JNIEnv *env, jclass thisCls, jbyteArray blob) { - NOT_USED(thisCls); if (settings == NULL) { throw_exception(env, TRUSTED_SETUP_NOT_LOADED); @@ -193,7 +185,6 @@ JNIEXPORT jbyteArray JNICALL Java_ethereum_ckzg4844_CKZG4844JNI_blobToKzgCommitm JNIEXPORT jobject JNICALL Java_ethereum_ckzg4844_CKZG4844JNI_computeKzgProof(JNIEnv *env, jclass thisCls, jbyteArray blob, jbyteArray z_bytes) { - NOT_USED(thisCls); if (settings == NULL) { throw_exception(env, TRUSTED_SETUP_NOT_LOADED); @@ -263,7 +254,6 @@ JNIEXPORT jobject JNICALL Java_ethereum_ckzg4844_CKZG4844JNI_computeKzgProof(JNI JNIEXPORT jbyteArray JNICALL Java_ethereum_ckzg4844_CKZG4844JNI_computeBlobKzgProof(JNIEnv *env, jclass thisCls, jbyteArray blob, jbyteArray commitment_bytes) { - NOT_USED(thisCls); if (settings == NULL) { throw_exception(env, TRUSTED_SETUP_NOT_LOADED); @@ -307,7 +297,6 @@ JNIEXPORT jbyteArray JNICALL Java_ethereum_ckzg4844_CKZG4844JNI_computeBlobKzgPr JNIEXPORT jboolean JNICALL Java_ethereum_ckzg4844_CKZG4844JNI_verifyKzgProof(JNIEnv *env, jclass thisCls, jbyteArray commitment_bytes, jbyteArray z_bytes, jbyteArray y_bytes, jbyteArray proof_bytes) { - NOT_USED(thisCls); if (settings == NULL) { throw_exception(env, TRUSTED_SETUP_NOT_LOADED); @@ -366,7 +355,6 @@ JNIEXPORT jboolean JNICALL Java_ethereum_ckzg4844_CKZG4844JNI_verifyKzgProof(JNI JNIEXPORT jboolean JNICALL Java_ethereum_ckzg4844_CKZG4844JNI_verifyBlobKzgProof(JNIEnv *env, jclass thisCls, jbyteArray blob, jbyteArray commitment_bytes, jbyteArray proof_bytes) { - NOT_USED(thisCls); if (settings == NULL) { throw_exception(env, TRUSTED_SETUP_NOT_LOADED); @@ -416,7 +404,6 @@ JNIEXPORT jboolean JNICALL Java_ethereum_ckzg4844_CKZG4844JNI_verifyBlobKzgProof JNIEXPORT jboolean JNICALL Java_ethereum_ckzg4844_CKZG4844JNI_verifyBlobKzgProofBatch(JNIEnv *env, jclass thisCls, jbyteArray blobs, jbyteArray commitments_bytes, jbyteArray proofs_bytes, jlong count) { - NOT_USED(thisCls); if (settings == NULL) { throw_exception(env, TRUSTED_SETUP_NOT_LOADED);