Browse Source

Merge pull request #75 from gatzka/feature/enhance_gcc_checks_v2

Enhance gcc checks v2
Max Bruckner 8 years ago
parent
commit
1f0ad823c9
4 changed files with 19 additions and 17 deletions
  1. 1 1
      CMakeLists.txt
  2. 2 2
      Makefile
  3. 5 3
      test.c
  4. 11 11
      test_utils.c

+ 1 - 1
CMakeLists.txt

@@ -15,7 +15,7 @@ set(PROJECT_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT
 option(ENABLE_CUSTOM_COMPILER_FLAGS "Enables custom compiler flags for Clang and GCC" ON)
 if (ENABLE_CUSTOM_COMPILER_FLAGS)
     if(("${CMAKE_C_COMPILER_ID}" MATCHES "GNU") OR ("${CMAKE_C_COMPILER_ID}" MATCHES "Clang"))
-        set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c89 -pedantic -Wall -Wextra -Werror -Wstrict-prototypes -Wwrite-strings")
+        set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c89 -pedantic -Wall -Wextra -Werror -Wstrict-prototypes -Wwrite-strings -Wshadow -Winit-self -Wcast-align -Wformat=2 -Wmissing-prototypes")
     endif()
 endif()
 

+ 2 - 2
Makefile

@@ -20,14 +20,14 @@ INSTALL_LIBRARY_PATH = $(DESTDIR)$(PREFIX)/$(LIBRARY_PATH)
 
 INSTALL ?= cp -a
 
-R_CFLAGS = -fPIC -std=c89 -pedantic -Wall -Werror -Wstrict-prototypes -Wwrite-strings $(CFLAGS)
+R_CFLAGS = -fPIC -std=c89 -pedantic -Wall -Werror -Wstrict-prototypes -Wwrite-strings -Wshadow -Winit-self -Wcast-align -Wformat=2 -Wmissing-prototypes $(CFLAGS)
 
 uname := $(shell sh -c 'uname -s 2>/dev/null || echo false')
 
 #library file extensions
 SHARED = so
 STATIC = a
-
+ 
 ## create dynamic (shared) library on Darwin (base OS for MacOSX and IOS)
 ifeq (Darwin, $(uname))
 	SHARED = dylib

+ 5 - 3
test.c

@@ -25,7 +25,7 @@
 #include "cJSON.h"
 
 /* Parse text to JSON, then render back to text, and print! */
-void doit(char *text)
+static void doit(char *text)
 {
     char *out = NULL;
     cJSON *json = NULL;
@@ -44,8 +44,9 @@ void doit(char *text)
     }
 }
 
+#if 0
 /* Read a file, parse, render back, etc. */
-void dofile(char *filename)
+static void dofile(char *filename)
 {
     FILE *f = NULL;
     long len = 0;
@@ -67,6 +68,7 @@ void dofile(char *filename)
     doit(data);
     free(data);
 }
+#endif
 
 /* Used by some code below as an example datatype. */
 struct record
@@ -82,7 +84,7 @@ struct record
 };
 
 /* Create a bunch of objects as demonstration. */
-void create_objects(void)
+static void create_objects(void)
 {
     /* declare a few. */
     cJSON *root = NULL;

+ 11 - 11
test_utils.c

@@ -96,14 +96,14 @@ int main(void)
     printf("JSON Apply Patch Tests\n");
     for (i = 0; i < 15; i++)
     {
-        cJSON *object = cJSON_Parse(patches[i][0]);
+        cJSON *object_to_be_patched = cJSON_Parse(patches[i][0]);
         cJSON *patch = cJSON_Parse(patches[i][1]);
-        int err = cJSONUtils_ApplyPatches(object, patch);
-        char *output = cJSON_Print(object);
+        int err = cJSONUtils_ApplyPatches(object_to_be_patched, patch);
+        char *output = cJSON_Print(object_to_be_patched);
         printf("Test %d (err %d):\n%s\n\n", i + 1, err, output);
 
         free(output);
-        cJSON_Delete(object);
+        cJSON_Delete(object_to_be_patched);
         cJSON_Delete(patch);
     }
 
@@ -168,19 +168,19 @@ int main(void)
     printf("JSON Merge Patch tests\n");
     for (i = 0; i < 15; i++)
     {
-        cJSON *object = cJSON_Parse(merges[i][0]);
+        cJSON *object_to_be_merged = cJSON_Parse(merges[i][0]);
         cJSON *patch = cJSON_Parse(merges[i][1]);
-        char *before = cJSON_PrintUnformatted(object);
+        char *before_merge = cJSON_PrintUnformatted(object_to_be_merged);
         patchtext = cJSON_PrintUnformatted(patch);
-        printf("Before: [%s] -> [%s] = ", before, patchtext);
-        object = cJSONUtils_MergePatch(object, patch);
-        after = cJSON_PrintUnformatted(object);
+        printf("Before: [%s] -> [%s] = ", before_merge, patchtext);
+        object_to_be_merged = cJSONUtils_MergePatch(object_to_be_merged, patch);
+        after = cJSON_PrintUnformatted(object_to_be_merged);
         printf("[%s] vs [%s] (%s)\n", after, merges[i][2], strcmp(after, merges[i][2]) ? "FAIL" : "OK");
 
-        free(before);
+        free(before_merge);
         free(patchtext);
         free(after);
-        cJSON_Delete(object);
+        cJSON_Delete(object_to_be_merged);
         cJSON_Delete(patch);
     }