| @@ -22,6 +22,19 @@ | |||||
| #include <sys/time.h> | #include <sys/time.h> | ||||
| #endif | #endif | ||||
| #ifndef JSON_NORETURN | |||||
| #if defined(_MSC_VER) | |||||
| #define JSON_NORETURN __declspec(noreturn) | |||||
| #elif defined(__OS400__) | |||||
| #define JSON_NORETURN | |||||
| #else | |||||
| /* 'cold' attribute is for optimization, telling the computer this code | |||||
| * path is unlikely. | |||||
| */ | |||||
| #define JSON_NORETURN __attribute__((noreturn, cold)) | |||||
| #endif | |||||
| #endif | |||||
| static int formatted_output = 0; | static int formatted_output = 0; | ||||
| static int show_output = 1; | static int show_output = 1; | ||||
| static int strict_mode = 0; | static int strict_mode = 0; | ||||
| @@ -31,7 +44,7 @@ static const char *fname = NULL; | |||||
| #define json_tokener_get_parse_end(tok) ((tok)->char_offset) | #define json_tokener_get_parse_end(tok) ((tok)->char_offset) | ||||
| #endif | #endif | ||||
| static void usage(const char *argv0, int exitval, const char *errmsg); | |||||
| JSON_NORETURN static void usage(const char *argv0, int exitval, const char *errmsg); | |||||
| static void showmem(void); | static void showmem(void); | ||||
| static int parseit(int fd, int (*callback)(struct json_object *)); | static int parseit(int fd, int (*callback)(struct json_object *)); | ||||
| static int showobj(struct json_object *new_obj); | static int showobj(struct json_object *new_obj); | ||||
| @@ -167,7 +180,7 @@ int main(int argc, char **argv) | |||||
| case 'f': formatted_output = 1; break; | case 'f': formatted_output = 1; break; | ||||
| case 'n': show_output = 0; break; | case 'n': show_output = 0; break; | ||||
| case 's': strict_mode = 1; break; | case 's': strict_mode = 1; break; | ||||
| case 'h': usage(argv[0], 0, NULL); /* FALLTHRU */ | |||||
| case 'h': usage(argv[0], 0, NULL); | |||||
| default: /* '?' */ usage(argv[0], EXIT_FAILURE, "Unknown arguments"); | default: /* '?' */ usage(argv[0], EXIT_FAILURE, "Unknown arguments"); | ||||
| } | } | ||||
| } | } | ||||