From a27b03c79a63d518b2a98cfd324aa54e83b49c3d Mon Sep 17 00:00:00 2001 From: Jerry Jacobs Date: Wed, 13 Apr 2016 12:19:04 +0200 Subject: [PATCH] UNITY_OUTPUT_CHAR can emit a redundant declaration, we scope the extern declartion to the unity.c --- src/unity.c | 5 +++++ src/unity_internals.h | 9 ++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/unity.c b/src/unity.c index b398b3f..8541274 100644 --- a/src/unity.c +++ b/src/unity.c @@ -7,6 +7,11 @@ #include "unity.h" #include +#ifndef UNITY_OUTPUT_CHAR_USE_PUTC +//If defined as something else, make sure we declare it here so it's ready for use +extern int UNITY_OUTPUT_CHAR(int); +#endif + #define UNITY_FAIL_AND_BAIL { Unity.CurrentTestFailed = 1; longjmp(Unity.AbortFrame, 1); } #define UNITY_IGNORE_AND_BAIL { Unity.CurrentTestIgnored = 1; longjmp(Unity.AbortFrame, 1); } /// return prematurely if we are already in failure or ignore state diff --git a/src/unity_internals.h b/src/unity_internals.h index 6549656..81058be 100644 --- a/src/unity_internals.h +++ b/src/unity_internals.h @@ -291,9 +291,12 @@ typedef UNITY_DOUBLE_TYPE _UD; //Default to using putchar, which is defined in stdio.h #include #define UNITY_OUTPUT_CHAR(a) putchar(a) -#else -//If defined as something else, make sure we declare it here so it's ready for use -extern int UNITY_OUTPUT_CHAR(int); +// We need to flag the output char function uses putc in +// unity.c the extern function is not declared then. +// Previously the extern was declared in this header but +// when redundant function declaration compiler flag is enabled +// it wont compile. +#define UNITY_OUTPUT_CHAR_USE_PUTC #endif #ifndef UNITY_PRINT_EOL -- GitLab