diff --git a/Zend/zend_API.h b/Zend/zend_API.h index e56ded4e8f1b..454091789164 100644 --- a/Zend/zend_API.h +++ b/Zend/zend_API.h @@ -1055,7 +1055,12 @@ static zend_always_inline bool zend_char_has_nul_byte(const char *s, size_t know #define RETURN_ZVAL(zv, copy, dtor) do { RETVAL_ZVAL(zv, copy, dtor); return; } while (0) #define RETURN_FALSE do { RETVAL_FALSE; return; } while (0) #define RETURN_TRUE do { RETVAL_TRUE; return; } while (0) -#define RETURN_THROWS() do { ZEND_ASSERT(EG(exception)); (void) return_value; return; } while (0) + +#ifndef HAVE_GCOV +# define RETURN_THROWS() do { ZEND_ASSERT(EG(exception)); (void) return_value; return; } while (0) +#else +# define RETURN_THROWS() do { (void) return_value; return; } while (0) +#endif #define HASH_OF(p) (Z_TYPE_P(p)==IS_ARRAY ? Z_ARRVAL_P(p) : ((Z_TYPE_P(p)==IS_OBJECT ? Z_OBJ_HT_P(p)->get_properties(Z_OBJ_P(p)) : NULL))) diff --git a/build/Makefile.gcov b/build/Makefile.gcov index d389cecdd192..9ecd85a8cfdf 100644 --- a/build/Makefile.gcov +++ b/build/Makefile.gcov @@ -24,10 +24,15 @@ GCOVR_EXCLUDES = \ 'ext/hash/sha3/.*' \ 'ext/lexbor/lexbor/.*' \ 'ext/mbstring/libmbfl/.*' \ + 'ext/opcache/jit/ir/.*' \ 'ext/pcre/pcre2lib/.*' \ 'ext/uri/uriparser/.*' -GCOVR_EXCLUDE_LINES_BY_PATTERN = '.*\b(ZEND_PARSE_PARAMETERS_(START|END|NONE)|Z_PARAM_).*' +GCOVR_EXCLUDE_LINES_BY_PATTERN = \ + '.*\b(ZEND_PARSE_PARAMETERS_(START|END|NONE)|Z_PARAM_).*' \ + '\s*EMPTY_SWITCH_DEFAULT_CASE\(\)(;)?\s*' \ + '\s*ZEND_ASSERT\(.*\);\s*' \ + '\s*ZEND_UNREACHABLE\(\);\s*' lcov: lcov-html @@ -53,14 +58,14 @@ gcovr-html: @rm -rf gcovr_html/ @mkdir gcovr_html gcovr -sr . -o gcovr_html/index.html --html --html-details \ - --exclude-lines-by-pattern $(GCOVR_EXCLUDE_LINES_BY_PATTERN) \ + $(foreach pattern, $(GCOVR_EXCLUDE_LINES_BY_PATTERN), --exclude-lines-by-pattern $(pattern)) \ $(foreach lib, $(GCOVR_EXCLUDES), -e $(lib)) gcovr-xml: @echo "Generating gcovr XML" @rm -f gcovr.xml gcovr -sr . -o gcovr.xml --xml \ - --exclude-lines-by-pattern $(GCOVR_EXCLUDE_LINES_BY_PATTERN) \ + $(foreach pattern, $(GCOVR_EXCLUDE_LINES_BY_PATTERN), --exclude-lines-by-pattern $(pattern)) \ $(foreach lib, $(GCOVR_EXCLUDES), -e $(lib)) .PHONY: gcovr-html lcov-html php_lcov.info